PDA

Voir la version complète : Problème de NAT



Julien
06/01/2011, 19h43
Bonjour à tous et tout mes voeux pour cette nouvelle année.

J'ai pas mal cherché sur internet la solution à mon problème sans trop de succès.
Je l'explique : Mes clients SIP qui se connectent sur mon adresse IP publique ne sont pas sur le bon port.

sip.conf :

[general]
context=interne
language=fr
dtmfmode=auto

externip=82.24x.xxx.xxx
localnet=192.168.10.0/255.255.255.0
nat=yes

bindport=5060
bindaddr=0.0.0.0
srvlookup=yes

[200]
username=200
secret=password
type=friend
host=dynamic
context=interne
qualify=yes
nat=yes
canreinvite=no

[201]
username=201
secret=password
type=friend
host=dynamic
context=interne
qualify=100
nat=yes
canreinvite=no

...


extensions.conf


[general]
static=yes
writeprotect=no
autofallthrough=yes

[interne]
exten => 200, 1, Dial(SIP/200,20,r)
exten => 201, 1, Dial(SIP/201,20,r)
...


Sur mon serveur, iptables n'est pas configuré, je n'ai pas non plus shorewall ou ufw... C'est mal !
La commande netstat -a me confirme que le port 5060 en UDP est ouvert et à l'écoute

Je possède un routeur WRG624v3 sur lequel j'ai forwardé le port 5060 en TCP/UDP et les ports 10001 à 20000 en UDP (fichier rtp.conf)
J'ai désactivé le NAT Filtering et SPI Firewall du routeur...

La connexion des mes clients donnent la chose suivante :


dellix*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
203/203 192.168.10.102 D N 5060 OK (1 ms)
202/202 192.168.10.104 D N 5060 OK (2 ms)
201/201 82.24x.xxx.xxx D N 55012 OK (8 ms)
200/200 82.24x.xxx.xxx D N 55022 OK (4 ms)


Du coup, j'ai des problèmes de communications (l'appel n'aboutit pas, son que dans un sens...)
Mes deux clients connectés sur l'@ IP publique sont : softphone Ekiga et Thomson ST2030. Ces deux clients se connectent sur le bon port à partir du moment ou je leur donne l'@ IP privée.

J'ai écrasé la conf à plusieurs reprises, j'ai désactivé le module ael, j'ai changé de routeur physique (D-link DIR-100)
Je me rends bien compte que c'est un problème de NAT mais je ne sais comment le résoudre...

Quelqu'un a t'il déjà été confronté à ce problème ? Comment l'a t'il résolu ?
Merci d'avance

ffossard
06/01/2011, 23h32
Ça ne me semble pas un problème, ce sont les ports sources "publics" qui sont affichés, pas le port de destination (5060), ni le port source local du téléphone (qui lui est bien 5060), c'est le PAT (et non le NAT) du routeur côté téléphones qui fait cela.

Le "N" dans la colonne "nat" n'est pas contre pas logique au vu de votre configuration (nat=yes dans sip.conf)

hb22
07/01/2011, 01h07
C'est quoi l'architecture réseau exactement ?
réseau internet avec IPs privés <=> routeur <=> internet avec IP publique
Il y autre chose ?
C'est quoi le routeur du coté des téléphones ?


sur lequel j'ai forwardé le port 5060 en TCP/UDP
Attention aux pirates !
Au minimum changer le port SIP (bindport=xxxxx) ou/et mettre en place des des règles en béton.
(voir http://www.asterisk-france.org/content.php/25-Bloquer-les-scans)

ffossard
07/01/2011, 01h16
Oui surtout avec des comptes aussi faciles à énumérer, c'est aimer le risque.

Julien
07/01/2011, 11h28
Merci de vos réponses.

C'est une maquette et pas une version de prod d'ou la non encryption des mots de passes, ports et cie.
J'ai vu pas mal de postes qui traitaient des attaques du port 5060.
Merci pour le lien, j'étais déjà tombé dessus et effectivement, la phase de sécurisation est importante et se fera en seconde partie de mes tests quand j'aurais réussi à avoir un résultat.

hb22 : L'architecture de ma maquette est bien celle que tu as définie.
Internet --- BOX en bridge --- Netgear WGT624 ---- Serveur Asterisk (LAN 192.168.10.0/24:5060)

Je connecte mes clients à partir de mon réseau local via un CNAME. Mon collègue se connecte de chez lui via freebox sans conf particulière.
le dig du CNAME renvoie bien mon IP Publique.

Merci fossard de ton explication.
* avec le D-link, j'ai constaté que le premier client connecté vie le CNAME est bien sur le port 5060. Le second se connecte sur un port 55000, idem pour le troisième.
* Effectivement, je ne comprends pas le "N" de la colonne nat. J'ai testé plusieurs versions d'asterisk (1.4 & 1.6) sur différents os (debian 5, debian 6, centos).

J'ai beau faire, j'ai toujours ce résultat. Je n'arrive pas à le résoudre et je ne comprends vraiment pas. J'avais dans l'idée d'acheter un routeur récent suite à la lecture de ce ticket (http://www.asterisk-france.org/newreply.php?do=postreply&t=516)

hb22
07/01/2011, 20h18
BOX en bridge
Tu as fait tous les essais avec cette box ?
C'est quoi cette box ?
Il faudrait essayer avec autre chose.

Julien
07/01/2011, 21h14
Oui ,j'ai fait tout les essais avec cette box (freebox).

J'ai réussi à faire fonctionner mon installation. J'ai retenté en décochant l'option SPI Firewall du routeur Netgear.
Effectivement, le port de connexion est toujours 55020. La communication fonctionne dans les deux sens.
Par contre, j'ai toujours la colonne NAT avec un N pour mon client ?!

Concernant les conseils de changements de ports + se cacher, j'ai pu très vite observer le double effet kiss-cool...
Je ne mettrais pas toutes les lignes mais ce méchant canadien m'a fait comprendre de vite sécuriser ma maquette si je veux la poursuivre dans de bonnes conditions...


[Jan 7 19:17:22] NOTICE[23294]: chan_sip.c:15642 handle_request_register: Registration from '"4019"<sip:4019@192.168.10.254>' failed for '184.107.163.114' - No matching peer found
[Jan 7 19:17:22] NOTICE[23294]: chan_sip.c:15642 handle_request_register: Registration from '"4020"<sip:4020@192.168.10.254>' failed for '184.107.163.114' - No matching peer found


Donc,

Changement de port
fail2ban
portsentry


Je suis toujours preneur d'une explication et/ou indice sur la colonne Nat du sip show peers qui affiche N.

Vous me confirmez que les mots de passe des comptes SIP sont indiqués en md5 dans le sip.conf avec les deux lignes suivantes ?


auth=md5
md5secret=


Encore merci pour tout