Fail2ban: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 33: Zeile 33:
=== Wo finde ich Hilfe, kann ein neues Feature beantragen oder einen Bug Report erstellen? ===
=== Wo finde ich Hilfe, kann ein neues Feature beantragen oder einen Bug Report erstellen? ===


Die erste Anlaufstelle ist diese Seite. Lesen Sie die [[FAQ]] das [[Manual]] und die [[HOWTOs]]. Suchen Sie in den  [http://sourceforge.net/mail/?group_id=121032 Archiven der Mailing Liste] und des [http://sourceforge.net/tracker/?group_id=121032 Bug Trackers]. Wenn Sie keine Antwort gefunden haben registrieren Sie sich bei der [https://lists.sourceforge.net/lists/listinfo/fail2ban-users Mailing Liste]. Die Registrierung ist notwendig um Spam Probleme zu vermeiden.
Die erste Anlaufstelle ist diese Seite. Lesen Sie die [[FAQ]] das [[Manual]] und die [http://blog.256bit.org/archives/383-fail2ban-und-der-Kampf-gegen-Trackback-Spam.html HOWTOs]. Suchen Sie in den  [http://sourceforge.net/mail/?group_id=121032 Archiven der Mailing Liste] und des [http://sourceforge.net/tracker/?group_id=121032 Bug Trackers]. Wenn Sie keine Antwort gefunden haben registrieren Sie sich bei der [https://lists.sourceforge.net/lists/listinfo/fail2ban-users Mailing Liste]. Die Registrierung ist notwendig um Spam Probleme zu vermeiden.


Wenn Sie überzeugt davon sind einen neuen Bug gefunden zu haben können Sie ein neues Ticket unter [http://sourceforge.net/tracker/?group_id=121032&atid=689044 anlegen].
Wenn Sie überzeugt davon sind einen neuen Bug gefunden zu haben können Sie ein neues Ticket unter [http://sourceforge.net/tracker/?group_id=121032&atid=689044 anlegen].

Version vom 25. Februar 2011, 10:57 Uhr


Das Board mit Freiheiten




Was ist Fail2Ban?

Fail2Ban durchsucht Logdateien wie /var/log/pwdfail oder /var/log/apache/error_log und blockt IP-Adressen, die zu viele fehlgeschlagene Loginversuche haben. Es aktualisiert Firewallregeln, um diese IP-Adressen zu sperren. Fail2Ban kann mehrere Logfiles lesen - beispielsweise die von sshd oder apache. Die IP-Adressen werden nach einer vorher festgelegten Zeitspanne wieder aktiviert.

Ist Fail2Ban freie Software?

Fail2Ban ist freie Software, Sie können sie unter den Bedingungen der GNU General Public License Version 2 oder optional jede neuere Version ändern oder weitergeben.

Welche Abhängigkeiten hat Fail2Ban?

Die genauen Abhängigkeiten sind in der Sektion Requirements zu finden.

Wie interpretiere ich die Versionsnummer von Fail2Ban?

Die Struktur der Versionsnummer ist major.minor.revision. Die derzeitige major Version ist 0, die Richtlinie für minor ist wie folgt:

  • ungerade Zahlen (0.5, 0.7, etc) sind Entwicklerversionen
  • gerade Zahlen (0.6, 0.8, etc) sind stabile Versionen

Neue Versionen und Änderungen an der API werden in den Entwicklerversionen durchgeführt. Stabile Versionen beinhalten nur Security Updates und kleine Verbesserungen.

Revisionen sind benannt nach alpha, beta, release candidate und stable. Stabile Versionen mit einer geraden minor Versionsnummer heissen immer stable. Entwicklerversionen folgen dem Schema das sie zuerst alpha mit steigender Stabilität beta und kurz vor dem Release release candidate benannt werden.

Wo finde ich Hilfe, kann ein neues Feature beantragen oder einen Bug Report erstellen?

Die erste Anlaufstelle ist diese Seite. Lesen Sie die FAQ das Manual und die HOWTOs. Suchen Sie in den Archiven der Mailing Liste und des Bug Trackers. Wenn Sie keine Antwort gefunden haben registrieren Sie sich bei der Mailing Liste. Die Registrierung ist notwendig um Spam Probleme zu vermeiden.

Wenn Sie überzeugt davon sind einen neuen Bug gefunden zu haben können Sie ein neues Ticket unter anlegen.

Wenn Sie ein neues Feature vorschlagen möchten Erstellen Sie hier ein neues Ticket.

Stellen Sie bitte in beiden Fällen sicher, dass nicht bereits ein Ticket vorhanden ist das Ihren Anwendungsfall abdeckt.

In jedem Fall sollten sie die folgenden Informationen angeben:

  • Die Version von Fail2Ban die Sie benutzen (-V oder --version)
  • Die Python Version
  • Wie haben Sie Fail2Ban installiert (Sourcen, .deb, .rpm, etc)
  • Relevante Teile der Konfiguration von Fail2Ban
  • Logging Ausgabe von Fail2Ban unter Benutzung des DEBUG mode (-vvv und loglevel = 4)

Und natürlich eine genaue und klare Beschreibung des Problems.

Installation

Gibt es RPM/DEB Pakete für Fail2Ban?

Natürlich. Sie finden sie auf der Downloads Seite

Wie installiere ich Fail2Ban von einem RPM/DEB/Gentoo Paket?

Wenn Sie rpm benutzen:

rpm -Uvh fail2ban-X.X.X.rpm

Wenn Sie die Anforderung haben ein src.rpm (Source Paket) zu installieren gehen Sie folgendermaßen vor:

rpm --rebuild fail2ban-X.X.X.src.rpm

Danach finden Sie das Binary rpm unter /usr/src/RPM/RPMS/ix86

rpm -Uhv /usr/src/RPM/RPMS/ix86/fail2ban-X.X.X.rpm

Bitte überprüfen Sie Ihre PATH Variable (/usr/src/RPM/RPMS/ix86/) bevor Sie etwas ändern.

Fail2Ban von einem .deb Paket installieren:

dpkg -i fail2ban-X.X.X.deb

Fail2Ban unter Gentoo installieren:

emerge fail2ban

Konfiguration

Was ist das Hauptkonfigurationsfile von Fail2Ban?

Die Fail2Ban Konfiguration ist relativ einfach. Es gibt nur ein Konfigurationsfile in dem Fail2Ban insgesamt konfiguriert wird. Die Datei befindet sich unter /etc/fail2ban.conf

Sie können jeden beliebigen Texteditor verwenden um die Datei zu bearbeiten: vim, emacs, joe, ae...

Die Datei muss als root editiert werden.

Wie kann ich Fail2Ban konfigurieren?

Dieser Schritt ist im Detail unter HOWTOs erklärt.

Kann ich bestimmte User Accounts davon ausschließen eine IP Sperre auszulösen?

(I don't know, perhaps that's a feature request.)

Da Fail2Ban nichts über Usernamen weiß ist dies nur möglich indem bestimmte User in der Regular Expression ausgeschlossen werden.

Security

Was muss ich bei der Benutzung von Fail2Ban beachten?

Besonders auf Systemen, die SSH/CGI/PHP Dienste an unbekannte Nutzer anbieten, ist es möglich, dass anderen Nutzern der SSH-Zugang oder andere Dienste blockiert werden. Dies kann passieren, indem der angreifende Nutzer folgendes ausführt:

logger -p auth.warning -t 'sshd[123]' 'Illegal user user1 from 1.2.3.4'

Weiterhin könnte der bösartige Nutzer mit Hilfe der PHP-Funktionen openlog() oder syslog() ins Syslog schreiben.

Lösung #1: Dieses Sicherheitsproblem kann umschifft werden, in dem man die Rechte von /dev/log anpasst, welches in der Grundeinstellung jedem Benutzer das Logging erlaubt. Dazu legt man eine Gruppe log an, fügt dieser Gruppe sämtliche Deamons hinzu und setzt die Rechte von /dev/log dahingehend, dass nur noch die Gruppe schreiben darf.

Troubleshooting

Ich habe Postfix installiert. Trotzdem existiert kein "mail"-Kommando. Wie kann ich Benachrichtigungen per Email erhalten?

Wahrscheinlich kannst du auf deinem System das sendmail-Kommando nutzen. Kopiere /etc/fail2ban/action.d/mail-whois.conf nach /etc/fail2ban/action.d/mail-whois.local, öffne die Datei zur Bearbeitung und ersetze mail durch sendmail. Hier ein Beispiel:

actionban = echo -en "From:root <fail2ban>
            To: <dest>
            Subject: [Fail2Ban] <name>: banned <ip>
            Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here are more information about <ip>:\n
            `whois <ip>`\n
            Regards,\n
            Fail2Ban"|sendmail -t  

mail.conf kann auch verändert werden.

Warum wird mein CVS-Benutzer beim Benutzen von SSH geblockt?

Wenn du die Eclipse-CVS-Integration mit SSH verwendest führt jeder Zugriff auf das CVS zu einem Fehler bevor ein gültiger Zugriff stattfindet. Als Konsequenz wird dein CVS-Benutzer von Zeit zu Zeit gebannt.

Ich bekomme die Fehlermeldung "Please check the format and your locale settings"

Die Meldung sieht in etwa so aus:

ERROR: time data did not match format: data=Mar 21 10:00:50 fmt=%b %d %H:%M:%S
ERROR: Please check the format and your locale settings.

Das ist ein bekannter Bug. Seit der Version 0.6.1, benutzt Vorlage:Fail2ban deine lokalen Einstellungen des Datums- und Zeitformats. Wie auch immer, einige Unholde achten nicht auf die lokalen Einstellungen und schreiben ihre Lognachrichten, indem sie den POSIX-Standard benutzen. Sieh dir folgendes an bug, um mehr Informationen zu erhalten.

Du könntest versuchen die LANG-Variable zu überschreiben:

# LANG=en_US /etc/init.d/fail2ban restart

Du kannst die verfügbaren lokalisieren mit:

# locale -a

Wie bringe ich fail2ban dazu, mehr auszugeben?

Um die Gesprächigkeit von Vorlage:Fail2ban zu erhöhen, geben Sie die Kommandozeilenoption -vvv für fail2ban-client und fail2ban an (nur Version 0.6.x). Setzen Sie die Variable loglevel in der Konfigurationsdatei /etc/fail2ban/fail2ban.conf auf 4 (nur Version > 0.6.x).

Es werden keine E-Mails versendet

Damit Fail2Ban E-Mails versendet, muss in der Konfigurationsdatei jail.conf eine Zeile geändert werden, damit E-Mails versendet werden.

# Choose default action.  To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section 
action = %(action_)s

Denn folgenden Eintrag umbenennen

action = %(action_mwl)s

Nachdem Neustart von fail2ban, ist die Änderung aktiv.

Fehlermeldung: ERROR Unexpected communication error

Wenn fail2ban startet und beim abarbeiten jedes Jails erhalte ich die folgende Meldung:

fail2ban.server : ERROR Unexpected communication error

Fail2ban läuft bei mir unter Suse Linux 11.1


Unter Ubuntu 9.04 kommt ggf. der gleiche Fehler. Es liegt dort wohl an der python-version 2.6, nur dort kommt der Fehler.

Nach Bearbeiten von /usr/bin/fail2ban-server sollte fail2ban funktionieren:


#!/usr/bin/python2.5

# This file is part of Fail2Ban.

....


Dazu muss freilich python 2.5 installiert sein und unter /usr/bin/python2.5 liegen. Mit "which python2.5" kann geprüft werden, wo python2.5 liegt, falls es installiert ist.

Sicherheitshalber sollte man /usr/bin/fail2ban-client und /usr/bin/fail2ban-regex auch auf python2.5 umstellen..

Fehlermeldung: ERROR Unexpected communication error

suse 9.3 Fail2ban ban'd nichts mehr ! alles offen ! nach einem "killall fail2ban-server" und "/etc/init.d/fail2ban start funktionierte wieder alles !

Wieso erhalte ich E-Mails von Fail2Ban doppelt?

Debian / jail.conf: Revision: 281

Beim Starten und Stoppen von fail2ban kann es unter Debian dazu kommen, dass die Benachrichtigungen darüber doppelt verschickt werden.

Ursache

Die Action-Shortcuts action_mw und action_mwl verlinken auf die entsprechenden Action-Konfigurationsdateien. (Z.B. sendmail-whois.conf und auch sendmail-whois-lines.conf)

Offenbar werden alle in diesen Shortcuts erwähnten Konfigurationsdateien beim Starten und Stoppen berücksichtigt, selbst wenn sie später nicht verwendet werden. Dadurch verschickt beispielsweise sendmail-whois.conf als auch sendmail-whois-lines.conf eine jeweils eigene Start-Stopp-Nachricht. Da diese Meldungen identisch sind, erscheinen sie doppelt.

Lösung

Beide Zeilen des nicht verwendeten Action-Shortcuts in der jail.conf und ggf. auch in der jail.local auskommentieren:

#action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
#%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s]