[DISKUSSION] Asterisk gegen Hacker absichern

HobbyStern

Aktives Mitglied
Mitglied seit
5 Dez 2005
Beiträge
1,844
Punkte für Reaktionen
0
Punkte
36
Hier der passende Diskussionsthread zum HOWTO

Bitte hier die Anmerkungen/Verbesserungswünsche posten, Danke!
 
Super Howto, Danke.
 
Gerne. Bitte :)
 
Hi,

du schreibst in Deinem HowTo
allowguest=no ; Wir verbieten "Anonymous" Registrationen

was genau ist damit gemeint?
Das jemand als username "Anonymous" verwendet, oder das damit Calls die von nicht registrierten Usern kommen, abgewiesen werden?


Thx
Timm
 
Das jemand als username "Anonymous" verwendet, oder das damit Calls die von nicht registrierten Usern kommen, abgewiesen werden?

Bewirkt wird ersteres, also: abweisen von Verbdindungsversuchen nichtregistrierter "Clients" (respektive "guests").
Will man anonymous caller blocken (eingehend), müßte man in seinem Eingangskontext etwa folgendes angeben (AEL):

Code:
if (${REGEX("^[\+0-9]" ${CALLERID(num)})}) {
       NoOp(Anruf ohne Clip);
       Hangup();
}

bzw. (conf)

Code:
exten => s,n,GotoIf($[${REGEX("^[\+0-9]" ${CALLERID(num)})}]?anon:ok)
exten => s,n(ok),Dial ....
exten => s,n,goto ende
exten => s,n(anon),NoOp(Anruf ohne Clip)
exten => s,n(ende)Hangup
 
Danke abw1oim - ich habe mich etwas missverständlich ausgedrückt, korrigiere ich jetzt.

Es ist natürlich nicht im Sinne der "Asterisk Sicherheit" anonyme Anrufer aus dem ISDN Netz zu blocken (IMHO gibt es ja keine "echten" anonymen Anrufer aus dem SIP Netz..)

Danke für den Hinweis!
 
Hi,

ich meine auch nicht einen unbekannten Anrufer, sondern SIP-User mit dem Usernamen "Anonymous". Aber unter VoIP-Info-Org wird es geschrieben, das damit Calls von nicht registrierten usern gemeint sind, also auch solche Calls die als Ziel eine lokale Nebenstelle haben und das ist aber nicht das Ziel diese abzuwehren, denn dann würden auch keine ENUM-Calls mehr ankommen.
Ich finde "allowguests" nicht besonders gut dieses einzusetzen, denn um das zu erreichen das nicht registrierte User über meinen Asterisk telefonieren darf ich halt in dem context den ich als standard in der sip.conf definiert habe, nicht für outgoing Calls verwenden.

Grüße
Timm
 
Hallo Timm,

...darf ich halt in dem context den ich als standard in der sip.conf definiert habe, nicht für outgoing Calls verwenden.

Genau darum geht es.

In meinem Fall ist allowguests=no okay - wie es bei Dir aussieht ist musst Du wissen - zur Vollständigkeit setze ich hier mal den Hinweis von voip-info.org ein (domain-hervorgehoben):

Code:
This setting determines if anonymous callers are permitted to place calls to Asterisk. This defaults to 'yes'. 

You will need to either set the appropriate default context in the  [general] section of sip.conf, [B]or you can employ a domain= setting[/B] in  which you specify the context that you want calls to this domain to be  handled in the dialplan (extensions.conf). 

In most cases of allowguest=yes you would also want to set 'nat=yes'  in the [general] section of sip.conf since most Internet users are  behind NAT/firewall.
 
Problem mit der fail2ban-Konfig

Hallo Zusammen,

ich hatte heute Morgen ein Problem mit fail2ban in der beschriebenen Konfiguration. Mein Log hatte Einträge, wodurch diese Regel der filter.d/asterisk.conf griff:

NOTICE.* .*: Failed to authenticate user .*@<HOST>.*

Der Teil, der die IP des Angreifers beinhalten soll (<HOST>) war mit der IP meines eigenen Asterisk-Servers belegt. Dadurch wurde die eigene IP gebannt, was dazu führte, dass letztendlich gar nichts mehr funktioniert hat. Hab die Regel nun kurzfristig entfernt und werde mir mal ansehen, wodurch ein solcher Log-Eintrag provoziert wird.

Besten Gruß
schogge
 
Zuletzt bearbeitet:
Okay, hört sich an als ob Du Dich als User/Peer bei einem anderen Asterisk o. anderem Gerät anmeldest und das nicht funktioniert hat.

Wenn dem so ist - dann sollten wir darüber wirklich einmal genauer nachdenken - denn das könnte ja somit jeden fail2ban Asterisk User bei "spezifischer" Konfig ergreifen..

LG Stefan
 
Okay, hört sich an als ob Du Dich als User/Peer bei einem anderen Asterisk o. anderem Gerät anmeldest und das nicht funktioniert hat.

Nein, das ist nicht der Fall. Die genaue Fehlermeldung im Log sieht so aus:
Code:
[2010-09-14 12:58:00] NOTICE[13327] chan_sip.c: Failed to authenticate user <sip
:[email protected]>;tag=cjzqh1rv4c for SUBSCRIBE

XXXXX.de = Domain meines Asterisk-Servers.
User 34 gibt es nicht mehr. Für mich sieht das so aus, als ob sich ein Client versucht als User 34 an meinem Server anzumelden.

Meine Asterisk-Version ist aktuell übrigens 1.4.32.
 
fail2ban

Hallo,

vielen Dank für das HowTo.
Bei mir läuft das tadellos und blockt jeden Tag jede Menge Hacker.
Allerdings habe ich die bantime auf 1 Stunden=3600Sekunden gesetzt und das retry auf 5.

Sollte es vorkommen, dass ein User mal ein falsches User/PW Paar benutzt, kann ihm der Support mitteilen was passiert ist und dass in 1 Stunde wieder alles ok ist.

Hacker geben sowieso nach einigen Fehlversuchen auf, wenn die IP nicht mehr erreichbar ist.
 
XXXXX.de = Domain meines Asterisk-Servers.
User 34 gibt es nicht mehr. Für mich sieht das so aus, als ob sich ein Client versucht als User 34 an meinem Server anzumelden.

Meine Asterisk-Version ist aktuell übrigens 1.4.32.

Selbige Version wie ich.

Ich finde die Aussage von Alfred passend und würde sie so sofort im HowTo übernehmen wollen :

Allerdings habe ich die bantime auf 1 Stunden=3600Sekunden gesetzt und das retry auf 5.

Sollte es vorkommen, dass ein User mal ein falsches User/PW Paar benutzt, kann ihm der Support mitteilen was passiert ist und dass in 1 Stunde wieder alles ok ist.

Ggf. würde auch schon eine Zeit von 30 Minuten reichen und ein retry von 2.

So hätte man Hacker *schnell* geblockt, aber auch nach 30 Minuten wieder entblockt, falls es mal kein Hacker ist :)

LG Stefan
 
Ich "gestatte" den Spezies 3 Fehlversuche um dann 60 Minuten für Ruhe zu sorgen. Eigenartigerweise klappt das nicht immer nach dem 3. mal. Hier ein neuer Rekordhalter, oder habe ich etwas übersehen?
"Hi,
The IP 188.122.84.90 has just been banned by Fail2Ban after
214 attempts against ASTERISK."
 
Mir ist ebenfalls aufgefallen. Ich habe maxretry = 3 in der jail.conf, dennoch reagiert f2b häufig erst nach 10 oder mehr Versuchen. :gruebel:


Gruß
R.
 
Zuletzt bearbeitet:
Geht mir genau so - ich habe eine maximale Zahl von 20 mal gelesen...

Es scheint so als ob die "Attacken" zu schnell kommen - zu schnell asl das f2b sie auslesen könnte...

Abhilfe würde da eine veränderte Überwachung schaffen - f2b liest ja "nur" die logfiles aus...ebenso ist es mir aufgefallen das vermehrt bans zu stande kommen wenn hier die logs rotiert werden - ich denke es wäre sicherlich nicht verkehrt sich darum einmal gedanken zu machen - oder ein separierteres log extra für f2b zu fahren...

LG Stefan
 
Ich fand das Howto zum "dichtmachen" sehr hilfreich, insbesondere regt das zur weitsicht an; soll heißen, man spielt mehr überlegungen zum Thema Sicherheit durch. Ich habe mit
bei mir für ruhigeren Schlaf gesorgt. Allerdings habe ich jetzt ein Problem mit der von "Stiefel" propagierten Skype Lösung über Voxeo. Voxeo leitet die Anrufe auf einen Sip Account nach folgendem Schema
Anmeldename!IP-Adresse@sbc-staging-internal
weiter. Laut Voxeo Support ist keine übergabe des Passwords vorgesehen.
Hat da jemand eine Idee, beispielsweise Anonyme Anmeldungen an bestimmten Konten zulassen, oder besser noch anonyme Anmeldung von ausgewählten IP-Adressen zulassen.
Bolle01
 
Man kann in jail.conf die ignoreip setzen:
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip =
 
Das betrifft aber nur die Einstellungen für Fail2ban, ich meinte allerdings generell alle Anonymen Anmeldungen an Asterisk zu verbieten, mit Ausnahme der Voxeo IP (oder einiger ausgewählter anderer).
"allowguest=no" wird aber in der Sip.conf eingetragen um alle boesen Buben von Dummheiten abzuhalten.
 
Thema Reloaded

Ich "gestatte" den Spezies 3 Fehlversuche um dann 60 Minuten für Ruhe zu sorgen. Eigenartigerweise klappt das nicht immer nach dem 3. mal. Hier ein neuer Rekordhalter, oder habe ich etwas übersehen?
"Hi,
The IP 188.122.84.90 has just been banned by Fail2Ban after
214 attempts against ASTERISK."

Hallo Kollegen,

das Thema ist hier ja schon etwas älter, aber da hier prinzipielle Verständnisschwieirgkeiten mit Fail2Ban bestehen, wollte ich mal meinen Senf dazugeben.

Das Problem, welches ihr habt, wurde bereits richtig erkannt: der Angreifer lässt pro Sekunde sehr viele Versuche durchlaufen. Egal, was ihr macht, es wird immer wieder ein Skript-Kiddie geben, das versucht innerhalb einer Sekunde 100 "Logins" durchzuführen.

Meine [jail.conf]:

# Ich bin paranoid und beobachte auch IAX, deswegen multiport ;-)

Code:
enabled = true
filter  = asterisk
action  = multiport-voip[name=ASTERISK, port="5060,5061,4569,4570", protocol=udp]
          sendmail-whois[name=ASTERISK, [email protected], sender=myvoipmachine]
logpath = /var/log/asterisk/messages
findtime = 1
maxretry = 5
bantime = 604800

Sieht aggressiv aus, ist es auch :) Die Einstellungen (setze ich seit 3 Jahren so ein) bedeuten: Wenn fail2ban innerhalb einer Sekunde (!) 5 Fehllogins in den Logdateien feststellt, wird die IP für eine Woche gebannt. D.h. aber auch, wenn ein Angreifer die Loginanzahl pro Sekunde herunterschraubt, wird er nicht gebannt! Wenn ich jetzt bei den Einstellungen pro Sekunde nur 4 Fehllogins provoziere, werde ich nicht gebannt !!! Egal, wie ihr es dreht und wendet. Man könnte auch maxretry auf 1 stellen, aber dennoch müsste fail2ban eine Sekunde warten und in der Zeit sind unter Umständen schon 100 weitere Versuche erfolgt.

Diese Einstellungen sind wie gesagt aggressiv und gut, denn i.d.R. ist es kein normaler User, der es schafft sich innerhalb einer Sekunde 5 Mal falsch anzumelden ... ABER : Auch mit dieser Einstellung gibt es gelegentlich "Hacker" (eigtl eine Beleidigung für echte Hacker), die innerhalb einer Sekunde locker 200 Versuchen schaffen. Aber die Sekunde muss nun eben verstreichen. Ob man fail2ban auf 0,5 Sekunden drillen kann, habe ich bisher nicht versucht !!!

Falls es sich nicht um ein Produktivsystem handelt, kann ich jedem Voip-Admin "SIPVICIOUS" (google it!) an's Herz legen. Damit kann man diverse Angriffsszenarien durchführen. Z.B. kann man damit prüfen, ob fail2ban korrekt reagiert - dann muss man nicht auf die Kiddies warten ^^ Dieses Tool sollte man eigentlich immer vor dem produktiv Schalten mal laufen lassen. Es ist immer gut und lehrreich, zu sehen, was die "Hacker" sehen ...

HINWEIS: Bitte Achtgeben, dass ihr ggf. iptables flushen könnt, nicht dass ihr Euch den Ast absägt, auf dem ihr sitzt !


Im übrigen ist der goldene Weg, SIP nicht auf dem externen Interface auf Port 5060 laufen zu lassen. Dafür braucht man ja nicht mal nmap (Portscanner) um zu erraten, dass dort SIP läuft. Wenn möglich, sollte man mit seinem Anbieter einen sehr viel höheren Port ausmachen, z.B. 50600 oder noch besser "verschleiert". Das hält schon mal diverse Kiddies raus.

Wie gesagt, ich wollte nur klarstellen, warum fail2ban nicht schneller regieren kann ! Eine Sekunde ist eben eine lange Zeit, gerade im VoIP-Bereich ;-)

Beste Grüße, r0n

P.S.: Ich habe auch ein Jail für SSH damit realisiert.
 
Zuletzt bearbeitet:
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.