Problème de nat 1 pour 1

Hello

Je suis en train de configurer un firewall et j’ai un petit problème au niveau de mes iptables, je m’explique :
j’ai un équipement réseau (netappliance) sur lequel j’ai une distrib debian 7 qui fait office de firewall/switch avec 4 ports réseau qui sont connecté au 3 réseau qui suivent
un réseau Staff en 192.168.4.0/24 (connecté à eth1)
un réseau Users en 192.168.40.0/24 (connecté à eth0)
un serveur qui doit être vu avec l’adresse 192.168.4.50 mais qui a en physique la 10.0.0.2/30 (connecté à eth2)

Quand j’essaie de joindre mon serveur à partir du réseau Users, mon traceroute s’arrête à ma passerelle en 192.168.40.254 (port du netappliance).

root@Users#traceroute 192.168.4.50
1 192.168.40.254 (192.168.40.254) 0.529ms 0.265ms 0.214ms
2 192.168.40.254 (192.168.40.254) 2999.2ms !H 2999.3ms !H 2999.6ms !H

Mes règles iptables pour la partie nattage
/sbin/iptables -t nat -A PREROUTING -i eth0 -d 192.168.4.50 -j DNAT --to 10.0.0.2
/sbin/iptables -t nat -A POSTROUTING -i eth0 -s 10.0.0.2 -j SNAT --to 192.168.4.50
/sbin/iptables -A FORWARD -i eth0 -o eth3 -j ACCEPT
/sbin/iptables -A FORWARD -i eth3 -o eth0 -j ACCEPT

J’aimerais savoir si ce que j’essaie de faire est possible ou si je suis complètement parti en live.

Merci

J’ai réussit à trouver entre temps, pour ceux que ça intéresse, il faut juste supprimer l’interface sur laquelle vous voulez effectuer le nat

Pas d’accord. Si eth0 est bien l’interface connectée au réseau Users, alors on doit ajouter “-i eth0” à la règle DNAT pour qu’elle ne soit active que sur cette interface. Sans cela, elle est active sur toutes les interfaces.

Par ailleurs, la règle SNAT est erronée : étant dans la chaîne POSTROUTING, on ne peut spécifier que l’interface de sortie avec -o et pas l’interface d’entrée avec -i. De plus, cette règle n’est pas nécessaire pour les connexions à destination du serveur ; elle ne concerne que les éventuelles connexions émises par le serveur.

Quant aux règles dans FORWARD, elles autorisent tout le trafic routé entre eth0 (réseau Users) et eth3 (?) alors que tu as écrit plus haut que le serveur est connecté à eth2. Ce n’est pas cohérent.