Salut,
L'option -o pour un masquerade, je ne l'ai jamais vu.
Oui tu peux mettre un dns cache sur ta passerelle, mais ce ne sera qu'un cache des dns de ton fai.
Le plus simple reste d'indiquer les dns de ton fai donc.
De plus ces deux lignes ne suffisent pas pour avoir un nat transparent.
Voilà ce que je te propose :
# On bloque tout par défaut.
for CHAIN in INPUT OUTPUT FORWARD ; do
iptables -P $CHAIN DROP
done
# l'interface loopback, elle sert à la machine elle-même pour communiquer avec elle-même
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# tes deux règles sans l'option -o qui sert pas.
echo 1 > /proc/sys/nat/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
# On autorise la machine elle-même à sortir n'importe où. On peut limiter ça pour une passerelle aux dns, aux site http et/ou ftp de mise à jour de la distrib par exemple.
iptables -A INPUT -i eth1 -s 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth1 -d 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Maintenant, on autorise le réseau derrière la passerelle à communiquer avec le reste du monde
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.1.0/24 -d 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
Il n'y a aucune restrictions dans ces règles, les options -d et -s sont à priori encore de trop mais c'est pour montrer ce que iptables regarde dans l'entête d'un paquet.
Dans un dialogue, il y a une question et une réponse, c'est pourquoi j'ai découpé l'interrogation et la réponse en deux règles iptables.
Pareil, l'état related, n'est pas utilisé pour tout les protocoles, par exemple, pour l'http se n'est pas necessaire.
Ces règles là forment la base pour un nat, à toi de voir si tu souhaites rester aussi permissif ou au contraire renforcer ces règles.
Bonne chance
Poste le Tuesday 5 August 2008 16:10:02