mapper un port avec iptables - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 05-10-2005 à 17:57:25
mangle n'est pas une règle c'est une table ![[:pingouino] [:pingouino]](https://forum-images.hardware.fr/images/perso/pingouino.gif) 
 
c'est dans la table nat qu'il faut taper 
 
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 9876 -j DNAT --to-destination 192.168.0.2 
 
Avec bien sur $WAN égal au nom de ton interface WAN ![[:pingouino] [:pingouino]](https://forum-images.hardware.fr/images/perso/pingouino.gif)
Marsh Posté le 05-10-2005 à 17:58:45
Et puis au passage lis ce lien, ca pourrait t'aider... 
http://christian.caleca.free.fr/netfilter/
Marsh Posté le 05-10-2005 à 19:17:56
Merci, ça fonctionne ! 
Mais j'ai du rajouter un commande :  
 
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 9876 -j ACCEPT
Marsh Posté le 24-08-2007 à 11:45:35
Dans le même style, j'ai un serveur web B sur mon réseau local (192.168.0.2). Je voudrais que quand on interroge mon serveur web A (192.168.0.1 et 212.68.xxx.xxx) à partir de son IP publique et sur le port 1050, on se retrouve sur le port 1050 du serveur web B. 
 
J'ai essayé ça : 
 
iptables -P FORWARD DROP  
iptables -A FORWARD -i $if_local -o $if_public -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
iptables -A FORWARD -i $if_public -o $if_local -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i $if_public -p tcp --dport 1050 -j ACCEPT 
iptables -A OUTPUT -o $if_public -p tcp --sport 1050 -j ACCEPT 
iptables -t nat -A PREROUTING -i $if_public -p tcp --dport 1050 -j DNAT --to-destination 192.168.0.2 
 
Mais ça marche pas... 
 
Mieux : on arriverait sur le port 80 du serveur web B : 212.68.xxx.xxx:1050 --> 192.168.0.2:80 
Encore mieux : on arriverait sur le serveur B même à partir du réseau local 192.168.0.1:1050 --> 192.168.0.2:1050 
Le top : les 2 ensemble  212.68.xxx.xxx:1050 --> 192.168.0.2:80 et 192.168.0.1:1050 --> 192.168.0.2:80
 212.68.xxx.xxx:1050 --> 192.168.0.2:80 et 192.168.0.1:1050 --> 192.168.0.2:80
Marsh Posté le 24-08-2007 à 11:50:07
faudrait déjà savoir sur quelle machine tu places ces règles iptables...
Marsh Posté le 24-08-2007 à 11:52:47
Ben sur la machine A puisqu'elle a une IP publique sur internet et une IP sur le réseau local...
Marsh Posté le 24-08-2007 à 11:54:40
| zezette a écrit : Ben sur la machine A puisqu'elle a une IP publique sur internet et une IP sur le réseau local... | 
 
 
donc il doit manquer un ACCEPT en FORWARD non ?
Marsh Posté le 24-08-2007 à 12:01:02
ouais j'ai pas tout collé mais y'a ça avant :  
 
iptables -P FORWARD DROP 
iptables -A FORWARD -i $if_local -o $if_public -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A FORWARD -i $if_public -o $if_local -m state --state ESTABLISHED,RELATED -j ACCEPT
Marsh Posté le 24-08-2007 à 12:04:55
chui con fallait ajouter new....  
 
 
iptables -A FORWARD -i $if_public -o $if_local -p tcp --dport 1050 -m state --state NEW -j ACCEPT 
 
Ca répond à la première partie de ma question. 
 
Et Pour le reste ? 
 
Mieux : on arriverait sur le port 80 du serveur web B : 212.68.xxx.xxx:1050 --> 192.168.0.2:80  
Encore mieux : on arriverait sur le serveur B même à partir du réseau local 192.168.0.1:1050 --> 192.168.0.2:1050  
Le top : les 2 ensemble  212.68.xxx.xxx:1050 --> 192.168.0.2:80 et 192.168.0.1:1050 --> 192.168.0.2:80
Marsh Posté le 24-08-2007 à 12:07:32
| zezette a écrit : chui con fallait ajouter new....  | 
 
bon bah tout va bien alors   
 
Marsh Posté le 05-10-2005 à 17:46:37
Bonsoir à tous,
J'aimerais mapper le port 9876 (tcp) de mon PC raccordé à Internet (qui offre entre autre internet à mon réseau local (NAT)), de manière à ce que si on fait un requête sur ce port de l'extérieur (internet), on se retrouve non pas sur ce PC raccordé à Internet, mais sur un PC du réseau local (192.168.0.2).
Je sais que c'est faisable avec iptables, mais je ne trouve pas la syntaxe correcte (je pense qu'il faut utiliser la règle mangle...)
Si qqn a une idée, elle est la bienvenue...
---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes