[ cerveni @ 10.06.2013. 20:05 ] @
Recimo da je scenario sledeći:

Instaliran Asterisk na mašini koja se krije iza firewall-a (mašina u lokalnom lanu), Firewall računar je pod CentOS 6.4 što znači da je kernel 2.xx uradjen NAT spoljneg UDP porta 5060 na Asterisk kao i NAT opsega RTP portova.

Koje bi sve rulove u Iptables trebalo staviti da bi se zaštitio VoIP od neželjenih poziva.

Molim vas samo konkretne odgovore (ne linkove)

Moj primer:

Skupljao sam malo logove sa:

Code:
tcpdump -i ethX -vvv -n dst port 5060 -w /root/capture.log


ubacio sam neke ACL liste vezane za User Agenta: koje koristim (3CX, X-lite, Grandstream, Nokia302) sve ostalo sa ubio (što možda i nije pametno "vaše mišljene u vezi ovog" )
Uglavnom od tada se ne pojavljuju čudni upiti u Asterisk log fajlu tipa: [email protected] koji pokušava da nekog pozove.

Rulove sam ubacio u Iptables Mangle prerouting tabeli pre ikakvog rutiranja i to samo za new paket.

Code:
Chain SIP-Filter (1 references)
target     prot opt source               destination
DROP     udp  --  anywhere             anywhere            /* Drop Sipcli */ udp dpt:sip STRING match "User-Agent: sipcli" ALGO name bm TO 65535
ACCEPT     udp  --  anywhere             anywhere            /* Allow 3CX Phone */ udp dpt:sip STRING match "User-Agent: 3CXPhone" ALGO name bm TO 65535
ACCEPT     udp  --  anywhere             anywhere            /* Allow Grandstream */ udp dpt:sip STRING match "User-Agent: Grandstream" ALGO name bm TO 65535
ACCEPT     udp  --  anywhere             anywhere            /* Allow X-Lite */ udp dpt:sip STRING match "User-Agent: X-Lite" ALGO name bm TO 65535
ACCEPT     udp  --  anywhere             anywhere            /* Allow Nokia302 */ udp dpt:sip STRING match "User-Agent: Nokia302" ALGO name bm TO 65535
ACCEPT     udp  --  anywhere             anywhere            /* Allow Ekiga */ udp dpt:sip STRING match "User-Agent: Ekiga" ALGO name bm TO 65535


prvo sam gledajuci log ustanovio da se za ovakve napade u većini slučajeva koristi sipcli (User Agent: sipcli) dodao kao rule da ne puštam bilo kakav saobraćaj prema portu 5060 ako paket u sebi sadrži reč sipcli, naravno dodao sam rule pre toga da se prvo taj paket loguje kao VoIP-Napad

Tipičan kod:

Code:
INVITE sip:[email protected] SIP/2.0
To: 00972592513936<sip:[email protected]>
From: 200<sip:[email protected]>;tag=0d82d985
Via: SIP/2.0/UDP 37.8.41.112:10022;branch=z9hG4bK-2d619316ebad71f2cf24cceecf5e010b;rport
Call-ID: 2d619316ebad71f2cf24cceecf5e010b
CSeq: 1 INVITE
Contact: <sip:[email protected]:10022>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, BYE
User-Agent: sipcli/v1.8
Content-Type: application/sdp
Content-Length: 280


[ scenarist @ 10.06.2013. 20:32 ] @
Ja sam to odradio na nivou IP adresa.
U INPUT sam dozvolio pristup serveru samo sa odredjenih ip adresa. Vecinom su staticne ip adrese i na kraju dodao DROP svih ostalih adresa.

Code:

[root@go ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           /*loopback
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
3    ACCEPT     all  --  178.63.xx.xx        0.0.0.0/0
4   ACCEPT     all  --  178.63.xx.xx        0.0.0.0/0
5   ACCEPT     all  --  77.72.xx.xx       0.0.0.0/0
6   ACCEPT     all  --  176.9.xx.xx         0.0.0.0/0
7   DROP       all  --  0.0.0.0/0   


Nijedna ekstenzija iz vana se ne moze registrovati osim ako ne dolazi sa gore navedenih dozvoljenih adresa.

Zabrani logovanje root usera, postavi strong sifre (preko 20 karaktera) za ekstenzije,zabrani ping servera.

Mozda ce ti ovaj link koristiti
http://www.elitesecurity.org/t453388-0#3153935
[ cerveni @ 10.06.2013. 20:46 ] @
U mom slučaju je obratno, nemam korisnike sa statičkim IP adresama ali znam koji softver koriste jer sam ga ja instalirao statička IP adresa je samo servera iza koga se krije Asterisk.

Nema VoIP trunkinga ali mislim da bi sa njime bilo lako jer većinom oni imaju statičku IP adresu.

Inače Asterisk nema uopšte setovan nijedan prenosnik tako da je cela ova priča o tome kako da se drugima pomogne da bolje zaštite svoje mašine.

Ja sam ovim moj problem nagomilavanja loga rešio u potpunosti, proverio da li mogu da registrujem VoIP telefone i napravio po neki razgovor bez problema.

Imam kolegu koji je nakačen na Asterisk iz Herceg Novog mi ostali smo iz Beograda, planiram jedino da se kačim kad budem išao u Grčku na more ali opet bez mogućnosti biranja van Asteriska.

Inače probao sam VoIP trunking prema TDM centrali u firmi i to je prošlo iz prve ali ga nisam zadržao baš iz razloga da neko ne napravi ogroman račun.


DOBAR paket:

Code:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 85.222.xxx.xxx:5060;branch=z9hG4bK7b6e37fe;rport=5060
Contact: <sip:[email protected]:5070;transport=UDP;rinstance=93e9b42e64c21502>
To: <sip:[email protected]:5070;transport=UDP;rinstance=93e9b42e64c21502>;tag=362b2313

From: "Unknown"<sip:[email protected]>;tag=as136d9a32
Call-ID: OWZjZjkwNjM5ODgxMGM0N2FlYmQ1YTBhMDczMjUzMDU.
CSeq: 1481 NOTIFY
User-Agent: 3CXPhone 6.0.26523.0
Content-Length: 0

[ cerveni @ 10.06.2013. 21:01 ] @
Problem loga je sledeći:

Pušten je debug mod i ustanovio sam da se linije dupliraju. Ok rećićete skini debug stavi na info ali se one ipak dupliraju u debug modu.

Code:
[2013-06-10 15:09:09] NOTICE[1901] chan_sip.c: Peer '203' is now UNREACHABLE!  Last qualify: 181
[2013-06-10 15:10:01] NOTICE[1901] chan_sip.c: Peer '203' is now Reachable. (221ms / 2000ms)
[2013-06-10 15:10:01] NOTICE[1901] chan_sip.c: Peer '203' is now Reachable. (221ms / 2000ms)
[2013-06-10 15:11:05] NOTICE[1901] chan_sip.c: Peer '203' is now UNREACHABLE!  Last qualify: 221
[2013-06-10 15:11:05] NOTICE[1901] chan_sip.c: Peer '203' is now UNREACHABLE!  Last qualify: 221
.......
[2013-06-10 15:27:41] VERBOSE[1901] chan_sip.c:     -- Registered SIP '205' at 109.93.xxx.xxx:5070
[2013-06-10 15:27:41] VERBOSE[1901] chan_sip.c:     -- Registered SIP '205' at 109.93.xxx.xxx:5070
[2013-06-10 15:27:42] NOTICE[1901] chan_sip.c: Peer '205' is now Reachable. (289ms / 2000ms)
[2013-06-10 15:27:42] NOTICE[1901] chan_sip.c: Peer '205' is now Reachable. (289ms / 2000ms)
[2013-06-10 15:39:36] NOTICE[1901] chan_sip.c: Peer '205' is now UNREACHABLE!  Last qualify: 156
[2013-06-10 15:39:36] NOTICE[1901] chan_sip.c: Peer '205' is now UNREACHABLE!  Last qualify: 156
[2013-06-10 15:40:20] VERBOSE[1901] chan_sip.c:     -- Registered SIP '205' at 93.86.xxx.xxx:5070
[2013-06-10 15:40:20] VERBOSE[1901] chan_sip.c:     -- Registered SIP '205' at 93.86.xxx.xxx:5070
[2013-06-10 15:40:20] NOTICE[1901] chan_sip.c: Peer '205' is now Reachable. (157ms / 2000ms)
[2013-06-10 15:40:20] NOTICE[1901] chan_sip.c: Peer '205' is now Reachable. (157ms / 2000ms)
[2013-06-10 15:51:42] VERBOSE[1901] chan_sip.c:     -- Registered SIP '202' at 93.86.xxx.xxx:5060
[2013-06-10 15:51:42] VERBOSE[1901] chan_sip.c:     -- Registered SIP '202' at 93.86.xxx.xxx:5060
[2013-06-10 15:51:42] NOTICE[1901] chan_sip.c: Peer '202' is now Reachable. (63ms / 2000ms)
[2013-06-10 15:51:42] NOTICE[1901] chan_sip.c: Peer '202' is now Reachable. (63ms / 2000ms)
[2013-06-10 18:09:41] VERBOSE[1901] chan_sip.c:     -- Registered SIP '203' at 79.101.xxx.xxx:5060
[2013-06-10 18:09:41] VERBOSE[1901] chan_sip.c:     -- Registered SIP '203' at 79.101.xxx.xxx:5060
[.......
[2013-06-10 21:22:26] VERBOSE[1901] chan_sip.c:     -- Registered SIP '200' at 178.148.xxx.xxx:5060
[2013-06-10 21:22:26] VERBOSE[1901] chan_sip.c:     -- Registered SIP '200' at 178.148.25xxx.xxx:5060
[2013-06-10 21:22:26] NOTICE[1901] chan_sip.c: Peer '200' is now Reachable. (125ms / 2000ms)
[2013-06-10 21:22:26] NOTICE[1901] chan_sip.c: Peer '200' is now Reachable. (125ms / 2000ms)



[ Sleepless_mind @ 10.06.2013. 21:01 ] @
Ako nema trunkinga, nema ni potrebe za internetom.
Napravi VPN server na ruteru i tih par korisnika neka se konektuju na VPN kada zele da razgovaraju. Svaki racunar podrzava VPN kao i svi smart telefoni.
U tom slucaju nema bojazni od nezeljenih poziva.

@scenarist
To je dobro ako je loopback 127.0.0.1
Ali ako je loopback setovan sa javnom adresom, pa pri tome jos i rutiran, prvo pravilo je veoma zanimljivo :)
[ bachi @ 10.06.2013. 21:20 ] @
A s obzirom na obzir da Telekonj Svrbija blokira port 5060, tj. saobraćaj ka SIP portu, VPN je i više nego poželjan.
[ cerveni @ 10.06.2013. 21:24 ] @
Nije da je neizvodljivo ali nisam hteo da ih zamaram sa podizanjem VPN-a koji inače radi na serveru.

Drugo ukoliko nije uspostavljen VPN oni su nedostupni.

inače prva dva pravila na border firewalu u MANGLE Preroutingu su:

Code:
# Completed on Mon Jun 10 22:10:01 2013
# Generated by iptables-save v1.4.7 on Mon Jun 10 22:10:01 2013
*mangle
:PREROUTING ACCEPT [248884:113494222]
:INPUT ACCEPT [48330:5112134]
:FORWARD ACCEPT [200128:108344676]
:OUTPUT ACCEPT [45184:37236238]
:POSTROUTING ACCEPT [245383:145591595]
:MSYNFLOOD - [0:0]
-A PREROUTING -s 0.0.0.0/8 -j DROP 
-A PREROUTING -s 255.255.255.255/32 -j DROP 


sa chainom MSYNFLOOD sam se igrao i uspeo da ubijem skaniranje portova sa raznim skenerima.

proveravao sam sa ShieldsUp sa grc-a mašina je po njima stealth 100%

Probao ja od kuće sa NMAP intese scan bez ICMP-a dobijam da su dva porta otvorena (nikad ne dobijem ista dva).

pušteni servisi su:

http(nema ništa samo tekst fajl ka pravoj stranici firme),ftp(force_localuser_use_ssl),dns (view default i unutrašnji view),mail gateway(bez korisnika ali pravi ne forward porta ka unutra),pptp VPN(radius auth), NAT još nekih portova ka unutra.

denyhost i fail2ban ka svim lokalnim portovima gde očekujem auth (prosek oko 12 upecanih dnevno)

[ cerveni @ 10.06.2013. 21:30 ] @
Citat:
bachi:
A s obzirom na obzir da Telekonj Svrbija blokira port 5060, tj. saobraćaj ka SIP portu, VPN je i više nego poželjan.


Nisam primetio a i ne isplati im se da jure portove jer ja mogu da postavim koji god hoću port.

od deset korisnika koje imam bar osam je kod njih.

[ bachi @ 10.06.2013. 22:29 ] @
Mislim na MTS 3g internet.
[ cerveni @ 10.06.2013. 22:48 ] @
Nokia 302 radi preko WiFi nisam probao 3G a MT:S kartica , vidiš u rulevima da ima User-Agent: Nokia.

Trebalo bi i tableti da rade, jedino moj krš od teflona neradi a navodno ima podešavanja SIP-a..... Nokia 305 RM-766 šta sve nisam probao i ne vredi......

[ cerveni @ 14.06.2013. 09:54 ] @
Evo malo DROP izveštaja:

Code:
 Listed by source hosts:
 Logged 51 packets on interface eth3
   From 5.39.19.45 - 32 packets to udp(5060) 
   From 31.222.157.5 - 5 packets to udp(5060) 
   From 46.20.35.90 - 1 packet to udp(5060) 
   From 50.30.33.28 - 1 packet to udp(5060) 
   From 62.75.236.17 - 2 packets to udp(5060) 
   From 66.197.248.153 - 1 packet to udp(5060) 
   From 69.163.35.185 - 1 packet to udp(5060) 
   From 80.86.81.70 - 1 packet to udp(5060) 
   From 88.150.184.74 - 1 packet to udp(5060) 
   From 109.230.220.168 - 1 packet to udp(5060) 
   From 125.7.19.50 - 1 packet to udp(5060) 
   From 188.138.110.39 - 1 packet to udp(5060) 
   From 195.24.36.67 - 1 packet to udp(5060) 
   From 199.180.116.149 - 1 packet to udp(5060) 


[ cerveni @ 15.06.2013. 16:56 ] @
Evo našao sam i ostale koje treba blokirati:

SIP Firewall Howto

Dodao sam još jedno Allow za:

User-Agent: Pirelli Broadband Solutions/Discus Platform/DWV_TSR_4.3.2.0021
User-Agent: 3CXPhone for Android 2.0.5

t.j. namestio sam Pirelli DRG-A226