DenyHosts è uno strumento di sicurezza per la prevenzione delle intrusioni basato su log per server SSH scritto in Python. È progettato per prevenire attacchi di forza bruta sui server SSH monitorando i tentativi di accesso non validi nel registro di autenticazione e bloccando gli indirizzi IP di origine utilizzando /etc/hosts.deny e sbin/iptables sul server Linux. In questo tutorial imparerai come installare DenyHosts un programma python che blocca automaticamente gli attacchi ssh aggiungendo voci al file /etc/hosts.deny.
Il tutorial è testato sull'installazione del server Ubuntu 17.04.
1. Per prima cosa installiamo il software:
$ sudo apt-get install denyhosts
Code language: JavaScript (javascript)
2. Aggiungi i tuoi indirizzi a hosts.allow per assicurarti che non siano bloccati.
sudo pico /etc/hosts.allow
Esempio di come aggiungere più di un indirizzo:
sshd: 212.22.112.113 , 10.20.133.3 , 192.168.0.1 , 127.0.0.1
Code language: CSS (css)
3. Ora configuriamo il file di configurazione di denyhosts:
$ sudo pico /etc/denyhosts.conf
Make sure SECURE_LOG set as follows:
SECURE_LOG = /var/log/auth.log
HOSTS_DENY set as follows:
HOSTS_DENY = /etc/hosts.deny
Block only sshd:
BLOCK_SERVICE = sshd
Deny threshold limit for login attempts:
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
Block incoming connections using the Linux firewall IPTABLES:
IPTABLES = /sbin/iptables
Code language: PHP (php)
4. ABILITA il servizio DenyHosts:
$ sudo systemctl enable denyhosts.service
Vedrai qualcosa del genere:
Sincronizzazione dello stato dinegahosts.service con SysV init con /lib/systemd/systemd-sysv-install...L'esecuzione di /lib/systemd/systemd-sysv-install abilita denyhosts
5. Riavvia il servizio DenyHosts:
sudo /etc/init.d/denyhosts restart
6. Alcuni comandi per verificare se tutto funziona e per elencare gli indirizzi aggiunti alla blocklist:
$ sudo grep 'something' /var/log/denyhosts
$ sudo tail -f /var/log/denyhosts
$ sudo cat /etc/hosts.deny
sudo iptables -L INPUT -n -v | grep DROP
Code language: JavaScript (javascript)
Attenzione:
Tieni presente che DenyHosts è limitato alle connessioni che utilizzano IPv4. Non funziona con l'indirizzo IP basato su IPv6. Un'altra opzione è usare il comando iptables per vedere l'indirizzo IP bloccato:
Abilitare il supporto per la sincronizzazione centralizzata?
DenyHosts versione 2.0 e successive supportano la sincronizzazione centralizzata, in modo che i trasgressori recidivi siano bloccati da molti computer. Il sito xmlrpc.denyhosts.net raccoglie statistiche dai computer che eseguono il software. Sincronizzazione disabilitata per impostazione predefinita. Per abilitare la sincronizzazione, inserisci:
$ sudo pico /etc/denyhosts.conf
Quindi aggiungi:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
Code language: JavaScript (javascript)
E riavvia:
$ sudo /etc/init.d/denyhosts restart