Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione.
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.
Possiamo farlo impostando:
PubkeyAuthentication yes
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
Interessante! Io, più pigramente, ho preferito cambiare la porta 22 con un'altra nel range 1024-65535, tolto l'accesso ssh a root, e messo delle password allo stesso tempo complicate e facili da ricordare, come ad esempio:
TurbinaPeltonRotta
ma scritta con i numeri:
Turb1n4P3lt0nR0tt4
Il trucco di intrappolare le connessioni con il tarpitting mi fa molto gola, ma ho un po' bisticciato in passato con patch-o-matic... :)
ciao
Riccardo