Come bloccare tutti i tentativi di accesso di root utilizzando denyhosts o fail2ban?


8

Attualmente blocco tutti gli accessi ssh usando root. Ma volevo fare il possibile e bloccare l'indirizzo IP del client che ha tentato di accedere come root. Al momento ho denyhosts e fail2ban configurati e funzionanti, posso usare denyhosts o fail2ban per bloccare gli indirizzi IP di coloro che provano ad accedere come root?

Risposte:


2

A seconda della tua distribuzione, modifica /etc/fail2ban/jail.conf Aggiorna la [ssh]sezione per mostrare qualcosa del genere

[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
bantime = 3600
maxretry = 3

Modificare i parametri come richiesto. Non bloccherà specificamente root, ma ogni tentativo fallito. Fare attenzione con maxretrye il bantime. Se fallisci con la tua password, mentre maxtretryimpostato su basso, ti blocchi per il bantime. Riavvia fail2ban.

Non proverei a bloccare l'IP per sempre poiché molti tentativi provengono da IP dinamici che potrebbero bloccare alcuni utenti legittimi in un secondo momento.

(Alcune distribuzioni offrono un file jail.options per le tue modifiche. Questo è il posto preferito dove mettere le tue modifiche in quanto non dovrebbe essere influenzato dagli aggiornamenti che sovrascrivono la conf.)


4
buone informazioni, ma penso che volesse sapere come bloccare tutti gli accessi usando l'utente root ... non riesco a vederlo nella tua risposta. forse te lo sei dimenticato.
Mose,

17

Copia questo codice in un nuovo file /etc/fail2ban/filter.d/sshd-root.conf:

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = sshd

failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$

ignoreregex = 

ATTENZIONE: potrebbe essere necessario modificare il failregex per identificare accuratamente i tentativi di accesso root non riusciti - utilizzare:

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf

per verificare che identifichi le voci di registro corrette.

Quindi è necessario modificare jail.local per utilizzare il nuovo filtro - aggiungere qualcosa come:

[ssh]

enabled  = true
port     = 1:65535
filter   = sshd-root
logpath  = /var/log/auth.log
bantime  = 604800
maxretry = 3

Ovviamente dovresti adattare questi valori in base alle tue esigenze. Le impostazioni precedenti elimineranno tutti i pacchetti in arrivo dall'indirizzo IP offensivo dopo tre tentativi di accesso come root e rilasceranno nuovamente l'IP dopo una settimana.


1
Questo merita davvero di essere la risposta accettata, dal momento che in realtà risponde alla domanda.
peelman,

Questa è sicuramente la risposta corretta. Meglio disabilitare gli accessi root in sshd config e quindi impostare maxretry su 1 in jail.conf.
anteatersa

1

Poiché l'impostazione predefinita /etc/fail2ban/filter.d/sshd.confha già una regex per AllowUsers e DenyUsers ...

...
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
...

Quanto segue:

  • Consenti connessioni da exampleusernameIP esterni
  • Eo rootqualsiasi connessione sulla rete locale (192.168.0. *)

La riga `/ etc / ssh / sshd_config ':

AllowUsers exampleusername *@192.168.0.* *@localhost *@127.0.0.1

E in /etc/fail2ban/jail.conf:

ignoreip = 127.0.0.1/8 192.168.0.2/255
...
...
[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 1
findtime = 99999999 
bantime  = 99999999

0

Come hai bloccato gli accessi ssh? / bin / false o l'opzione DenyUsers sshd_config?

Non riesco a pensare a una risposta fuori dalla mia testa, ma IIRC denyhosts analizza il file di registro, quindi vedi solo se ricevi una voce non riuscita nel file di registro dopo che qualcuno ha provato ad accedere alla radice con disabilitato


2
Ho modificato il file di configurazione di ssh /etc/ssh/sshd_confige sono passato PermitRootLoginda sì a no. Non so se questo è rilevante, ma ho installato rssh per consentire solo a determinati utenti di accedere usando sftp ma non consentire ssh.
Samwell,

hai controllato i file di registro ssh se ha tentato l'accesso dell'utente non riuscito?
MitziMeow,

Sì, posso vedere che ci sono molti tentativi falliti di accesso dell'utente da parte di diversi indirizzi IP, che non riconosco.
Samwell,

allora i denyhosts dovrebbero funzionare
MitziMeow il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.