Wer einen Server mit SSH im Internet stehen hat, kennt das Problem. Massenhafte versuche sich mit Dictionary Attacks zugriff auf den Server zu verschaffen. Das Problem ist, das das nicht nur gefährlich ist, sondern auch CPU und Bandbreite kostet
Doch was kann man dagegen tun?
Am einfachsten wäre den SSH Port von 22 auf einen anderen, unüblichen Port zu verlegen. Hat man aber Kunden mit auf dem Server die auch SSH nutzen ist das keine elegante Lösung. Bleibt noch die IP zu sperren wenn zu viele Fehlversuche von dieser IP kommen.
Berücksichtigen sollte man noch das User die nur etwas oft Ihr Passwort falsch eingeben natürlich nicht dauerhaft ausgesperrt werden sollten. Das Script das ich nun hierfür verwende ist nicht von mir, sondern nur von mir angepasst worden. Leider weis ich aber nicht mehr wo ich es mal her hatte
Das Script nutzt "ipfw" um IPs die zu viele Fehlversuche machen auszusperren. Dabei wird für falsche Passwörter die Regel Nr. 20000 verwendet und für falsche User 20101 bis 21231.
Hier das Script (es liegt auch in der Downloadsektion):
#!/bin/shif /sbin/ipfw show | awk '{print $1}' | grep -q 20000 ; then
/sbin/ipfw delete 20000
fi
for ips in `cat /var/log/auth.log | grep sshd | grep "Invalid" | awk '{print $10}' | uniq -d` ; do
if ! /sbin/ipfw show | grep -q $ips ; then
/sbin/ipfw -q add `date "+2%m%d"` deny tcp from $ips to any 22
fi
done
cat /var/log/auth.log | grep sshd | grep "Failed" | rev | cut -d\ -f 4 | rev | sort | uniq -c | \
( while read num ips; do
if [ $num -gt 5 ]; then
if ! /sbin/ipfw show | grep -q $ips ; then
/sbin/ipfw -q add 20000 deny tcp from $ips to any 22
fi
fi
done
)
Das Script liegt bei mir unter /root/bin/ als sshd-fwscan.sh und wird über cron alle 2 Minuten ausgeführt. IPs die falsche User versuchen werden Dauerhaft gesperrt, falsche Passwörter werden nach einem Turnover des Logs wieder Freigeschalten. Was noch fehlt ist eine Whiteliste von IPs die nie gesperrt werden sollen. Das kann man aber u.a. auch dadurch lösen das man diese IPs mit einem allow und einer Regelnummer kleiner 20000 im ipfw einträgt lösen. Das Script entlastet den sshd merklich bei grossen Scans.
Ich hoffe euch wieder etwas geholfen zu haben. Über Anregungen und Kritik zu den Artikeln freue ich mich immer.

