Contre toute attente, la migration de mon IPBX perso a été parfaitement sans douleur. Après l’installation de la toute dernière version d’Asterisk sur mon domU NetBSD à l’aide de pkgin (puisqu’aucune option particulière ne m’était nécessaire), je me suis souvenu d’un article que j’avais initialement écrit sur le site Freephonie.org, dans lequel j’expliquais les diverses manipulations pour monter un Asterisk fonctionnel derrière du NAT.
Comme souvent, l’article a été peaufiné par quelques contributeurs, et son contenu est tout à fait valide pour la configuration d’un Asterisk 1.6.
Ainsi, mon dom0 GNU/Linux possède les règles suivantes :
# on accepte le traffic SIP et une plage destinée au RTP -A INPUT -p udp -m udp --dport 5060 -j ACCEPT -A INPUT -p udp -m udp --dport 10000:10100 -j ACCEPT # On accepte le forward pour ces memes ports vers le domU qui accueille le PBX -A FORWARD -d 10.20.30.1/32 -i eth0 -p udp -m udp --dport 5060 -j ACCEPT -A FORWARD -d 10.20.30.1/32 -i eth0 -p udp -m udp --dport 10000:10100 -j ACCEPT # On reroute le traffic vers ces ports sur le domU adéquat -A PREROUTING -i eth0 -p udp -m udp --dport 5060 -j DNAT --to-destination 10.20.30.1 -A PREROUTING -i eth0 -p udp -m udp --dport 10000:10100 -j DNAT --to-destination 10.20.30.1
Sur le domU en question, ma configuration n’a guère changé, si ce n’est que j’ai réduit le pool de ports RTP dans le fichier rtp.conf :
; ces ports correspondent aux ports reroutés par iptables sur le dom0 rtpstart=10000 rtpend=10100
Le reste de la configuration est strictement identique à la documentation visible sur Freephonie.org.
Notez qu’afin de pouvoir débugger tranquillement avec votre utilisateur, grace à la commande asterisk -r, et pour pouvoir éditer les fichiers de configuration d’Asterisk sans peine, pensez à vous ajouter au groupe “asterisk”, autoriser l’ecriture pour le groupe dans /usr/pkg/etc/asterisk, et modifier les champs suivants dans le fichier asterisk.conf :
runuser = asterisk ; The user to run as rungroup = asterisk ; The group to run as [files] astctlpermissions = 0660 astctlowner = asterisk astctlgroup = asterisk astctl = asterisk.ctl
Et enfin: “Allo Bob ? c’est Paul !”
July 6th, 2010 at 3:48 pm
Bonjour Emilie, je vois que tu maitrise bien le sujet je me permets de te poser une question , voila je suis sous nagios /centreon , quand je lance la commande check_UDP -H -p -s -e il me répond socket timeout.. je regarde sur wireshark je vois que le packet arrive bien a mon serveur distant mais voici ce que wireshark me marque destination unreachable (port unreachable)chez moi il s’agit du port 88 (kerberos)… Merci d’avance pour ton aide et bonne journée