Bonjour à tous,
J'ai un serveur IPBX local (asterisk) qui fonctionne à merveille et je tente de configurer un softphone sur un téléphone Android.
Le téléphone se connecte au serveur asterisk via un tunnel openvpn (ça
fonctionne). J'ai configuré le softphone et je peux recevoir et émettre
des appels VoIP lorsque tous les ports sont ouverts.
Maintenant, je cherche à limiter un peu l'accès avec iptables et comme
attendu, ça ne fonctionne pas.
J'ai commencé par écrire dans /var/lib/iptables/active :
[0:0] -A OUTPUT -o tun0 -p tcp -m tcp --dport sip -j ACCEPT
[0:0] -A OUTPUT -o tun0 -p udp -m udp --dport sip -j ACCEPT
[0:0] -A OUTPUT -o tun0 -p icmp -j ACCEPT
[0:0] -A OUTPUT -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -m
helper --helper sip -j ACCEPT
[0:0] -A INPUT -i tun0 -p tcp -m tcp --sport sip -j ACCEPT
[0:0] -A INPUT -i tun0 -p udp -m udp --sport sip -j ACCEPT
[0:0] -A INPUT -i tun0 -p icmp -j ACCEPT
[0:0] -A INPUT -i tun0 -m conntrack --ctstate ESTABLISHED,RELATED -m
helper --helper sip -j ACCEPT
Le softphone ouvre une session SIP. Mais les paquets "voix" en UDP ne passent pas. Je tente donc l'utilisation de nf_conntrack_sip que je
charge dans /etc/modules en rajoutant ceci à la fin du fichier de configuration d'iptables :
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A PREROUTING -p tcp -m tcp --dport ftp -j CT --helper ftp
[0:0] -A PREROUTING -p tcp -m tcp --dport sip -j CT --helper sip
[0:0] -A PREROUTING -p udp -m udp --dport sip -j CT --helper sip
[0:0] -A OUTPUT -p tcp -m tcp --sport sip -j CT --helper sip
[0:0] -A OUTPUT -p udp -m udp --sport sip -j CT --helper sip
COMMIT
Là, j'ai un comportement que je ne comprends pas. Conntrack sur l'adresse du téléphone Android me renvoie :
Root rayleigh:[/etc/openvpn/ccd] > conntrack --dump | grep -E '192.168.3.2' udp 17 96 src=192.168.3.2 dst=192.168.3.1 sport=48161 dport=5060 src=192.168.3.1 dst=192.168.3.2 sport=5060 dport=48161 [ASSURED] mark=0
use=1
Notez bien l'absence de helper=sip, alors que sur un téléphone CISCO, j'obtiens bien :
Root rayleigh:[/etc/openvpn/ccd] > conntrack --dump | grep -E '192.168.10.253'
udp 17 3300 src=192.168.10.253 dst=192.168.1.1 sport=5060
dport=5060 src=192.168.1.1 dst=192.168.10.253 sport=5060 dport=5060
[ASSURED] mark=0 helper=sip use=1
Pour l'instant, j'ai contourné le problème en ouvrant tous les ports UDP en entrée et en sortie vers le téléphone Android au travers du VPN. Mais j'aimerais bien comprendre pourquoi nf_conntrack_sip ne fonctionne
pas comme attendu.
À toutes fins utiles, les endpoints CISCO et Android sont configurés de
la même manière (SIP/UDP). Je suis preneur de toute idée pour corriger
le problème.
Bien cordialement,
JB
[...]Pas dans asterisk: Voir le fichier rtp.conf
. les ports UDP à ouvrir sont ceux du RTP, 10000 à 20000 de baseNon. Les ports UDP sont pris aléatoirement entre 1024 et 65534.
nf_nat_sip est également utilisé?. SIP et firewall ne font pas bon ménage, sous Andoid j'utilise zoiperC'est pour cela qu'il y a nf_conntrack_sip. La question est de savoir pourquoi il ne fonctionne pas comme attendu.
en iax
Bonjour
. asterisk est il sur le serveur OpenVPN? Si oui, le réseau
192.168.3.x/24 est il dans localnet?
. les ports UDP à ouvrir sont ceux du RTP, 10000 à 20000 de base
. SIP et firewall ne font pas bon ménage, sous Andoid j'utilise zoiper
en iax
Le 09/07/2025 à 16:15, BERTRAND Joël a écrit :
[...]Pas dans asterisk: Voir le fichier rtp.conf
. les ports UDP à ouvrir sont ceux du RTP, 10000 à 20000 de baseNon. Les ports UDP sont pris aléatoirement entre 1024 et 65534.
nf_nat_sip est également utilisé?. SIP et firewall ne font pas bon ménage, sous Andoid j'utilise zoiperC'est pour cela qu'il y a nf_conntrack_sip. La question est de savoir
en iax
pourquoi il ne fonctionne pas comme attendu.
Quel est le logiciel client Android?
Si je devais examiner de près la config iptables, je ferais bien
attention à ce qu'il n'y ai pas de confusion entre le port d'écoute d'Asterisk (probalement udp:5060) et celui de linphone (probablement
un port udp quelconque pour laisser libre le port 5060 sur la machine Android).
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 151:34:55 |
Calls: | 10,383 |
Files: | 14,054 |
Messages: | 6,417,807 |