Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

nat sur un meme reseau

3 réponses
Avatar
JL Matton
salut,

j'aimerais faire du nat sur un serveur1 qui doit rediriger une partie du
traffic vers un autre serveur2.
Plus en détails,
le serveur1, qui est serveur de mail, ne peut recevoir sur son port
smtp des connexions que depuis le seveur server2 qui est smtp-relais.
Toutes les connexions venant d'autre part doivent etre redirigees vers
le smtp-relais.
voici une premiere tentattive qui ne fonctionne pas:

ip_forward = 1

iptables -t nat -N LOG_DNAT
iptables -t nat -A LOG_DNAT -j LOG --log-prefix 'IPT_DNAT'
iptables -t nat -A LOG_DNAT -j DNAT --to-destination server2
iptables -t nat -N LOG_SNAT
iptables -t nat -A LOG_SNAT -j LOG --log-prefix 'IPT_SNAT'
iptables -t nat -A LOG_SNAT -j SNAT --to-destination server1

iptables -t nat -A PREROUTING -s ! server2 -p tcp -dport 25 -j LOG_DNAT
iptables -t nat -A POSTROUTING -d smtp-relais -p tcp -dport 25 -j LOG_SNAT


si je me conecte depuis une machine quelconque j'ai bien dans syslog les
messages IPT_DNAT et IPT_SNAT mais la connexion n'abouti pas !
et une connexion à partir de server2 s'etabli bien sur server1.

Voila le probleme pose, quelqu'un aurais une idee ?

Pour ne pas simplifier il y a 2 machine qui ont la fonction de server
smtp-relais !!!

3 réponses

Avatar
Pascal Hambourg
Salut,


iptables -t nat -N LOG_DNAT
iptables -t nat -A LOG_DNAT -j LOG --log-prefix 'IPT_DNAT'
iptables -t nat -A LOG_DNAT -j DNAT --to-destination server2
iptables -t nat -N LOG_SNAT
iptables -t nat -A LOG_SNAT -j LOG --log-prefix 'IPT_SNAT'
iptables -t nat -A LOG_SNAT -j SNAT --to-destination server1


L'option de SNAT est "--to-source" ou "--to" en abrégé.

iptables -t nat -A PREROUTING -s ! server2 -p tcp -dport 25 -j LOG_DNAT
iptables -t nat -A POSTROUTING -d smtp-relais -p tcp -dport 25 -j LOG_SNAT


Par souci de cohérence il vaudrait mieux indiquer partout "server2" ou
"smtp-relais", mais pas tantôt et l'un tantôt l'autre.

Avatar
JL Matton
Salut,


iptables -t nat -N LOG_DNAT
iptables -t nat -A LOG_DNAT -j LOG --log-prefix 'IPT_DNAT'
iptables -t nat -A LOG_DNAT -j DNAT --to-destination server2
iptables -t nat -N LOG_SNAT
iptables -t nat -A LOG_SNAT -j LOG --log-prefix 'IPT_SNAT'
iptables -t nat -A LOG_SNAT -j SNAT --to-destination server1


L'option de SNAT est "--to-source" ou "--to" en abrégé.

iptables -t nat -A PREROUTING -s ! server2 -p tcp -dport 25 -j LOG_DNAT
iptables -t nat -A POSTROUTING -d smtp-relais -p tcp -dport 25 -j
LOG_SNAT


Par souci de cohérence il vaudrait mieux indiquer partout "server2" ou
"smtp-relais", mais pas tantôt et l'un tantôt l'autre.
Ok, à part ces commentaires ( j'ai retaper de mémoire une config )

ça marche à 1/2, je peux ateindre le serveur local depuis server2 -> pas
de NAT, ce que je veux,
mais d'une autre machine je vois par le log que ça passe par le DNAT
(PREROUTING ) ensuite par le SNAT ( POSTROUTING ) donc fowarding OK,
mais pas d'établissement de la connexion!
qu'est-ce qui ne va pas ?


Avatar
Pascal Hambourg

Ok, à part ces commentaires ( j'ai retaper de mémoire une config )


Dans ce cas il vaudrait mieux publier les règles exactes plutôt que de
mémoire. Et une description du réseau.