Angreifende IP Adressen mit Denyhosts sperren

Um die täglichen Angriffsversuche a la Brute-Force auf einen Server zu reduzieren, bietet es sich an angreifenden IP Adressen den Zugang zu verwehren. Manuel wäre dies eine schier unendliche Aufgabe, deshalb kommt hier das automatisierte Tool Denyhosts zur Anwendung. Allerdings wird das Tool nicht die Angriffe unterbinden, es kann eher nur die Anzahl der angenommen Verbindungen reduzieren; also das Grundrauschen verringern.

Allerdings ist das ein zweischneidiges Schwert, weil die Angriffe meist aus Botnet’s, dem TOR-Netzwerk oder von Rechner mit dynamischer IP Adresse erfolgen. Dies bedeutet: wenn immer mehr dynamische Adressen eines Internet-Provider in der DENY-Liste erscheinen könnten immer mehr potenzielle Besucher oder Leser ausgesperrt werden. Im schlimmsten Fall sperrt man sich selbst aus, sobald eine der gesperrten IP Adressen für den eigenen dynamischen DSL-Anschluss bei dem selbigen Provider vergeben wird.

Analyse

Herausfinden ob es fehlerhafte SSH-Verbindungsversuche bzw. Angriffe gab/gibt.

Beispielhaftes Log (der eigene Servername wurde ausgetauscht)

Vorbereitung

Sicherstellen das der eigene Server nicht gesperrt wird.

Füge die folgende Zeile hinzu um immer den Zugriff vom eigenen Server zu erlauben.

Wieso sollte der lokal Rechner extra in der hosts.allow Datei erwähnt werden?
Mit der Anwendung denyhosts wollen wir automatisch IP Adressen den Zugriff auf den Rechner verbieten, welche öfters fehlerhaft Anmeldeversuche hatten. Sollte es Probleme mit einer Server-Anwendung geben, soll sich der eigene Rechner aber nicht selbst verbieten, damit Anwendungen wie MySql oder Apache auch weiterhin funktionieren.

Hinweis: /etc/hosts.allow wird immer vor der /etc/hosts.deny geprüft. Wenn eine IP in hosts.allow gefunden wird, so erfolgt keine weitere Suche in der hosts.deny Datei.

Installation

Python sollte für Denyhosts installiert sein.
Prüfen ob Pythen installiert ist; mit:

Sollte Python nicht installiert sein so kann dies mit APT nachgeholt werden.

Anschließend kann Denyhosts installiert werden. ACHTUNG! Die SSH-Verbindung geht beim Starten des Dienstes während der Installation verloren. Es wird empfohlen eine Installation innerhalb einer virtuellen Terminal-Sitzung wie Screen durchzuführen.

Konfiguration

Die Konfiguration von Denyhosts erfolgt in der Konfigurationsdatei denyhosts.conf.

Beispiele der Optionen für die Konfiguration

PURGE_DENY = 3d
Entfernt gesperrte IP Adressen (Hosts) nach fünf Tagen aus der /etc/hosts.deny Datei. Diese Funktion ist sehr sinnvoll um die Liste der verbotenen Rechner nicht
ins Unermessliche wachsen zu lassen.

BLOCK_SERVICE = ALL
Überwacht für alle Dienste die /var/log/auth.log Datei. Alternativ reicht auch erst einmal der DEFAULT für die SSH-Verbindungsanfragen.
BLOCK_SERVICE = sshd

DENY_THRESHOLD_INVALID = 5
Anzahl der erlaubten fehlerhaften Verbindungsanfragen mit einem falschen Benutzername.

DENY_THRESHOLD_VALID = 5
Anzahl der erlaubten fehlerhaften Verbindungsanfragen mit einem richtigen Benutzernamen, aber mit falschem Passwort. Der Wert sollte gleich zu DENY_THRESHOLD_INVALID sein, damit nicht zwischen falschen und richtigen Benutzernamen unterschieden werden kann.

Nach der Konfigurationsänderung den Dienst neu starten.

Gesperrt IP Liste säubern
Mit dem folgenden Befehl kann die /etc/host.deny aufgeräumt werden.
Dienst anhalten

Aufräumen:

Dienst neu starten

Information

Detaillierte Information gibt es hier: http://denyhosts.sourceforge.net/

(Visited 415 times, 1 visits today)

31 Comments Angreifende IP Adressen mit Denyhosts sperren

  1. Ingo

    Hi,
    ich bevorzuge hier fail2ban, weil es neben den ssh Aufrufen auch noch andere Dienste, wie Postfix, Apache,…, überwachen kann. Und ich auch WordPress einbinden kann.

    Gruß Ingo

    Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.