Installation von fail2ban unter CentOS 7

15

Ich verwende die Antwort von @GarethTheRed auf diese Frage , um fail2ban auf einem entfernten CentOS 7-Server zu installieren. Ich kann alle Schritte ausführen, bis tail -f /var/log/fail2ban.logich andere Ergebnisse erhalte als in seiner Antwort.

Hier sind die Ergebnisse, die ich bei diesem Schritt erhalte:

[[email protected] ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

Nach der letzten Zeile erhalte ich nur einen Cursor, aber keine Eingabeaufforderung, es sei denn, ich tippe Ctrl-C.

Wenn ich tippe systemctl status fail2ban, wird mir mitgeteilt, dass fail2banaktiv ist. Wenn ich mich vom System abmelde und sshdmich später wieder anmelde, werden mir viele fehlgeschlagene Anmeldeversuche seit meiner letzten Anmeldung gemeldet. Also sollte es fail2banProtokolle geben. Aber ich kann sie scheinbar nicht finden.

Kann mir jemand zeigen, wie ich dieses Setup so einrichte, dass fail2banProtokolle erstellt werden, die ich nachverfolgen kann?

CodeMed
quelle
Haben Sie die Dateiberechtigungen überprüft? Ich habe mehr als einmal Zeit verschwendet, um herauszufinden, dass die Berechtigungen das Problem waren.
Codewaggle
1
fail2banist jetzt im EPEL-Repo. Versuchen Sie es von dort zu installieren. Deinstallieren Sie die aktuelle Version und stellen Sie sicher, dass keine restlichen Konfigurationsdateien usw. vorhanden sind. Installieren Sie dann von EPEL. Ich habe es ohne Probleme auf einem CentOS 7-Computer ausgeführt.
garethTheRed
Ich habe im letzten Kommentar eine kleine Lüge erzählt - ich habe vergessen, dass ich es vor einiger Zeit reparieren musste. Lange Antwort unten ...
garethTheRed

Antworten:

32

Versuchen Sie, fail2banvon EPEL aus zu installieren . Es ist für CentOS 7 verpackt und Sie erhalten Updates, sobald sie veröffentlicht werden. Das Installieren des rpmFormulars eines anderen Repos funktioniert möglicherweise (in diesem Fall), ist jedoch nicht die beste Methode, um Dinge zu tun.

Installieren Sie zunächst das EPEL-Repository, indem Sie Folgendes eingeben (als Root):

yum install epel-release

Das obige sollte EPEL installieren und Ihnen Zugang zu vielen neuen Paketen geben . Eines dieser Pakete ist fail2ban, installieren Sie es, indem Sie Folgendes ausführen:

yum install fail2ban

Standardmäßig sind keine Jails konfiguriert, um ein einfaches sshdJail zu konfigurieren :

Erstellen / bearbeiten Sie die Datei /etc/fail2ban/jail.localund fügen Sie Folgendes hinzu:

[sshd]
enabled = true

Beginnen Sie mit:

systemctl start fail2ban

Machen Sie es zum Startzeitpunkt:

systemctl enable fail2ban

Früher gab es einen bekannten Fehler, bei dem SELinux den fail2banZugriff auf die Protokolldateien blockierte , die für die Ausführung seiner Aufgabe erforderlich waren. Dies scheint in der neuesten Version von CentOS 7 behoben zu sein. Sie sollten die folgenden Änderungen nicht vornehmen müssen.

Wenn Sie dieses Problem haben, werden in den Protokollen keine Symptome und in der Ausgabe von nichts als fehlgeschlagen oder blockiert angezeigt fail2ban-client status sshd.

Um nach SELinux-Fehlern zu suchen, lesen Sie die Journale mit:

journalctl -lfu fail2ban

Achten Sie auf Nachrichten wie:

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

Deshalb wie vorgeschlagen vorgehen und ausführen:

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Starten Sie dann sicherheitshalber neu fail2ban:

systemctl restart fail2ban

Möglicherweise müssen Sie den obigen Vorgang sogar wiederholen, bis keine Fehlermeldungen mehr im Protokoll angezeigt werden.

Wenn sich Ihr Server im Internet befindet, überwachen Sie fail2ban-client status sshd. Es werden bald fehlgeschlagene und gesperrte Zählungen angezeigt, wenn Sie alle SELinux-Probleme behoben haben.

Beachten Sie, dass Sie Ihre SELinux-Richtlinienaktualisierungen im Auge behalten müssen. Wenn eine selinux-policyPaketaktualisierung angezeigt wird, wird diese möglicherweise überschrieben, und Sie müssen die obigen Befehle möglicherweise erneut ausführen. Sie werden wissen, ob dies der Fall ist, da fail2banes nicht mehr funktioniert!

garethTheRed
quelle
Ich danke dir sehr. Sollte ich zuerst bestimmte Schritte unternehmen, um fail2ban zu deinstallieren? Oder wird das automatisch in den Schritten erledigt, die Sie oben angegeben haben?
CodeMed
Ich würde zuerst die Version von Fedora 20 deinstallieren und sicherstellen, dass das Verzeichnis /etc/fail2bangelöscht wird.
garethTheRed
Dieser enabled = trueTeil hat funktioniert. Ich habe überall gelesen, dass ssh standardmäßig konfiguriert und aktiviert ist, aber das stimmte nicht.
Rahil Wazir