[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

SNAT depuis le firewall



Version courte:
---------------

Ma question est: pourquoi la regle

	iptables -t nat -A POSTROUTING -o $PPP_IFACE -j SNAT
		-p tcp --to-source $PPP_LOCAL:61000-65000

ne s'applique-t-elle pas aux paquets issus de la machine elle-meme?

Question subsidiaire: comment changer les regles pour masquerader en SNAT
les paquets locaux, puisque POSTROUTING ne marche pas?

Version longue:
---------------

J'ai un probleme avec ma configuration iptables sur mon routeur en 2.4.4.
J'utilise SNAT au lieu de MASQUERADE parce que mon IP est quasi-fixe.
Le masquerading fonctionne tres bien pour les machines du reseau, mais
pas pour le routeur lui-meme?

J'ai mis comme regle:

	iptables -t nat -A POSTROUTING -o $PPP_IFACE -j SNAT
		-p tcp --to-source $PPP_LOCAL:61000-65000

et j'interdis (et logge) les entrees depuis $PPP_IFACE (i.e. ppp0)
hors du range 61000-65000.

Depuis une autre machine masqueradee de mon reseau, je peux faire:

	telnet www.debian.org 80

et ca repond impeccable.  Par contre, sur la machine routeur, cela ne
marche pas.  En fait, j'ai dans les logs:

	IN=ppp0 OUT= MAC= SRC=198.186.203.20 DST=<ma machine>
	LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=35100 DF
	PROTO=TCP SPT=80 DPT=1099 WINDOW=30660 RES=0x00 ACK SYN URGP=0

ce qui montre que le routeur recoit un packet ACK/SYN depuis www.debian.org,
mais le port de destination est 1099.

J'ai verifie avec netstat, le telnet a binde la socket sur 1099 en local.

La documentation de iptables precise que POSTROUTING est utilisee lors
de l'emission sur l'interface de sortie, quelle que soit l'origine du paquet.

Ma question est: pourquoi la regle de POSTROUTING ne s'applique-t-elle
pas aux paquets issus de la machine elle-meme?

Question subsidiaire: comment changer les regles pour masquerader en SNAT
les paquets locaux, puisque POSTROUTING ne marche pas?

Raphael



Reply to: