[HowTo] Hacker in Asterisk abwehren: Fail2Ban (ohne iptables)

cmmehl

Aktives Mitglied
Mitglied seit
15 Jun 2004
Beiträge
812
Punkte für Reaktionen
1
Punkte
0
Hoi z'samme,

ich betreibe 2 asterisken auf vservern, und habe heute mal die logs studiert - normalerweise eher langweilig, aber heute war's mal recht ergiebig.

Da hat also irgendsoein heini versucht, sich auf meinen asterisken einzuloggen, erfolglos gluecklicherweise. Aber auf beiden so ziemlich gleichzeitig und angesichts der anzahl an versuchen eindeutig mit einem programm / skript. Sieht in etwa so aus (vserver anonymisiert):
Code:
     [Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"3306336983"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"100"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"101"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"102"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"103"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"104"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"105"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"106"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"107"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"108"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"109"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"110"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"111"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"112"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"113"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"114"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
[Oct 12 22:03:19] NOTICE[4760] chan_sip.c: Registration from '"115"<[EMAIL="sip%[email protected]"]sip:[email protected][/EMAIL]>' failed for '91.214.44.171' - No matching peer found
... und so weiter, bis extension 990, und das auf beiden servern.

Eine suche nach dieser IP bei tante google ergibt ueber 12.000 treffer, ueberwiegend zum thema spam, und anscheinend ist es eine IP aus Belize. Wenn sie nicht eh gefaked ist.

Hat sonst noch jemand dieses phaenomen (schaut mal in /var/log/asterisk/messages ...)?

Ich habe bislang noch nicht von derartigen attacken gehoert. Gibt es da irgendwelche schutzmassnahmen? Etwa dass der asterisk nicht mehr als 3 register attempts pro minute von ein und derselben IP annimmt?

Fuer sachdienliche hinweise etc etc
Chris
 
Zuletzt bearbeitet:
n' Morgen Chris,

bei mir am 19. genau das gleiche, ich werd' mal am Wochenende drüber nachdenken ..

Ergänzung: es kam von der IP 93.35.147.15 - über http://www.ip-adress.com/whois/93.35.147.15 sieht man, dass die Adresse vom ISP Fastweb aus Italien kommt ... oder auch nicht :noidea:
 
Zuletzt bearbeitet:
Hier ebenfalls in 3 Wellen von zwei verschiedenen IP-Adressen aus:
91.214.44.171 (12. Oktober, 22:49 und 13. Oktober, 01:10)
93.35.147.15 (19. Oktober, 16:02)

Gruß,
Wichard
 
Fail2Ban klingt sehr gut, braucht aber iptables, die (soviel ich weiss) auf einem vserver nicht verfuegbar sind.

Auf meinen servern laeuft aber denyhosts, das ohne iptables auskommt, und leistet gute arbeit. Es muesste doch moeglich sein, das asterisk log (messages) mit denyhosts zu verheiraten .... habe nur leider nichts darueber finden koennen.

Any suggestions?
 
bei mir am 21.10. gegen 8h10, gleich IP wie bei cmmehl. IP lässt sich in Belize lokalisieren, ist für einen Hop nach Luxemburg aber eher unwahrscheinlich.

jo
 
Fail2Ban klingt sehr gut, braucht aber iptables, die (soviel ich weiss) auf einem vserver nicht verfuegbar sind.

Dann installier das doch nach. Zumindest auf Strato-vservern geht das völlig problemlos. Du darfst nur nicht vergessen, auf jeden Fall die Regel

Code:
-A INPUT -p tcp -m tcp --dport ssh -j ACCEPT

einzutragen, um Dich nicht irgendwann versehentlich selbst auszusperren. Solltest Du SSH auf einen anderen Port als 22 gelegt haben, mußt Du natürlich statt "ssh" die Portnummer eintragen.

Denyhosts ist eine sehr gute Sammlung von python Skripten, um SSH Angriffe abzuwehren. Es spricht natürlich nichts dagegen, daß Du Dich hinsetzt und anhand der vorgegebenen Beispielskripte das gleiche gegen Asterisk-Angriffe jeglicher Art nachprogrammierst.

Fail2Ban ist quasi eine Weiterentwicklung, es macht Denyhosts eigentlich überflüssig, da man mit Fail2Ban beliebige Filter erstellen kann - natürlich auch für SSH.
 
Vielen dank fuer die erklaerungen! Ich weiss nicht mehr, wie ich zu der ueberzeugung gelangt war, iptables liefen auf einem vserver grundsaetzlich nicht - defakto ist das auf meinem vserver bereits installiert. Und netterweise ist in der neuesten version von fail2ban (apt-get install fail2ban) bereits ein SSH blocker konfiguriert, der dann tatsaechlich denyhosts ueberfluessig macht. Also tatsaechlich das programm der wahl fuer alle belange :)

Ich habe nun aber noch zwei fragen:

1 - wie kriege ich iptables zum laufen? Mit dem in der voip-info.org anleitung genannten befehl erhalte ich nur einen error:
Code:
v34999:~# /etc/init.d/iptables start
/etc/init.d/iptables: Datei oder Verzeichnis nicht gefunden

2 - Abgesehen davon, dass man in der neuesten version von fail2ban nicht mehr direkt in die jail.conf sondern in in eine neu zu erstellende jail.local schreiben soll, scheint mir folgende zeile aus der voip-info.org anleitung falsch zu sein:
Code:
logpath  = /var/log/asterisk/full
Muesste es nicht eher so heissen?
Code:
logpath  = /var/log/asterisk/messages

Vielen dank fuer erklaerungen!
Chris
 
Zuletzt bearbeitet:
Aus der Traum :-(

Mein erinnerungsvermoegen ist offenbar nicht gaenzlich hinueber - auf meinen vservern ist iptables nicht zum laufen zu bringen. Diese antwort erhielt ich heute auf meine anfrage:
Auf Grund der von uns verwendeten Virtualisierungssoftware können auf einem Gastsystem keine iptables Regeln eingetragen werden. Dies kann nur auf dem Wirtsystem erfolgen.
Jetzt weiss ich wenigstens, dass das nichtfunktionieren nicht an mir liegt ...

Offenbar gibt es fuer vserver unterschiedliche virtualisierungssoftwares, also besser mal anfragen bevor man's versucht.

Schoenen abend allseits
Chris
 
Danke, Chris für den Hinweis!

Apr 14 17:10:05 SIP von 72.22.88.115

Jun 13 05:17:38 IAX2 von 88.140.150.237 hier nicht nur Nummern sondern auch mögliche Standardwörter wie default, voip, router, telephone, softphone etc.

Sep 13 12:17:24 SIP von 75.101.194.117 mit Nummern und Standardwörtern, wie sales, postmaster, marketing etc.

Sep 21 22:49:45 SIP von 64.27.9.76 mit Nummern und Standardwörtern

Marcel
 
fail2ban funktioniert prinzipiell auch ohne iptables. Die Skripte können auch mit einer denyhost-Logik arbeiten und anstatt der iptables die /etc/hosts.deny bearbeiten.

Schau Dir einfach mal die unterschiedlichen Aktionen an, die in /etc/fail2ban/action.d definiert sind. Die entsprechende Aktion wird dann einfach in den Asterisk-Jail eingetragen.

Code:
[asterisk-iptables]
enabled  = true
filter   = asterisk
#action   = iptables-allports[name=ASTERISK, protocol=all]
action   = hostsdeny[name=ASTERISK, protocol=all]
logpath  = /var/log/asterisk/messages
maxretry = 5
bantime = 259200

Im Beispiel siehst Du die einzige notwendige Änderung - nur eine andere action auswählen und alles wird gut. Den jail-Namen habe ich bewußt auf "asterisk-iptables" gelassen, um weitere Änderungen zu vermeiden. Perfektionisten würden das natürlich auch noch anpassen. Funktional macht es keinerlei Unterschied.
 
Zuletzt bearbeitet:
Fail2ban rocks! :dance:

Vielen dank fuer die Erlaeuterungen!

Schaetze, das duerfte noch einige andere hier im forum interessieren, ich habe mal den thread-titel angepasst.

Viele gruesse
Chris
 
Aus gegebenem anlass moechte ich noch empfehlen, sorgfaeltig darauf zu achten, dass auch wirklich die letzte version von Fail2Ban installiert wird. Derzeit ist das die 0.8.4-1

Ich hatte bei mir einfach nur apt-get install fail2ban gemacht, und bekam dann eine uralt-version installiert, auf der das asterisk-jail gar nicht funktionierte, wie ich 2 tage spaeter bei einer erneuten attacke fesstellen musste. Das SSH-jail ging hingegen auch mit der alten version und meldete taeglich interventionen, deshalb hab ich's auch erst nicht gemerkt.

Fail2ban sollte wirklich jeder auf seine(n) (v)server(n) installieren, dann waere die welt schon wieder ein bisschen besser. Dem VoIP_Indianer herzlichen dank fuer seine geduldige hilfe!

Frohes bannen allseits wuenscht

Chris
 
Zuletzt bearbeitet:
/etc/hosts.deny hat kein Einfluss an Asterisk!

Damit wird die IP für PING, TELNET, FTP, SSH geblockt, aber kein Brutteforce an Asterisk!
 
Entspricht auch meiner Erfahrung. Asterisk benutzt die tcpwrapper nicht, hab ich auch in dem anderen Thread schon mehrmals gepredigt. fail2ban in Verbindung mit SIP Registrierungsversuchen hat nur Sinn mit iptables. Da führt kein Weg vorbei.
 
:confused: :confused: :confused:
Also bei mir SCHEINT Fail2Ban mit HostDeny zu funktionieren. Im messages-File sehe ich von einem Hackversuch jeweils nur noch die Einträge von den ersten beiden Versuchen nachher ist Ruhe. Wie ich schon irgendwo erwähnt habe, erlaubt der Provider von meinem vServer kein Zugriff auf iptables.
 
Bei mir ist es einfacher.
Ich habe eigenen Root Host Server und da 4 Guest Systeme.
Ich versuche heute die LOGs von Guest Systeme auf dem Host mit fail2ban parsen und per iptables on host zu bannen.

Gruß,
Gena
 
Zuletzt bearbeitet:
:confused: :confused: :confused:
Also bei mir SCHEINT Fail2Ban mit HostDeny zu funktionieren. Im messages-File sehe ich von einem Hackversuch jeweils nur noch die Einträge von den ersten beiden Versuchen nachher ist Ruhe. Wie ich schon irgendwo erwähnt habe, erlaubt der Provider von meinem vServer kein Zugriff auf iptables.

Hast Du das mal händisch nachvollzogen? Also wirklich eine entsprechende Anzahl an falschen Registrierungen senden und dann gucken ob Du wirklich geblockt wirst? Ich nämlich nicht (ausser mit iptables).

Ich würd mich ja durchaus gerne vom Gegenteil überzeugen lassen, aber sogar hier auf der DEV Mailingliste wird eingeräumt das derzeit tcpwrapper nicht unterstützt werden

http://www.mail-archive.com/[email protected]/msg36772.html
http://www.mail-archive.com/[email protected]/msg36781.html
 
Hast Du das mal händisch nachvollzogen?
Soweit ich mich erinnern kann: JA. Hatte letzthin diverse Anpassungen am Asterisk vorgenommen. Als die Tests nicht funktionierten wurde ich dann regelmässig ausgesperrt. Hatte deswegen schliesslich HostDeny vorübergehend deaktiviert, um beim ISP nicht dauernd eine neue IP beziehen zu müssen.
 
Sehr interessant. Auf allen mir zur Verfügung stehenden Systemen ist es asterisk komplett egal, wenn ich die IP meines Telefons in die deny Dateien entsprechend aufnehme.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.