Redirection iptables qui conserve l'IP source

Bonjour à tous,

iptables me casse la tête :017 , peut-être que qqn a la solution à mon pb super simple :smiley: :

Je dois pouvoir joindre depuis le site A => mon serveur MySQL sur le site B, en passant par internet. Le site B est protégé par mon firewall debian (accès root / installation iptables OK). C’est important que mon serveur MySQL voie la tentative de connexion depuis l’IP fixe du site A (sinon, accès refusé)

La commande suivante fait le boulot … mais mon serveur MySQL a l’impression que la connexion provient du firewall .

iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-dest $SERVEUR:3306

Le paquet est bien routé vers le serveur, mais l’adresse du site A est masquée par l’adresse LAN du firewall sur le site B.

Je ne sais pas si c’est important (je ne crois pas mais bon …) , le firewall du site B fait du MASQUERADING.

Je vois aussi les commentaires sur le VPN, mais ma solution ne doit pas passer par VPN. :naughty:

Merci !!!

Nav :114

iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-dest $SERVEUR:3306 fait ce que tu veux. Par contre le masquerading est par définition la substition de l’adresse source par l’adresse de la passerelle.

La question pour savoir si c’est faisable est

Est ce que le serveur voit ta machine A? L’adresse A est sans doute une adresse locale non routable sur Internet, dans ce cas, mis à part le VPN je ne vois pas d’issue.

Il faut dire au firewall du site B de ne pas faire de masquerading pour les connexions sortant par l’interface LAN (sauf éventuellement pour celles qui proviennent du LAN, afin d’éviter le routage triangulaire).

La configuration est celle là si j’ai bien compris.

Si le pbm est que le serveur MySQL voudrait voir l’IP LAN du Site A, ce sera dur (je pensais que ton pbm était ça)…

Si le pbm est que le serveur MySQL voudrait voir l’IP publique de passerelle/parefeu A, alors Pascal a raison ([edit: C’est vrai qu’à la relecture, ça semble être ça]) mais c’est bizarre de faire du masquerading dans ce sens. Ce serait transformer la règle

en

Salut,
Merci pour les réponses, vous m’avez sacrément mis sur la piste !! :smiley:

Ma ligne MASQURADING sur le site B disait:

iptables -t nat -A POSTROUTING -j MASQUERADE

je viens de comprendre que ça masquait DANS LES 2 SENS !!

Si je remplace ma ligne par :

iptables -t nat -A POSTROUTING -s $LAN -j MASQUERADE

seules les adresses du LAN sont masquées!

[size=150]ça marche Nickel[/size]

Super les gars, merci!!

Nav

Remercie Pascal, il avait bien compris ton pbm en lisant en détail ton souci, comme d’habitude j’ai lu trop vite…

(Cela dit tes règles iptables ont l’air assez imprécises)