Bonsoir,

Contexte
J'ai deux machines en réseau :
  • "Machine" (avec IP_02) qui est sur un réseau local : machine de travail
  • "Gateway" (abec IP_10) qui est sur le même réseau local : c'est ma passerelle/parefeu pour sortir sur internet.


IP_02 utilise IP_10 comme passserelle dans son paramétrage (c'est un windows).
IP_10 utilise iptables pour filtrer les paquets. Elle a une interface eth0 pour le réseau locale (avec IP_10) et eth1 pour sortir sur le net (avec IP_WEB).

Demande
Je voudrais envoyer un mail à partir de "Machine" (IP_02), en passant par IP_10 (normal) et en n'autorisant que le port nécessaire, à savoir le 587 (smtp orange).

J'ai donc mis les règles suivantes :

1) Règles pour autoriser les trames entre mes 2 interfaces de ma passerelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 0.0.0.0/0      -d IP_02       -p tcp --sport 587      -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -s IP_02 -d 0.0.0.0/0            -p tcp --dport 587      -j ACCEPT
2) Règles pour nater les adresses sources et destinatrices
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
iptables -t nat -A PREROUTING -i eth1   -s 0.0.0.0/0 -d IP_WEB -p tcp --dport 587      -j DNAT --to-destination IP_02:587
iptables -t nat -A POSTROUTING -o eth0  -s 0.0.0.0/0 -d IP_02 -p tcp --dport 587       -j SNAT --to-source IP_10
Pour une raison que j'ignore, ça bloque. Et j'ai un peu de mal à identifier le problème, mais je crois que c'est le forward qui me gêne...

A noter que les règles suivantes fonctionnent (mais elles routent tous les ports et ça, je veux pas):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 0.0.0.0/0      -d IP_02       -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -s IP_02 -d 0.0.0.0/0           -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s IP_02 -j MASQUERADE

Une idée du pourquoi ?

Merci bien !