Open Source Software Tools und Tipps

Tutorial – fail2ban installieren und konfigurieren

In heutiger Zeit kann sich jederman für ein paar Euros einen Webserver anmieten. Sei es ein kompletter Root Server oder eine Virtuelle Maschine (vServer). Viele Webhoster bieten zusätzlich für eine schnelle und bequeme Einrichtung ein eigenes Interface mit an, über das der Server per Klick konfiguriert werden kann. Leider wissen viele nicht das sie mit jeder weiteren Installation von Software Paketen unter Linux das Sicherheitsrisiko erhöhen.

Damit die Sicherheit eines Servers nicht zu sehr vernachlässigt wird, empfehle ich die Installation von fail2ban. Das in python geschriebene Framework fail2ban schützt in erster Linie vor unbekannten Zugriffen: Sobald ein Angreifer versucht sich Zugang zum Server zu verschaffen und mehrmals hintereinander die Zugangsdaten falsch eingibt, greift fail2ban ein und blockiert (bannt) die IP-Adresse für eine bestimmte Zeit oder auch für immer.

Springe zum Abschnitt: KonfigurationLog AuswertungPerformance

Schritt 1: fail2ban installieren

Als aller erstes muss das Paket fail2ban installiert werden. Der folgende Befehl wird dazu in die Linux Konsole eingegeben.

apt-get update
apt-get install fail2ban

Der Befehl apt-get update aktualisiert die Software Pakete. Das verhindert die Installation von veralteten Versionen. Nachdem Update wird das Software Paket mittels „apt-get install fail2ban“ installiert. Sobald die Installation abgeschlossen ist, befinden sich unter „/etc/fail2ban/“ die Konfigurationsdateien. Die wichtigste Konfigurationsdatei ist die jail.conf. In dieser Datei befinden sich die Modul-Optionen (apache2, postfix, etc.).

Wichtig! Die jail.conf Datei kann bei einem Software Update überschrieben werden. Damit wir unsere Filter Regeln nicht verlieren, arbeiten wir sicherheitshalber in einer Kopie namens jail.local.

cp jail.conf jail.local

Die Parameter

Da nicht irgendwelche Werte eingetragen werden dürfen, erkläre ich kurz welche Parameter es gibt und wofür diese stehen:

  • filter = Name des Filters aus der /etc/fail2ban/action.d
  • enable = aktiv [true] oder inaktiv [false]
  • port = Auf welchen Port greift das Modul (22 für SSH, 21 für FTP, 80 für HTTP)
  • logpath = Der Pfad zur Log-Datei vom Modul
  • maxretry = Maximale Anzahl an Versuchen
  • findtime = Innerhalb welches Zeitraumes soll auf eine Attacke geprüft werden
  • bantime = Dauer des Banns (Wert in Sekunden [3600 = 1 Stunde], -1 = permanent ban)

Schritt 2: fail2ban Konfigurieren

Nachdem fail2ban installiert und die Konfigurationsdatei kopiert wurde und ich einen kleinen Überblick über die Parameter gegeben habe, geht es weiter mit der Konfiguration der einzelnen Module.

Allgemeine Einstellungen

In der Datei /etc/fail2ban/jail.local befindet sich in etwa Zeile 21 die Option „ignoreip„. Hier werden die IP-Adressen eingegeben, die immer ignoriert werden sollen. Dazu gehört natürlich auch die Lokale IP-Adresse „127.0.0.1“. In Zeile 22 steht die Option „bantime„. Hier steht die Zeit in Sekunden, die eine IP-Adresse gebannt sein soll. Ein Negativ-Wert führt zu einem permanent-ban. Die Option in Zeile 23 heißt „maxretry“ und legt fest, wie viele Versuche erlaubt sind, bevor die IP-Adresse gebannt wird.

Ein Auszug aus meiner jail.locale (Zeile 20-23):

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime = 86400 # one day
maxretry = 3

Ungefähr in Zeile 94 geht es los mit den einzelnen Modulen. Als erstes kommen die Filter-Regeln für SSH:

[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Für das Modul ssh gelten somit folgende Regeln: Alle Zugriffe, die sich mehr als drei mal falsch verbinden wollen, werden für ein Tag gebannt.

Alle weiteren Module sind in den weiteren Zeilen unterhalb zu finden. Aktiviert werden sollten nur die Regeln, wo die Module/Software Pakete auch installiert und aktiv sind. Denn wo nichts ist, braucht auch nichts gebannt werden.

Nach anschließender Regeländerung muss nur noch der fail2ban Service neugestartet werden, damit die Regeln auch greifen.

service fail2ban restart

Schritt 3: Die Log Auswertung

Wer sich den fail2ban Log live ansehen möchte, kann den Befehl „tail“ verwenden. Angezeigt werden mit dem folgenden Befehl immer die letzten 10 Zeilen aus der Log Datei:

tail -10f /var/log/fail2ban.log

Das Ergebnis sieht etwa so aus:

fail2ban log auswertung

Performance

Da fail2ban als eigenständiger Deamon auf dem Server läuft und ständig Zugriffe aller Art überprüft, werden dementsprechend mehr Server Ressourcen benötigt. Die Auswirkungen sind jedoch so gering, das man es kaum merkt.

Fazit

Mithilfe von fail2ban wird die Server Sicherheit um einiges verbessert und zugleich der Server durch das blockieren von bestimmten IP-Adressen entlastet.

PS: Sollte ich etwas vergessen haben oder habt ihr weitere Tipps? Dann hinterlasse bitte ein Kommentar!

Kommentare (1)

Kommentare sind geschlossen.