VoIP and Hacking | Consulenza Documentazione

SshGuard per bloccare gli attacchi brute-force

by admin on Apr.21, 2009, under Linux, Networking, Sicurezza, Tools

SSHGuard (http://sourceforge.net/projects/sshguard/) è un software (lo dobbiamo ad un giovane programmatore italiano, Michele Mazzucchi) che si può far rientrare nella categoria degli “intrusion prevention system” basati sul monitoring dei log.
Esso in pratica monitorizza l’ attivita di logging relativa a diversi processi, deduce da questa analisi costante quando un server si trovi sotto attacco e reagisce attivando delle specifiche regole di firewalling, bloccando in tal modo l’indirizzo dell’attaccante.
Gli attacchi in questione sono quelli di tipo “brute force” basati su dizionario, quelli, per intendersi sferrati tramite tools come il famosissimo John the Ripper.
Per default, il blocco scatta dopo quttro tentativi andati a vuoto nell’arco di 20 minuti e permane per un lasso di tempo variabile casualmente tra 7 e 10.5 minuti.

Contrariamente a quanto potrebbe indurre a pensare il suo nome, SSHGuard non si limita a proteggere l’accesso a SSH, e infatti può essere esteso a proteggere molti altri servizi.

Il package è normalmente disponibile nel formato deb per la Ubuntu 8.10 che sto utilizzando, ma ho preferito compilare a mano l’ultima versione disponibile da sourceforge.
Scompattato il tarball compresso, nella directory radice risultante occorre dare:

# ./configure –with-firewall=iptables
# make && make install

Una volta fatto ciò, vi sono ancora due passi da compiere prima di poterlo utilizzare.

Il primo consiste nel creare una nuova regola dinamica (sshguard) per iptables:

# iptables -N sshguard
# iptables -A INPUT -p tcp –dport 22 -j sshguard

Il successivo consiste nel mettere sshguard in grado di apprendere quanto necessario circa i tentativi di login, cosa che si può ottenere utilizzando:

# tail -n0 -F /var/log/auth.log | /usr/local/sbin/sshguard -d

per avere un immediato riscontro a video di come una intrusione simulata a partire da una macchina remota venga riconosciuta

Started successfully [(a,p,s)=(4, 420, 1200)], now ready to scan.
Starting parse
Entering state 0
[...]
Matched address 88.183.134.14:4 attacking service 100
Blocking 88.183.134.14:4 for >420secs: 4 failures over 65 seconds.
Setting environment: SSHG_ADDR=88.183.134.14;SSHG_ADDRKIND=4;SSHG_SERVICE=100.
Run command “case $SSHG_ADDRKIND in 4) exec /sbin/iptables -I sshguard -s $SSHG_ADDR -j DROP ;; 6) exec /sbin/ip6tables -I sshguard -s $SSHG_ADDR -j DROP ;; *) exit -2 ;; esac”: exited 0.
First sight of offender ‘88.183.134.14:4′, adding to offenders list.
[...]

e bloccata:

# iptables -L -n
[...]
Chain sshguard (1 references)
target     prot opt source               destination
DROP       all  –  88.183.134.14        0.0.0.0/0

Per fare in modo che sshguard venga automaticamente attivato si può inserre la riga di lancio (senza il flag -d ed in background) in rc.local con gli eventuali parametri personalizzati:

# sshguard -h
Usage:
sshguard [-d] [-b <thr:file>] [-a num] [-p sec] [-w <whlst>]{0,n} [-s sec] [-l c] [-f srv:pidfile]{0,n}
-d    Debugging mode: don’t fork to background, and dump activity to stderr.
-b    Blacklist: thr = number of abuses before blacklisting, file = blacklist filename.
-a    Number of hits after which blocking an address (4)
-p    Seconds after which unblocking a blocked address (420)
-w    Whitelisting of addr/host/block, or take from file if starts with “/” or “.” (repeatable)
-s    Seconds after which forgetting about a cracker candidate (1200)
-f    ”authenticate” service’s logs through its process pid, as in pidfile

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...