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".