9 votes

Plage de port DNAT avec une plage de port interne différente avec Iptables

La manière standard de DNATing d'un port unique vers un port différent sur un réseau interne est quelque chose comme ça :

ip(6)tables -t nat -A PREROUTING -i wan0 -p tcp --dport 80 --to-destination 10.0.0.1:8080

Si vous avez besoin d'une plage de ports, vous pouvez utiliser -m multiport en même temps que --dports comme ça :

ip(6)tables -t nat -A PREROUTING -i wan0 -p tcp -m multiport --dports 1000:2000 --to-destination 10.0.0.1

Maintenant, je voudrais savoir si vous pouvez combiner les deux techniques pour mapper une plage de ports (par exemple 1000-2000) à une autre de la même taille (par exemple 12000-13000). Est-ce possible avec Iptables en utilisant un noyau pas plus récent que Linux 4.1 ?

14voto

Rick75230 Points 11

Pour répondre à votre question, oui .

J'ai exécuté un exemple de règle sur ma boîte Debian...

iptables -t nat -A PREROUTING -i xenbr0 -p tcp --dport 64000:65000 -j DNAT --to 172.16.10.10:61000-62000

... qui n'a produit aucune sortie, indiquant un succès. J'exécute le noyau 3.16.0-4-amd64 .

Vérification de la règle NAT via iptables -t nat -vnL PREROUTING Je vois que la règle est listée...

DNAT       tcp  --  xenbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:64000:65000 to:172.16.10.10:61000-62000

MadHatter a raison, vous n'avez pas besoin de -m multiport pour les plages de ports, seulement pour les listes de ports séparées par des virgules. L'adresse : est nécessaire afin de spécifier les plages de port pour le programme --dport mais une - est nécessaire afin de spécifier les plages de ports dans le fichier DNAT cible.

Je ne peux pas dire dans quelle mesure cette règle fonctionnera dans la pratique, mais en théorie, elle devrait permettre d'atteindre votre objectif.

Plus d'informations sur DNAT la cible peut être trouvée aquí .

J'espère que cela vous aidera.

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