Problem
In der Logdatei "/var/log/auth.log" treten mehrere fehlgeschlagene Loginversuche mit dem Protokoll SSH auf, die nicht von Ihnen stammen.
Feb 19 09:21:15 servername sshd[22796]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.207.xx.xx user=root Feb 19 09:21:17 servername sshd[22796]: Failed password for root from 218.207.xx.xx port 22 ssh2
Erklärung
- Der entfernte Benutzer hat (versehentlich) eine falsche Server IP verwendet und irrtümlicherweise versucht sich an Ihrem Server anzumelden. Die Anzahl der Loginversuche ist hier meistens gering.
- Sie sind Opfer einer Brute Force Attacke, bei der automatisch ein Login mit Benutzer root und verschiedenen Passwörtern (z.b. aus sogenannten Wörterbuchdateien) versucht werden. Die Anzahl der Loginversuche ist hier erkennbar hoch.
Lösung
Sichern Sie Ihren SSH Login mit dem Tool fail2ban ab.
Was ist Fail2Ban
Fail2Ban ist ein in Python geschriebenes Programm, welches verschiedene Serverdienste gegen unbefugten Zugriff absichern kann. In dem Konfigurationsbeispiel unten, wird eine IP Adresse für 1 Stunde gesperrt, nachdem von dieser 4 fehlgeschlagene Anmeledeversuche für SSH stattgefunden haben.
Installation von Fail2Ban
sudo apt-get install fail2ban
Konfiguration Fail2Ban
Im Ordner /etc/fail2ban/ finden Sie die globale Konfigurationsdatei jail.conf. Diese jedoch nicht bearbeiten, da sie bei jeder Paketaktualisierung überschrieben wird. Die eigene Konfiguration geschieht in der "jail.local".
# To avoid merges during upgrades DO NOT MODIFY THIS FILE # and rather provide your changes in /etc/fail2ban/jail.local>
Hierzu kopieren Sie die "jail.conf" nach "jail.local". sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Setzen Sie die lokale IP Adresse Ihres Servers, die Zeit wie lange eine IP geblockt werden soll und die Anzahl der Versuche, nach denen geblockt werden soll:
ignoreip = 127.0.0.1 bantime = 3600 maxretry = 3
Sie können die Parameter dann für einzelne Dienste separat anpassen.
Definieren Sie nun die erforderlichen Parameter um den SSH Daemon zu überwachen:
enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 4
Starten Sie anschließend fail2ban neu, damit die Änderungen übernommen werden.
sudo /etc/init.d/fail2ban restart