Fail2Ban Asterisk-Log-Überwachung
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".