SSHGuard è abbastanza simile a Fail2ban solo per il fatto che è scritto in C (Fail2ban è scritto in Python), è più leggero e fornisce meno funzionalità. SSHGuard può leggere i messaggi di registro dall’input standard o monitorare uno o più file di registro per rilevare un attacco. I messaggi di registro vengono analizzati riga per riga per i modelli riconosciuti. Se si verifica un attacco in cui vengono rilevati diversi errori di accesso entro pochi secondi, l’IP incriminato verrà bloccato. Per installare SSH Guard è necessario avere almeno un firewall( ufw
, firewalld
o Iptables
) installato nel tuo sistema.
Per le distribuzioni basate su RHEL come CentOS, inizia installando il repository EPEL come fornito nel comando seguente.
sudo yum install epel-release
Aggiorna e installa SSHGUARD con i comandi;
dnf apt update
dnf install sshguard
Una volta installato, avvia e imposta SSHGuard per l’avvio del sistema.
sudo systemctl start sshguard
sudo systemctl enable sshguard
Assicurati di verificare che SSHGuard sia in esecuzione come previsto.
sudo systemctl status sshguard
È necessario configurare SSHGuard per proteggere il sistema dagli attacchi di forza bruta SSH. Questo può essere fatto modificando /etc/sshguard/sshguard.conf
. Di seguito sono riportate la configurazione:
Apriamo il file fi configurazione con il comando,
vi /etc/sshguard.conf
#### REQUIRED CONFIGURATION #### # Full path to backend executable (required, no default) BACKEND="/usr/lib/x86_64-linux-gnu/sshg-fw-iptables" # Shell command that provides logs on standard output. (optional, no default) # Example 1: ssh and sendmail from systemd journal: LOGREADER="LANG=C /bin/journalctl -afb -p info -n1 -o cat SYSLOG_FACILITY=4 SYSLOG_FACILITY=10" #### OPTIONS #### # Block attackers when their cumulative attack score exceeds THRESHOLD. # Most attacks have a score of 10. (optional, default 30) THRESHOLD=30 # Block attackers for initially BLOCK_TIME seconds after exceeding THRESHOLD. # Subsequent blocks increase by a factor of 1.5. (optional, default 120) BLOCK_TIME=120 # Remember potential attackers for up to DETECTION_TIME seconds before # resetting their score. (optional, default 1800) DETECTION_TIME=1800 # IP addresses listed in the WHITELIST_FILE are considered to be # friendlies and will never be blocked. WHITELIST_FILE=/etc/sshguard/whitelist
Possibile personalizzare i parametri sopra elencati a piacimento, per verificare i log utilizza il comando;
tail -f /var/log/secure
Un saluto.