DenyHosts (Italiano)
Contents |
DenyHosts
DenyHosts può essere usato genericamente per proteggere il proprio server o pc casalingo dagli attacchi di tipo DoS ai server SSH. Il principio è molto semplice. Esso analizza il file/var/log/auth.log alla ricerca di tentativi di accesso sbagliati, e ne disabilita l'accesso oltre un certo numero di tentativi.
La seguente sezione descriverà come impostare DenyHosts correttamente su Arch Linux e fornirà suggerimenti su come configurarlo per una rete locale o su un sistema remoto(come un server virtuale).
Installazione
Sarà possibile installare DenyHosts usando pacman, con il seguente comando:
# pacman -S denyhosts
Configurazione
Prima di tutto, il file di configurazione si trova in:/etc/denyhosts/denyhosts.cfg
In esso sarà possibile impostare la maggior parte delle configurazioni. Si consideri, che DenyHosts salva gli host ottenuti dal file auth.log in una cartella separata, che viene scansionata ogni volta che il programma viene avviato. Quindi cancellare il file auth.log non basterà ad abilitare nuovamente gli host.
Di default la cartella impostata sarà:/var/lib/denyhosts
Nel caso di una nuova installazione, si consiglia di cancellare l'attuale log di autenticazione(oppure di effettuare la rotazione).
# /etc/rc.d/syslog-ng stop # cp /var/log/auth.log /var/log/auth.log.old # echo "" > /var/log/auth.log # /etc/rc.d/syslog-ng start
Inoltre, si raccomanda di usare un diverso file per negare l'accesso SSH. Quindi creare un apposito file, come nell'esempio seguente:
# touch /etc/hosts.evil
Successivamente, sarà necessario cambiare il file di configurazione
# vi /etc/denyhosts/denyhosts.cfg
Trovare la linea dove viene impostato il file hosts.deny come valore di default, e sostituirlo con il file hosts.evil appena creato:
/etc/denyhosts/denyhosts.cfg
..... HOSTS_DENY = /etc/hosts.evil ......
Con queste direttive, DenyHosts salverà tutti gli host a cui sarà negato l'accesso SSH all'interno di questo file. Per una corretta configurazione, il file /etc/hosts.deny dovrebbe essere portato allo "standard", cioè negare ogni accesso a tutti, fatta ECCEZIONE(EXCEPT) per le impostazioni presenti in /etc/hosts.allow:
/etc/hosts.deny
# # /etc/hosts.deny # ALL: ALL: DENY # End of file
Il file /etc/hosts.allow dovrà essere modificato per consentire l'accesso SSH da qualsiasi client, fatta eccezione per il contenuto del file appena creato /etc/hosts.evil
/etc/hosts.allow
# # /etc/hosts.allow # sshd: ALL EXCEPT /etc/hosts.evil # End of file
Sistemi remoti
Se si configura DenyHosts su di un sistema remoto, dove non è possibile accedere direttamente, si raccomanda l'uso di una opzione di DenyHosts, che serve a ripulire dopo un certo periodo di tempo(nel seguente esempio 1 settimana), gli hosts a cui viene negato l'accesso.
Sarà quindi necessario modificare il proprio file denyhosts.cfg, utile nel caso in cui si finisca per sbaglio senza accesso.
PURGE_DENY = 1w
Avviare DenyHosts
Il pacchetto DenyHosts per Arch Linux è fornito di uno script rc.
# /etc/rc.d/denyhosts start
Per avviare DenyHost ad ogni avvio, sarà necessario modificare il proprio file /etc/rc.conf file, ed aggiungere il demonee denyhosts. Notare che i puntini "..." stanno ad indicare altri demoni in avvio e sono stati usati solo per evidenziare la modifica.
/etc/rc.conf
..... DAEMONS=(... ... ... ... denyhosts ... ... ... ...)