151 votes

Comment puis-je rediriger les ports avec iptables ?

Je veux que les connexions arrivant sur ppp0 sur le port 8001 soient routées vers 192.168.1.200 sur eth0 sur le port 8080.

J'ai ces deux règles

-A PREROUTING  -p tcp -m tcp --dport 8001 -j DNAT --to-destination 192.168.1.200:8080

-A FORWARD -m state -p tcp -d 192.168.1.200 --dport 8080 --state NEW,ESTABLISHED,RELATED -j ACCEPT

et ça ne fonctionne pas. Qu'est-ce qui me manque?

7 votes

0 votes

Je vais opter pour la balise n-p-r (bien que cela puisse être lié à la programmation, bien que mal formulé bien sûr.)

2 votes

Que diriez-vous de ceci : Je suis un programmeur essayant de mettre en place un environnement pour pouvoir déboguer mon application serveur dans Eclipse, appelée depuis l'intranet. Cela vous convient-il ?

4voto

J'avais la tâche de faire croire à MACHINE_A que le service fonctionne physiquement sur MACHINE_B, mais de rediriger de manière transparente toutes les requêtes vers MACHINE_C.

Le truc était d'utiliser MASQUERADE.

sysctl net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -p tcp -d MACHINE_B --dport 443 -j DNAT --to-destination MACHINE_C

iptables -t nat -A POSTROUTING -s MACHINE_A -o INTERFACE_NAME -j MASQUERADE

Veuillez noter que vous voudrez peut-être ajuster les commandes :

  1. Pour autoriser la redirection des paquets sur une interface spécifique uniquement. Par exemple :

    sysctl net.ipv4.conf.eth0.forwarding=1
  2. Pour autoriser non seulement MACHINE_A, mais aussi tous les autres à utiliser la redirection de ports, supprimez :

    -s MACHINE_A

2voto

user8456 Points 130

Essayer

echo "1" > /proc/sys/net/ipv4/conf/ppp0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding

Ces fichiers indiquent au noyau qu'il est autorisé à transférer des paquets entre les interfaces.

0voto

Andrew Points 1

Cette commande ne fonctionne pas pour moi :

-A POSTROUTING -t nat -p tcp -m tcp -s 192.168.1.200 --sport 8080 -j SNAT --to-source $yours_wan_ip

J'ai 2 interfaces LAN et FORWARD fonctionne quand j'écris :

iptables -t nat -A POSTROUTING -o $LAN_IF -p tcp -m tcp --dport $FW_PORT -j SNAT --to-source $LAN_IP
  • LAN_IF - interface LAN (par exemple eth1, br0...)
  • FW_PORD - port redirigé (sur l'hôte de destination)
  • LAN_IP - adresse IP sur l'interface LAN (sur le routeur)

PREROUTING et FORWARD sont également nécessaires, bien sûr :)

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