DenyHosts (Italiano)

From ArchWiki
Jump to: navigation, search
Attenzione: L'uso delle blacklist basate su gli indirizzi IP possono bloccare attacchi semplici ma questo richiede l'uso di un demone e molti file di log(la partizione conenente /var potrebbe riempirsi). In aggiunta, se gli attaccanti conoscono il vostro indirizzo IP, loro posssono inviare pacchetti conenenti un header falsificato e chiudervi fuori dal server. Le chiavi SSH forniscono una soluzione elegante al problema degli attacchi di tipo brute forcwe senza questi problemi.
Tango-dialog-warning.png This article or section is out of date.
Reason: please use the first argument of the template to provide a brief explanation. (Discuss)
Tango-dialog-warning.png
Nota: A partire da luglio 2011, DenyHosts non è più disponibile nei repository ufficiali. Utili alternative sono fail2ban ed sshguard.

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
Nota: Sarà inoltre possibile aggiungere il proprio indirizzo IP all'interno del file /etc/hosts.allow. Questo file viene analizzato prima del file /etc/hosts.deny ed impedisce quindi di chiudersi fuori. Comunque è efficace soltanto se l'accesso viene eseguito sempre dal solito indirzzo (o serie di indirizzi).

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 ... ... ... ...)

Ulteriori informazioni