1 votes

DNAT de manière générique ?

Comment configurer iptables pour qu'il envoie génériquement des paquets d'un certain port, par exemple le port tcp 80, aux machines appropriées (qui ne sont pas toutes dans le même sous-réseau) ?

Par exemple :
iptables -t nat -A PREROUTING -s 0.0.0.0//0 -p tcp -d $NATIP -j DNAT --to-destination $machineIP iptables -t nat -A POSTROUTING -s $machineIP -p tcp -d 0.0.0.0//0 -j SNAT --to-source $NATIP

Ce qui précède permet d'envoyer correctement des paquets vers et depuis une seule machine, mais comment faire pour n machines. Je ne pense pas qu'une destination générique telle que 192.168.1.0/25 puisse fonctionner.

Marquez vous d'une manière ou d'une autre les paquets afin de pouvoir les envoyer à la bonne adresse IP lorsqu'ils reviennent ?
Cela se fait-il avec une autre commande ?

0voto

fboaventura Points 1127

Quelques considérations d'abord. Si vous avez 0.0.0.0/0 comme source ou destination, il n'est pas nécessaire de le spécifier dans votre règle.

Maintenant, pour ce qui est de votre question, si vous en avez une NATIP pour chaque machine, il s'agit simplement de créer une paire de règles pour chaque machine. Si vous voulez utiliser les mêmes NATIP vers plusieurs machines, vous avez besoin de quelque chose pour différencier, si ce n'est pas le port, alors l'IP source. Sinon, iptables, en soi, ne peut pas choisir où envoyer le paquet. (je reviendrai sur cette question)

Pour créer la sortie NAT, vous pouvez créer une règle pour chaque machine, ou créer une table et y définir toutes les IP et les sous-réseaux que vous souhaitez traduire.

iptables -t nat -N addrTranslate
iptables -t nat -A OUTPUT -s x.x.x.x -j addrTranslate
iptables -t nat -A OUTPUT -s y.y.y.y/24 -j addrTranslate
iptables -t nat -A addrTranslate -j SNAT --to z.z.z.z

Une alternative pour le NAT de plusieurs machines avec une seule adresse IP est de mettre en place un proxy avec Apache.

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