Jak poznać czy, ktoś próbuje włamać się na konto SIP'owe?
Jeśli tylko na CLI asteriska widzisz wiele komunikatów w stylu
chan_sip.c: Registration from '' failed for 'xxx.xxx.xxx.xxx' - Wrong password
lub
chan_sip.c: Registration from '"xxx"' failed for 'xxx.xxx.xxx.xxx' - No matching peer found
Najłatwiejsza metoda zabezpieczenia się przed tego typu atakami jaka aktualnie przychodzi mi do głowy to zastosowanie fail2ban w połączeniu z iptables.
Pokażę co i jak, oprę się na ogólnie dostępnych informacjach.
Pobieramy Fail2ban a następnie po rozpakowaniu instalujemy:
python setup.py install
Oczywiście, można też skorzystać z gotowych paczek dla większości dystrybucji.
Po instalacji przechodzimy do konfiguracji. W tym celu należy stworzyć plik
/etc/fail2ban/filter.d/asterisk.conf, a następnie zapisać do niego poniższą konfigurację:
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
[INCLUDES]
#before = common.conf
[Definition]
#_daemon = asterisk
failregex = NOTICE.* .*: Registration from '.*' failed for '' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
NOTICE.* .*: Registration from '.*' failed for '' - ACL error (permit/deny)
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from \)
NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
NOTICE.* .*: Failed to authenticate user .*@.*
ignoreregex =
Następnie edytując /etc/fail2ban/jail.conf dodajemy:
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=admin@voipbilling.pl]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 259200 #Czas bana
W asterisku powinniśmy ustawić format daty do logowania w pliku
/etc/asterisk/logger.conf
[general]
dateformat=%F %T
W CLI asteriska przeładowujemy loggera:
root@asterisk:~# asterisk -rv
asterisk*CLI> logger reload
To już wszystko jeśli chodzi o proces konfiguracyjny teraz należy tylko załączyć fail2ban. Albo przez skrypt startowy np /etc/rc.d/rc.fail2ban start ewentualnie ręcznie /usr/local/bin/fail2ban-client
Brak komentarzy:
Prześlij komentarz
Proszę zostaw swój komentarz w celu dopowiedzenia tego czego ja nie wiedziałem lub wywołania ciekawej dyskusji. Wprowadziłem moderowanie komentarzy ze względu na dużą popularność bloga wśród różnych SEO botów :)