Bisher habe ich zum Schutz von Diensten wie ssh immer fail2ban benutzt. Dieses wurde aber in letzter Zeit immer zickiger. Also habe ich mir mal denyhosts angeschaut.

Ziel ist es einen Angreifer zu erkennen, und die Kommunikation einzustellen. Das Programm fail2ban hat dies mit iptables gemacht. Hat jemand x-Mal ein SSH-Kennwort falsch eingegeben wurde der Port für $zeit gesperrt.

Der Dienst denyhosts arbeitet ähnlich ist aber noch etwas ausgefeilter. Die Kommunikation wird über die Datei /etc/hosts.deny geregelt. Hierbei merkt sich denyhosts, welche Hosts schon öfter aufgefallen sind. Sofern eine gewissen Schwelle überschritten wird bleibt der Eintrag für lange Zeit in der Datei bestehen. Somit werden Angreifer wirkungsvoll abgehalten.

Da denyhosts immer nur den angegriffenen Port sperrt kann so auch niemand einen generellen DoS-Angriff gegen alle Dienste auslösen.

Im Gegensatz zu fail2ban wehrt DenyHosts nur Angriffe auf SSH ab. Über Umwege lassen sich wohl auch noch andere Dienste absichern, aber das geht mit fail2ban deutlich einfacher.## Installation ##

apt-get install denyhosts
```## Konfiguration ##

Fertig. `denyhosts` ist nach der Installation sofort Einsatzbereit. Wer mag kann sich aber `/etc/denyhosts.conf` genauer ansehen.## Logs/E-Mail ##

Wie auch `fail2ban` kann auch `denyhosts` eine E-Mail versenden, falls eine IP geblockt wurde:

Added the following hosts to /etc/hosts.deny:

2.3.4.5 (s1.example.com)
5.4.3.2 (example.de)


```## Unblock ##

Wird ein Host versehentlich gesperrt, so genügt es die IP aus der /etc/hosts.deny zu entfernen. Allerdings würde denyhosts die IPs beim nächsten Routinelauf wieder dort eintragen.

Daher sind noch einige weitere Schritte notwendig:

Dienst anhalten

/etc/init.d/denyhosts stop

IP aus /etc/hosts.deny entfernen

nano /etc/hosts.deny

IP aus denyhosts entfernen

cd /var/lib/denyhosts

Die IP muss aus allen der folgenden Dateien entfernt werden:

  • hosts
  • hosts-restricted
  • hosts-root
  • hosts-valid
  • users-hosts

Dienst starten

/etc/init.d/denyhosts start

Next Post Previous Post