Es ist mal wieder Zeit für ein bisschen Security auf dem Blog =)

Ich habe mich die Tage auf meiner neuen CentOS 7 Installation eingeloggt und über 100.000 fehlgeschlagene Anmeldeversuche gesehen. Da wird es doch mal Zeit fail2ban einzurichten um dem etwas entgegen zu wirken. Für Debian habe ich das schon einmal auf dem Blog erklärt, nun folgt auch CentOS 7.
Voraussetzung ist, das wir als root auf dem System angemeldet sind und das epel 7 Repository eingebunden ist. Aber zuerst noch etwas Allgemeiner Input.
Was ist fail2ban?
Bei fail2ban handelt es sich um ein in Python geschriebenes kleines Intrusion Detection System. Die Funktionalität ist hierbei recht einfach.
Die Software zählt die Fehlgeschlagenen Anmeldeversuche einer IP Adresse beim ssh Login mit. Wird ein zuvor festgelegter Schwellwert an fehlgeschlagenen Anmeldeversuchen erreicht, erstellt das Programm eine iptables Regel.
Diese Regel sorg dafür, dass alle Verbindungsversuche der IP direkt verworfen werden. Nach Ablauf einer zuvor definierten Zeit, wird die Regel aus dem iptables Regelwerk wieder entfernt.
Ich zeig euch nun in vier einfachen Schritten, wie ihr fail2ban auf eurem CentOS Server einrichten könnt.
Schritt 1: Installation von fail2ban
Wir beginnen wie immer, mit der Aktualisierung des Betriebssystems =)
1 | yum update |
Um anschließend fail2ban zu installieren, kann der folgende Befehl verwendet werden
1 | yum install fail2ban -y |
Auf der Konsole sieht das dann ungefähr so aus:
Mehr ist für die Installation auch nicht zu machen.
Schritt 2: Grundlegende Konfiguration
Als nächste legen wir die Grundlegende Konfiguration für fail2ban an. Dafür kopieren wir uns die mitgelieferte Datei und benennen diese um.
1 | cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
Schritt 3: Anpassen der Standard Konfiguration
In der soeben kopierten Konfiguration passen wir nun noch ein paar Werte an. Dafür rufen wir erstmal die Datei mit einem Editor unsere Wahl auf.
1 | vim /etc/fail2ban/jail.local |
Hier sollten wir die folgenden Einträge suchen und anpassen.
1 2 3 4 5 6 7 8 9 | # "bantime" is the number of seconds that a host is banned. bantime = 6000 # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 5 |
Ich denke die Einträge sind selbsterklärend. Jetzt noch die Datei speichern und unsere Konfiguration ist fertig
Schritt 4: fail2ban starten und Reboot sicher machen
Damit unsere Konfiguration geladen wird, müssen wir nun fail2ban einmal neustarten.
1 | systemctl restart fail2ban.service |
Jetzt sagen wir noch unserem System, dass fail2ban auch bei einem reboot direkt wieder gestartet werden soll.
1 | chkconfig --level 23 fail2ban on |
Das war es auch schon. Jetzt ist unser Server wieder ein wenig Sicherer geworden
Hallo,
Ich wollte anmerken das es so auf Anhieb nicht funktioniert. Man muß manuell den Eintrag
enabled = true
in der jail.local in der Sektion SSHD setzen.
In der vorherigen 0.8x Version unter Centos 6.x z.B. wird es gleich von Anfang an automatisch aktiviert.
Grüße
MDroid
Hallo MDroid,
Danke für den Hinweis =)
Gruß
Christian
Hallo zusammen
Und wie kann ich nun „monitoren“ ???
habe ich da irgend eine grafische Oberfläche oder schreibt es mir die Logs einfach ins File?
Gruss
Hi Peter,
Ich wüsste jetzt nicht das es eine Oberfläche gibt. Ich verwende das Log, was von fail2ban angelegt wird.
Wenn du das nicht anders konfiguriert hast, dann findest du das log file unter /var/log/fail2ban.log.
Hier mal noch ein Link der dir vielleicht weiterhilft:
https://www.the-art-of-web.com/system/fail2ban-log/
Da sind ein paar nützliche Konsolenaufrufe dabei.
Gruß
Christian