2 votes

Rediriger tout le trafic de plusieurs interfaces vers une seule IP

Je voudrais rediriger tout le trafic (spécifiquement TCP & UDP) de plusieurs interfaces WAN (ppp0, ppp1, ppp2) vers une seule IP de eth0.
Pour ce qui est de l'interface vers l'IP, je peux utiliser PREROUTING et POSTROUTING et modifier l'IP de destination et de source en conséquence.
Mais dans ce cas (avec plusieurs interfaces), comment puis-je savoir quelle IP utiliser comme IP source dans POSTROUTING ?

Donc les IPs de ppp0-ppp3 changent, et eth0 reste "192.168.1.5".
Je voudrais faire suivre le trafic vers l'IP : "192.168.1.10".

Par exemple (pour TCP uniquement), je dirigerais les connexions entrantes vers eth0 en utilisant :

iptables -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.1.10:5000
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 5000 -j SNAT --to-source 192.168.1.5`

Mais avec plusieurs interfaces (IP), je ne sais pas comment définir la règle POSTROUTING pour que la source reste la même ?
Ma question est donc la suivante : suis-je censé utiliser les techniques d'iptables pour "sauvegarder" cette IP et l'utiliser ensuite comme source, ou existe-t-il un autre moyen de le faire ?
J'ai trouvé un lien qui ressemble à ce dont j'ai besoin, mais je n'arrive pas à trouver comment le mettre en œuvre : http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/multiple-ips.html .

En résumé, j'ai besoin d'une "DMZ" de plusieurs interfaces vers une seule IP.

0 votes

Qui sera l'initiateur du trafic ? Les hôtes derrière ppp0-3 ou les hôtes en dehors de eth0, ou les deux ?

0 votes

Hôtes derrière des interfaces ppp

1voto

Jakov Sosic Points 5097

Le lien en bas de votre question s'adresse aux personnes qui ont plusieurs IP de sortie. Puisque vous essayez de pousser des paquets à travers eth0 (192.168.1.5) - vous n'avez pas d'alias IP et vous n'avez pas plusieurs IP de sortie mais une seule IP.

Donc, disons que ppp0 a une plage d'ip : 10.100.100.0/24, le paquet initial se connectant à votre hôte ressemblera à quelque chose comme :

 | SRC IP        | DST IP       |
 | 10.100.100.10 | 10.100.100.1 |

Votre première règle est correcte :

-t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.1.10:5000

Ainsi, lorsqu'une machine derrière ppp0-ppp3 essaie de contacter votre hôte (192.168.1.5) sur le port 5000, les paquets seront redirigés vers 192.168.1.10. Le paquet ressemblera à ceci :

 | SRC IP        | DST IP       |
 | 10.100.100.10 | 192.168.1.10 |

Maintenant, vous roulez les paquets à travers votre hôte, donc vous devez activer la redirection IP :

sysctl -w net.ipv4.ip_forward=1

Mais, lorsque la destination (192.168.1.10) reçoit un paquet, elle voit la source 10.100.100.10 et renvoie le paquet à sa propre passerelle par défaut. Ce que vous pouvez faire est de configurer des routes statiques sur 192.168.1.10 qui indiqueront à cet hôte que les paquets provenant de 10.100.100.0/24 sont acheminés via 192.168.1.5, quelque chose comme :

ip route add 10.100.100.0/24 via 192.168.1.5

De cette façon, vous n'auriez pas besoin d'ajouter des règles POSTROUTING, car la destination (192.168.1.10) saurait automatiquement où renvoyer les paquets.

Mais, si cette solution n'est pas viable pour une raison quelconque (ou si vous ne l'aimez pas personnellement), la prochaine chose que je suggérerais est d'utiliser MASQUERADE sur eth0 :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

La solution DNAT fonctionnera probablement aussi. Assurez-vous simplement que votre chaîne FORWARD est réglée sur ACCEPT et ne filtre pas les paquets lors de leur passage sur votre hôte.

0 votes

En essayant de m'assurer que j'ai bien compris, la connexion d'initiative commune sera celle d'un client dans le réseau ppp0 (par exemple 10.100.100.10) se connectant à l'IP ppp0 de mon serveur (par exemple 10.100.100.1). ainsi le paquet ressemblera à : "SRC IP - 10.100.100.10, DSP IP - 10.100.100.1". La même chose se produira sur deux autres interfaces ppp sur d'autres réseaux.

0 votes

Ah je ne le savais pas, bien que cela ne change pas grand chose. Où observez-vous des problèmes ? Le trafic de retour n'atteint pas les machines derrière ppp0-3 ?

0 votes

Eh bien, à un moment donné, je dois changer les adresses IP source et destination pour qu'elles correspondent à la même adresse IP de l'hôte et de l'interface ppp (n'est-ce pas ?), ou je peux simplement router tous les réseaux pour qu'ils passent par 192.168.1.5, ce qui pourrait simplifier le routage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X