Besoin de vous iptable

Bonjour

Voila j’ai un serveur qui fait passerelle pour atteindre sur un reseau privé un serveur VOIP.

L’interface intenet est eth0
Le reseau interne est eth1

Donc quand mon poste telephonique IP va interoger l’ip publique de la passerelle, les paquets seront routés vers le serveur voip.

Le probleme c’est que je n’arrive pas a faire mes regles nat/iptables

Je dois forwader les ports 5060 le port 1719 et 1720 ainsi que le plage 16384 à 16482 et enfin la plage 16384 à 16482 en UDP.

Je suis sur une debian et je ping bien lke serveur voip et l’ip publique.

Merci à vous car je dois rendre mon projet demain.

J’ai testé le plus possible seul.

Merci pour le cou de main.

Creaty

Personne peut donner un coup de main svp ?

Tu avais écrit que tu devais rendre ton projet vendredi dernier, donc je pensais qu’il était trop tard.
Commence par donner tes règles iptables dans l’état actuel.

Merci de ta reponse mais je n’ai toujours pas rendu ce projet faute à ces regles iptables.

J’en ai aucune de valable a te donner pour demarrer car je n’arrive pas a forxarder ce qui arrive sur th0 (patte internet) vers eth1 (reseau local du serveur VOIP).

Merci pour votre aide precieuse.

Tu n’as même pas de règles de base pour le fonctionnement de la machine en routeur (passerelle) pour le réseau local ?
Dans ce cas je vais considérer que le jeu de règle est vide.

#!/bin/sh

IP_SERVEUR_VOIP=x.x.x.x # adresse du serveur VoIP

# activation de la fonction routeur IPv4
sysctl -w net.ipv4.ip_forward=1
# ou bien décommenter la ligne correspondante dans /etc/sysctl.conf pour activation au démarrage

# chargement du module de NAT pour le protocole SIP si nécessaire
modprobe nf_nat_sip
# ou bien ajouter nf_nat_sip dans /etc/modules pour chargement au démarrage

# initialiation d'iptables
iptables -P FORWARD ACCEPT # politique par défaut de la chaîne
iptables -F FORWARD # vidage de la chaîne
iptables -t nat -F PREROUTING # vidage de la chaîne

# redirections
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5060 -j DNAT --to $IP_SERVEUR_VOIP
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1719:1720 -j DNAT --to $IP_SERVEUR_VOIP
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 16384:16482 -j DNAT --to $IP_SERVEUR_VOIP

Salut,

Si Pascal à une bonne note à ton devoir tu lui feras savoir :laughing:

Je tiens dejà a vous remercier pour le soutien que vous apportez aux users de cette communauté très apréciée.

Je vais m’empresser de tester le script que tu m’as donné et te fais savoir si celà fonctionne.

Merci en tout cas a vous.

Merci

Donc ca a l’aire de fonctionner car la commande tcpdump -i eth1 dst port 5060
e revois bien une reponse comme quyoi les paquetes passent sur eth1 (patte reseau local serveur voip).

J’ai du aussi ajouter une route dans le system. J’ai donc tapé ceci.

ip route ad 172.30../32 via 172.30.. dev eth1

Je voudrai savoir comment proceder pour ajouter les regles iptables plus la route en dur dans le system pour ne pas perdre la config lors d’un reboot.

merci.

[quote=“creaty”]J’ai du aussi ajouter une route dans le system. J’ai donc tapé ceci.
ip route ad 172.30../32 via 172.30.. dev eth1[/quote]
C’est une adresse privée non routée sur l’internet public, tu n’as pas besoin de la masquer.
Si le réseau est bien configuré, cette route ne devrait pas être nécessaire (c’est-à-dire si cette adresse appartient au sous-réseau défini sur eth1). Qu’affiche “ifconfig eth1” et comment est-elle configurée (dans /etc/network/interfaces) ?

http://www.debian-fr.org/installation-parefeu-iptables-pour-les-nuls-t1901.html

ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:30:48:89:6d:db
inet adr:172.30.10.114 Bcast:172.30.10.115 Masque:255.255.255.252
adr inet6: fe80::230:48ff:fe89:6ddb/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1409 errors:0 dropped:0 overruns:0 frame:0
TX packets:1155 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:101634 (99.2 KiB) TX bytes:586269 (572.5 KiB)
Interruption:17

Pourquoi avoir défini un masque aussi restrictif, qui, apparemment, n’englobe pas l’adresse du serveur ?
La seule adresse joignable avec cette configuration est 172.30.10.113.

En fait le serveur VOIP est accessible en ...110. ...113 est la gateway et ..**.114 est ma patte internet de la passerelle (eth1)

Autrement quand je fais un tcpdum sur mon interface interne soit : eth1 en ecoutant le port 5060 je vois bien les paquets qui passent, donc votrte script fonctionne bien. Par contre ces meme paquets ne sont pas repérés sur le routeur (ACL par port sur routeur).

D’où cette remarque : J’ai eu vent comme comme les paquets SIP on du mal avec le NAT ?
Avez vous un avis sur cette question ?

S’il te plaît, ne masque pas les adresses privées, ça n’apporte rien et ça ne facilite pas la lecture.

Pourtant tu as écrit plusieurs fois que eth1 était l’interface interne (pas internet), donc faisant face au serveur SIP. Peux-tu confirmer quelle interface est face à quel équipement avec quelles adresses ?

Les paquets SIP eux-mêmes ne posent pas de problème particulier. Mais le protocole SIP ne gère que la “signalisation”, pas les flux audio. Ce sont les paquets des flux audio liés qui peuvent avoir du mal à passer.

Merci

Excusez moi c’est bien patte interne et pas internet (faute de frappe).

172.30.10.110 n’est pas dans le sous-réseau défini par le masque configuré sur eth1 :

$ ipcalc -b 172.30.10.114/255.255.255.252 Address: 172.30.10.114 Netmask: 255.255.255.252 = 30 Wildcard: 0.0.0.3 => Network: 172.30.10.112/30 HostMin: 172.30.10.113 HostMax: 172.30.10.114 Broadcast: 172.30.10.115 Hosts/Net: 2
D’autre part, qu’appelles-tu la “gateway” ? Si c’est le routeur d’accès internet connecté à eth0, ce n’est pas normal qu’il ait l’adresse 172.30.10.113 : cette adresse est censée être joignable sur eth1.

Bonsoir

Exact mais j’ai ajouté la route en dure via la commande suivante :
ip route ad 172.30.10.110/32 via 172.30.10.113 dev eth1

Je ping donc bien la 172.30.10.110

Avez vous d’autres idées ou pensez vous que la nat ne posera pas de probleme avec SIP ?

Je ne comprends toujours pas. C’est l’adresse de quoi, 172.30.10.113 ?
Si, comme la logique l’impose, la passerelle Debian est entre le serveur VoIP qui a l’adresse 172.30.10.110 (connecté à eth1 qui a l’adresse 172.30.10.114) et le routeur d’accès internet (connecté à eth0, adresse inconnue), alors 172.30.10.113 ne peut pas être l’adresse du routeur internet. Sinon, il y a un gros problème et il faut que tu décrives tout en détail comment les éléments sont connectés et avec quelles adresses.

En tout cas, je répète : dans une configuration réseau saine, il n’y a pas besoin d’ajouter ce genre de routes.

BOnjour

La passerelle à une ip publique sur eth0
en eth1 elle a comme ip 172.30.10.114
L’ip 172.30.10.113 est la passerelle du routeur
l’ip 172.30.10.110 est le serveur voip

Pour atteindre le serveur voip en 172.30.10.110 j’ai ajouté la route suivante :
ip route ad 172.30.10.110/32 via 172.30.10.113 dev eth1

Mes postes telephoniques interogent l’ip publique de la passerelle qui devrait se charger de transmettre au serveur voip en 172.30.10.110.

Le probleme c’est que le serveur voip ping bien la passerelle en 172.30.10.114 mais n’arrive pas à la monter.

On m’a parlé de sip option ?

Manque t’il quelque chose sur le serveur passerelle qui aujourd’hui a juste une debian est le script suivant iptable
#!/bin/sh

IP_SERVEUR_VOIP=172.30.10.110 #172.30.10.113 # adresse du serveur VoIP

activation de la fonction routeur IPv4

sysctl -w net.ipv4.ip_forward=1

ou bien d�commenter la ligne correspondante dans /etc/sysctl.conf pour actition au d�marrage

chargement du module de NAT pour le protocole SIP si n�cessaire

modprobe nf_nat_sip

ou bien ajouter nf_nat_sip dans /etc/modules pour chargement au d�marrage

initialiation d’iptables

iptables -P FORWARD ACCEPT # politique par d�faut de la cha�ne
iptables -F FORWARD # vidage de la cha�ne
iptables -t nat -F PREROUTING # vidage de la cha�ne

redirections

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5060 -j DNAT --to $IP_SERVEUR_VOIP
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5060 -j DNAT --to $IP_SERVEUR_VOIP
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1719:1720 -j DNAT --to $IP_SERVEUR_VOIP
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 16384:16482 -j DNAT --to $IP_SERVEUR_VOIP

Merci pour votre aide

Qu’appelles-tu “la passerelle du routeur” ?

Que veux-tu dire exactement par “monter” ?
Comment ces trois éléments sont-ils connectés entre eux ?

Il sont connecter via un routeur juniper. Depuis l’ajout de la route la communication entre la passerelle en 1725.30.10.114 et le serveur voip en 172.30.10.110 se fait bien.

POur la passerelle du routeur j’entends 172.30.10.113

Par monter la passerelle j’entends dans l’intranet de gestion du centile (serveur voip) j’ai delclaré la passerelle 172.30.10.114 avec une communauté de numéro telephonique. Cette passerelle devrait apparaitre up dans l’intranet mais elle apparait down. En conscequent le centile n’arrive pas à monter la passerelle 172.30.10.114.