
Se avete una macchina con una porta aperta come ssh verso internet avrete notato una quantità spropositata di accessi tentati e falliti.
Ci sono tantissimi malware che provano ad intrufolarsi in computer mal configurati con password deboli. Dando per scontato che vi serva mantenere la porta aperta la prima e più utile soluzione è abilitare esclusivamente l’accesso via chiave pubblica con PubkeyAuthentication yes in sshd_config.
Per evitare di dover scorrere inutilmente log chilometrici potreste anche limitare le connessioni. Esistono software come fail2ban o denyhosts, ma potete implementare tutto usando semplicemente iptables.
Ci sono alcuni moduli che potreste usare, il più semplicemente è probabilmente “recent”, anche se potreste provare a giocare con hashlimit o persino con geoip. Quest’ultimo filtra le connessioni in base agli stati.
Il vero colpo di grazia per questi poveracci che setacciano la rete è il tarpitting. Si tratta in pratica di tenere in ostaggio la connessione del malcapitato senza consentire alcun trasferimento di dati e rallentando il loro “lavoro”. Potete trovare il tarpitting in patch-o-matic.
iptables -N autoban
iptables -I INPUT -p TCP --dport 22 -j autoban
iptables -A autoban -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A autoban -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 2 --rttl --name SSH -j DROP

