Předpoklady

Mám více jak jedno číslo u Odorik.cz a můj Asterisk má veřejnou IP adresu (kterou si zvládnu ochránit proti útokům) Případ, pokud nemáte neveřejnou IP adresu (máte neveřejnou). Návod se též hodí, pokud máte jiné zařízení než Asterisk, které neumí přidat hlavičku rpid.

Výhody

Je to velmi jednoduché a přehledné, nemusím pro každé číslo nastavovat registraci.

sip.conf

[general]
alwaysauthreject=yes  
; nutné kvůli bezpečnosti, útočník se nedozví, jestli útočí na existující uživatelské jméno (tel. číslo), čímž se mu mnohonásobně sníží šance uhodnutí hesla.
context=anonym ; Pokud někdo neznámý a neregistrovaný pošle jen tak hovor na Váš asterisk (tedy na uri), je třeba
; hovor poslat do kontextu, který je k tomu uzpůsoben a nedovolí provádět placené hovory
...

[odorik]
type=peer
host=81.31.45.51 ; je to sip.odorik.cz
disallow=all
allow=alaw  ; doporučujeme upřednostňovat alow - nejvyšší kvalita (ulaw se ve Evropě nepoužívá, ale v USA)
allow=g729
context=odorik_prichozi


[20] ; dobrý nápad může být zvolit číslo klapky rovnou jako veřejné číslo, hacker to pak tíž uhádne
type=friend
accountcode=20 ; zde si můžete dát, co chcete, je to jen pro Vaše interní potřeby
username=20 ; přihlašovací jméno pro autentizaci
callerid=00420910110006 ; tohle je jedno z Vašich veřejných čísel, které jste vyhradili pro tuhle klapku
secret=asdfakjdf24zz  ; zvolit dostatečně komplikované heslo je velmi důležité, denně se jej někdo snaží uhádnout
context=odorik_odchozi  ; v tomto kontextu se ocitnou hovory z Vašeho telefonu
host=dynamic
nat =1
qualify=yes
canreinvite=no
disallow=all
allow=alaw
allow=g729

extensions.conf

[anonym]
exten => _[234]X,1,dial(SIP/${EXTEN}) ; anonymní hovory z internetu mohou volat jen na Vaše klapky, nikam jinam
...
[odorik_prichozi]
exten => 00420910110006,1,dial(SIP/20) ; příchozí hovory na číslo 910110006 budou zvonit na klapce 20
; např exten => _X.,1,dial(SIP/20) značí, že všechny příchozí hovory budou zvonit na klapce 20
...
[odorik_odchozi]
..
exten => _1X.,1,dial(SIP/${EXTEN}@odorik) ; čísla začínající jedničkou jsou tísňové linky - NA NĚ JE NUTNÉ SE DOVOLAT
exten => _[23456789]XXXXXXXX,1,dial(SIP/${EXTEN}@odorik) ; tohle jsou čísla v národním tvaru
exten => _00XX.,1,dial(SIP/${EXTEN}@odorik) ; odorik bere čísla v národním i mezinárodním tvaru
exten => _+XX.,1,dial(SIP/00${EXTEN:1}@odorik) ; někdo může ze softphonu vytočit + místo 00
..
exten => _[234]X,1,dial(SIP/${EXTEN}) ; tohle jsou např. klapky u vás - může to být ale i úplně jinak

Co ještě?

Příchozí hovory:Hovory na veřejná telefonní čísla si v rozhraní můžete snadno nasměrovat na URI. (příklad uri: sip:221221221@84.24.38.21) Je dovoleno z uri vynechat veřejné číslo např. „sip:@84.24.38.21“ - v tom případě bude veřejné číslo doplněno podle skutečnosti.

Odchozí hovory:Kontaktujte nás, potřebujeme znát Vaši veřejnou IP adresu. Všechny hovory pak budeme účtovat na linku, kterou si vyberete. (za tím účelem může být dobré si zřídit extra linku) Číslo volajícího pak může být libovolné z Vašeho rozsahu. Pokud předáte číslo volajícího mimo povolený rozsah (např. 20), bude použito číslo 910119999.

V případě technických potíží Vaší ústředny nebo pokud je to tak pohodlné, si můžete veřejná čísla přesměrovat kamkoli jinam (na mobil, na skype) nebo se pod danými čísly přihlásit rovnou na sip.odorik.cz.

Pozor na bezpečnost! Téměř každý den někdo zkouší uhádnout SIP jméno a heslo nebo volat bez placení na předražené destinace v zahraničí. Nejlepší je na port 5060 povolit přístup jen ze známých IP adres! (rtp porty není nutné blokovat, na nich nedochází k autentizaci a k útokům) Dobrý může být též využívat pro SIP nějaký hodně nestandardní port - třeba 48274. Je to jednoduché a přitom i účinné. Skenovat všechny náhodné IP adresy a na nich ještě všechny porty mnohonásobně ztíží útočníkovi práci. V tom případě můžete číslo portu přidat do uri takto: sip:221221221@84.24.38.21:48724

http://etel.wiki.oreilly.com/wiki/index.php/Asterisk_Brute_Force_Prevention

http://www.voip-info.org/wiki/view/Fail2Ban+%28with+iptables%29+And+Asterisk

http://engineertim.com/linux/bfd-brute-force-rule-for-asterisk/

Jinými slovy v protokolu SIP je zásadní bug, který nemyslí na to, že někdo bude zkoušet uhádnout heslo celou noc. Aby se tomu zabránilo, používají se obvykle různé „nešikovné“ skripty.

V nejhorším případě může špatně nebezpečně zvolené heslo znamenat tohle: http://www.ceskatelevize.cz/ct24/domaci/71247-pozor-na-hackery-za-tri-dny-muzete-provolat-pres-milion-korun/

Samozřejmě u nás můžete přijít jen o předplacený kredit, z toho důvodu platit předem je velmi užitečný bezpečnostní nástroj. Úplně největší riziko je, pokud máte v asterisku i ISDN kartu a některé hovory směrujete přes ISDN. Hovory do nákladných destinací, kam bude volat hacker, jsou mnohem dražší a nikdo vás pravděpodobně brzy neupozorní.

Z bezpečnostních důvodů je maximální počet odchozích hovorů vždy omezen. Omezení je nastaveno individuálně podle potřeby daného zákazníka. Tohle omezení řeší i případ, že by se hovory zacyklily. (Odorik pošle hovor Vám, vy pošlete zase zpátky na odorik a tak pořád dokola)


Pozor, pokud asterisk běží na stroji, který zároveň slouží jako router, budou všechny hovory za routerem také autentizovány. Abychom se vyhnuli možnému „bezplatnému“ volání z celé podsítě, je dobré autentizovat na základě hesla, i když veřejnou adresu máte.


 
asterisk-odorik-peer.txt · Poslední úprava: 2017/06/23 14:33 autor: root