Fail2Ban Asterisk-Log-Überwachung

Aus Deutsche Asterisk User Group
Wechseln zu: Navigation, Suche

Fail2Ban

Fail2Ban ist ein Python Programm, welches mit Regular-Expressions Log-Dateien auswerten kann und auf gewisse Vorfälle reagieren kann.

Mit Fail2Ban kann man eigentlich alle Services, die in Log-Dateien schreiben überwachen. Es wird dann automatisch eine Firewall-Regel erstellt, welche den Angreifer vom System aussperrt. Die Regel wird nach einer festlegbaren "Sperrzeit" wieder gelöscht.

Die für die Version verwendete Fail2Ban-Version ist 0.8.3, es sollte auch mit nachfolgenden Versionen funktionieren, mit älteren Versionen funktioniert das leider nicht.


Filter-Regel für Asterisk

/etc/fail2ban/filter.d/asterisk.conf

  
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf


[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Wrong password
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Username/auth name mismatch
            NOTICE.* <HOST> failed to authenticate as '.*'$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
   

Die failregex legen fest, dass überprüft wird, hier auf falsche Passwörter, nicht angelegte Peers oder Benutzer/Passwort Fehler.


Aktion für Asterisk

Um das ganze zu aktivieren und die Bedingungen festzulegen wir in der Datei /etc/fail2ban/jail.conf folgender Eintrag benötigt:

  
[asterisk]

enabled  = true
filter   = asterisk
action   = iptables[name=ASTERISK, port=sip, protocol=udp]
           sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@asterisk-server]
logpath  = /var/log/asterisk/messages
maxretry = 3
   

Als erstes wird die Konfiguration aktiviert, dann wird der Filter definiert, in diesem fall asterisk für asterisk.conf in /etc/fail2ban/filter.d. Dann wird die auszuführende Aktion festgelegt, in unserem Fall wird die IP mittels IPTables script gesperrt und mittels sendmail eine e-Mail an root gesendet. Nun muss noch das Verzeichnis der Log-Datei festgelegt werden und zuguter letzt die erlaubte Anzahl von "Fehlern".