Règles iptables : simples, mais ne fonctionnent pas.
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:
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:
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:
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 !