Raphael Manfredi wrote: > :iptables -t nat -A postrouting -o $PPP_IFACE -j MASQUERADE > > En fait, j'utilise SNAT parce que ma connection ADSL tombe toutes les > 24 heures, mais est retablie avant le timeout de TCP (2 minutes) avec > la meme adresse IP en general. Dans ce cas, les connections en cours > reprennent comme si de rien n'etait. > > Si j'utilisais MASQUERADE, les connections tomberaient avec l'interface ppp0. > > En fait, mon probleme est comment forcer le SNAT sur des connections > initiees par des processus locaux sur le firewall. Theoriquement, il > n'y a pas besoin de faire du masquerading puisque cette machine est > connectee, et qu'il y a une route default sur ppp0. > > Mais pour pouvoir filtrer les ports en entree, en me limitant au range > 61000-65000, il faut que je force les connections locale a faire "comme si" > elles venaient de 61000-65000, pour que les reponses distantes reviennent > sur cet intervalle de ports. > > D'apres la doc, POSTROUTING est appele avant l'emission sur l'interface. > Mais ce n'est pas le cas en pratique. > > Je suis coince, parce que sur la chaine OUTPUT, je ne peux pas faire > de SNAT... D'ou mes questions. > > Raphael
J'ai un peu plus r�fl�chi � la question. En fait, il y a dans le noyau 2.4 une gestion implicite des ports sources avec le SNAT, ce qui expliquerait que les machines du r�seau local fonctionnent. Par contre, par d�faut, le noyau essaie de modifier le paquet le moins possible. Pour la machine locale, l'adresse source du paquet ip est PPP_LOCAL. Pour le noyau, il n'y a donc pas n�cessit� de masquer cette adresse. Une id�e serait de forcer la modification de l'adresse source. Il faut utiliser l'outil iproute2 et taper : ip route change default dev ppp0 src ETH_LOCAL o� ETH_LOCAL est l'adresse ip associ� � la carte ethernet. Je pense que le SNAT devrait �tre appliqu�. A tester. Laurent Foucher

