Re: iptable et règles de redirection...
Salut,
C. Mourad Jaber a écrit dans duf:
J'ai une question concernant la règle PREROUTING d'iptables
J'ai fait une règle pour envoyer les paquets de ma passerelle vers mon
server web qui est derrière :
$IPTABLES -A INPUT -p tcp --dport 8080 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
Cette règle est inutile car la chaîne INPUT ne traite que les paquets
destinés à la passerelle *après* les éventuelles redirections dans la
chaîne PREROUTING. Les paquets qui traversent la passerelle sont traités
dans la chaîne FORWARD. Mais si ça passe, ça veut dire qu'il existe déjà
une autre règle ou une politique par défaut FORWARD qui accepte ces
paquets. D'autre part, le RELATED est aussi inutile car le protocole
HTTP ne produit pas de connexion TCP RELATED.
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to
10.1.1.11:80
ça marche, mais le serveur web à l'impression qu'il communique
uniquement avec ma passerelle et dans le log, j'ai toujours 10.1.1.1
(l'adresse interne de ma passerelle) comme client au lieu de l'adresse
réelle...
Une modification de l'adresse source ne peut être provoquée par une
règle DNAT dans la chaîne PREROUTING. Sauf règles de routage avancé ip
rules nat, elle ne peut provenir que d'une règle DNAT dans OUTPUT pour
les paquets émis par la passerelle elle-même ou d'une règle SNAT ou
MASQUERADE dans la chaîne POSTROUTING pour tous les paquets sortants. Je
parie sur la règle qui fait le masquerading du LAN vers internet qui ne
tient pas compte de l'interface de sortie ni de l'adresse source, du genre :
iptables -t nat -A POSTROUTING -j MASQUERADE
à remplacer par (si ppp0 est l'interface internet) :
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ou (si 10.0.0.0/8 est la plage d'adresses locales)
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
ou la combinaison des deux :
iptables -t nat -A POSTROUTING -o ppp0 -s 10.0.0.0/8 -j MASQUERADE
Reply to: