SSHd vor Bruteforce schützen
Viele mögen es kennen – nervige SSH-Loginversuche auf Servern, mehrere tausend am Tag. Aber scheinbar kennen manche kein Ausweg, dabei gibt es so viele Möglichkeiten!
fail2ban:
fail2ban ist ein in der Installation und Benutzung sehr einfaches Tool, geschrieben in Python, um nach fehlerhaften Loginversuchen eine Sperre in iptables einzutragen. Im Daemon-Mode überwacht er Logdateien und kann eine terminierte Sperre eintragen, sodass den Bruteforce-Attacken schonmal gut vorgebeugt ist. Unter Debian / Ubuntu einfach
sudo apt-get install fail2ban
Oder besser: Neueste .deb über die Webseite laden und mit
dpkg -i fail2ban*.deb
installieren.
Unter CentOS auch nicht schwerer: im epel-Repository ist fail2ban enthalten und kann mit
yum --enablerepo epel install fail2ban
installiert werden.
Nach der Installation ist standardmäßig eine Regel für SSH aktiv, einstellen kann man alles unter /etc/fail2ban/jail.conf .
Der Dienst muss noch mit
sudo /etc/init.d/fail2ban start
gestartet werden. Bei einer Sperre wird (sofern jail.conf angepasst wurde) per Email benachrichtigt, außerdem wird es unter /var/log/fail2ban.log geloggt.
/etc/ssh/sshd_config:
eine denkbar einfache, aber auch nicht sehr effektive Methode: SSH-Port ändern. Einfach in der Config “Port 22″ durch einen anderen Port ersetzen – kann aber natürlich durch jeden Portscanner wieder gefunden werden.
Worauf aber unbedingt geachtet werden sollte: Protokoll Version 1 deaktivieren! Version 2 ist wesentlich sicherer. In der Config sollte “Protocol 2,1″ auskommentiert und “Protocol 2″ aktiv sein.
Ebenfalls sehr effektiv: Passwort-Logins deaktivieren und mit Private- und Publickeyverfahren einloggen.
Weblinks:
Main Page – Fail2ban.