mapper un port avec iptables

mapper un port avec iptables - réseaux et sécurité - Linux et OS Alternatifs

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
Reply

Marsh Posté le 05-10-2005 à 17:46:37   

Reply

Marsh Posté le 05-10-2005 à 17:57:25    

mangle n'est pas une règle c'est une table [:pingouino]
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]

Reply

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/


Message édité par l0ky le 05-10-2005 à 17:58:56
Reply

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


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 05-10-2005 à 19:21:31    

oui normal faut autoriser le flux a traverser le FW.

Reply

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


Message édité par zezette le 24-08-2007 à 12:02:43

---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 24-08-2007 à 11:50:07    

faudrait déjà savoir sur quelle machine tu places ces règles iptables...


---------------
-_- http://www.scienceshopping.com -_-
Reply

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...


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

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 ?


---------------
-_- http://www.scienceshopping.com -_-
Reply

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


Message édité par zezette le 24-08-2007 à 12:01:57

---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 24-08-2007 à 12:01:02   

Reply

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

Message cité 1 fois
Message édité par zezette le 24-08-2007 à 12:29:52

---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 24-08-2007 à 12:07:32    

zezette a écrit :

chui con fallait ajouter new.... :)


bon bah tout va bien alors  :)


---------------
-_- http://www.scienceshopping.com -_-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed