Brute Force Angriffe mit DenyHosts abwehren


Unix , , ,


Viele Systemadministratoren kennen bestimmt das Problem, dass sehr viele Brute Force Angriffe gegen die eigenen Server laufen. Systematisch werden Logins mit den ueblichen Benutzernamen bzw. Passwörtern per SSH versucht.


Genau hier hilft DenyHosts. Es handelt sich hierbei um einen kleinen Daemon, welcher permanent die Datei /var/auth.log liest und bei mehrmaligen fehlgeschlagenen Login Versuchen die IP per /etc/hosts.allow blockt. Das Prinzip ist nicht neu, es gibt z.B. auch andere Tools, welche die gleiche Funktionalität z.B. per iptables lösen.

Das ist aber noch nicht alles, man kann den Daemon auch so einstellen, dass der die gefundenen IPs der globalen Datenbank von DenyHosts meldet. Im Gegenzug kann auch die Datenbank verwendet werden um die Hosts Datei zu füttern. Seit dem ich das Tool auf meinen Servern installiert habe, haben die Angriffe fast aufgehört bzw. es wurden fast alle sofort geblockt.

Die Konfiguration ist denkbar einfach. Nachdem die Software installiert ist, muss als erstes die Datei denyhosts.conf angepasst werden. Die Konfigurationsdatei ist ziemlich selbsterklärend. Danach kann auch schon der Daemon gestartet werden. Dank der Ports Collection von FreeBSD war das Startscript bereits vorhanden. Der Daemon schreibt seine Einträge dann üblicherweise in die Datei /etc/hosts.deniedssh, welche nur noch in die Datei /etc/hosts.allow eingebunden werden muss mit…

sshd : /etc/hosts.deniedssh : deny  
sshd : ALL : allow

Danach ist das komplette System fertig konfiguriert und das System blockt automatisch SSH Anfragen von IPs, welche in der Datenbank von DenyHosts gelistet sind.


4 Kommentare zu “Brute Force Angriffe mit DenyHosts abwehren”

  1. der Wayne Sagt:

    Ich mach das lieber mit fail2ban – fail2ban prüft das Logfile und sperrt nach definierten Regeln (5 falsche login-Versuche via SSH) den “bösen” Rechner

  2. Ralf Sagt:

    Ich habe einfach den sshd Port verändert und seitdem keine Probleme mehr. Scheinbar versuchen die bots nur port 22.

  3. Ralf Sagt:

    Und natürlich die üblichen Sicherheitsmaßnamen: KEIN root Login, Keine password Authentifizierung, Authentifizierung nur mit Authentifizierungsschlüssel.

  4. Toast Sagt:

    SSH auf einen andere Port legen geht auch…aber sobald jemand die Ports scannt, können wieder Angriffe folgen.


Kommentar hinzufügen