configuration iptables/nat plusieurs sous-réseaux

configuration iptables/nat plusieurs sous-réseaux - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 05-01-2014 à 01:44:58    

Bonjour à tous,
 
Je viens vers vous car je n'arrive pas à m'en sortir avec la configuration d'IPtables sur un poste debian dans un environnement réseau pas franchement conventionnel.
 
Actuellement ce poste sert de modem pour une connexion Internet. La connexion est redirigée de l'interface eth0, disposant d'une IP publique (appelons-la IP_pub), vers l'interface eth1, ouverte sur le LAN.
 
Le pb est que j'aurais besoin d'accéder depuis l'extérieur à un serveur FTP qui est sur le VLAN 200, sur une autre interface physique : eth2.  
 
Mon premier problème, déjà, est de réussir à transférer le port 21 (et uniquement celui-ci) de l'IP publique sur l'interface eth0 vers l'IP locale du serveur 10.200.5.92 sur le vlan 200, soit eth2.200.
 
J'ai essayé l'ajout de la règle suivante dans la table nat :
 

Code :
  1. -A PREROUTING -p tcp -i eth0 -d [IP_pub] --dport 21 -j DNAT --to-destination 10.200.5.92


 
Eh ben ça marche pas. Le test que j'utilise : tenter de me connecter en SSH via le port redirigé, en ayant bien évidemment changé la config du serveur SSH de la machine pour qu'il écoute sur le port redirigé.
 
Ci-dessous l'ensemble de la config qui est chargée au démarrage :
 

Code :
  1. *filter
  2. #
  3. # Interfaces de confiance
  4. #
  5. -A INPUT -i lo -j ACCEPT
  6. -A INPUT -i eth1 -j ACCEPT
  7. -A INPUT -i eth2.200 -j ACCEPT
  8. -A INPUT -p tcp --dport 21 -j ACCEPT
  9. -A FORWARD -i eth1 -j ACCEPT
  10. -A FORWARD -i eth2.200 -j ACCEPT
  11. #
  12. # ACCEPT en connexion directe
  13. #
  14. -A INPUT -p icmp -j ACCEPT
  15. -A INPUT -p udp -m udp -m state --state RELATED,ESTABLISHED -j ACCEPT
  16. -A INPUT -p tcp -m tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  17. #
  18. # NAT
  19. #
  20. -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  21. COMMIT
  22. *mangle
  23. :PREROUTING ACCEPT [0:0]
  24. :INPUT ACCEPT [0:0]
  25. :FORWARD ACCEPT [0:0]
  26. :OUTPUT ACCEPT [0:00]
  27. COMMIT
  28. *nat
  29. :PREROUTING ACCEPT [0:0]
  30. :POSTROUTING ACCEPT [0:0]
  31. :OUTPUT ACCEPT [0:0]
  32. #
  33. # NAT
  34. #
  35. -A PREROUTING -p tcp -i eth0 -d [IP_pub] --dport 21 -j DNAT --to-destination 10.200.5.92
  36. -A POSTROUTING -o eth0 -j MASQUERADE
  37. COMMIT


 
Quelqu'un a-t-il une idée de ce qui bloque ?
 
En vous remerciant,
minuscheri

Reply

Marsh Posté le 05-01-2014 à 01:44:58   

Reply

Marsh Posté le 05-01-2014 à 11:28:02    

te manque une règle forward pour autoriser la nouvelle connexion sur le port 21

Reply

Marsh Posté le 05-01-2014 à 12:25:18    

Bonjour,
 
Merci pour la réponse. J'ai ajouté la règle suivante :
 

Code :
  1. FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT


 
Mais cela ne fonctionne toujours pas ... Le paquet semble être droppé.
 
minuscheri

Reply

Marsh Posté le 05-01-2014 à 20:49:21    

Peux tu fournir :
iptables -L -v -n
iptables -t nat -L -v -n

 

lsmod |grep ftp


Message édité par o'gure le 05-01-2014 à 20:49:43

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-01-2014 à 00:05:14    

Re-,
 
Voici les résultats :
 
iptables -L -v -n :
 

Code :
  1. Chain INPUT (policy ACCEPT 5497 packets, 279K bytes)
  2. pkts bytes target     prot opt in     out     source               destination
  3.     0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
  4.     0     0 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0
  5.   232 56260 ACCEPT     all  --  eth2.200 *       0.0.0.0/0            0.0.0.0/0
  6.     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
  7.   359 24336 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
  8. 1673  185K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp state RELATED,ESTABLISHED
  9. 8561  893K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp state RELATED,ESTABLISHED
  10. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  11. pkts bytes target     prot opt in     out     source               destination
  12. 491K   39M ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0
  13.     0     0 ACCEPT     all  --  eth2.200 *       0.0.0.0/0            0.0.0.0/0
  14.     3   152 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
  15. 441K   87M ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  16. Chain OUTPUT (policy ACCEPT 16172 packets, 2156K bytes)
  17. pkts bytes target     prot opt in     out     source               destination


 
iptables -t nat -L -v -n :
 

Code :
  1. Chain PREROUTING (policy ACCEPT 415K packets, 28M bytes)
  2. pkts bytes target     prot opt in     out     source               destination
  3.     1    52 DNAT       tcp  --  eth0   *       0.0.0.0/0            [IP_pub]       tcp dpt:21 to:10.200.5.92
  4. Chain POSTROUTING (policy ACCEPT 1 packets, 52 bytes)
  5. pkts bytes target     prot opt in     out     source               destination
  6. 412K   28M MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0
  7. Chain OUTPUT (policy ACCEPT 1673 packets, 119K bytes)
  8. pkts bytes target     prot opt in     out     source               destination


 
lsmod | grep ftp :
 

Code :
  1. nf_nat_ftp              2047  0
  2. nf_nat                 13404  3 ipt_MASQUERADE,iptable_nat,nf_nat_ftp
  3. nf_conntrack_ftp        5553  1 nf_nat_ftp
  4. nf_conntrack           46583  7 ipt_MASQUERADE,iptable_nat,xt_state,nf_nat_ftp,nf_nat,nf_conntrack_ipv4,nf_conntrack_ftp


 
Merci encore pour le coup de main !
 
minuscheri

Reply

Marsh Posté le 06-01-2014 à 00:15:05    

comment tu fais tes tests ?

Reply

Marsh Posté le 06-01-2014 à 19:24:12    

Bonsoir,
 
Je fais mes tests en tentant de me connecter en SSH (le serveur étant configuré pour écouter sur le port concerné). J'ai aussi essayé avec d'autres ports, rien n'y fait ... J'arrive toujours au timeout.
 
minuscheri

Reply

Marsh Posté le 06-01-2014 à 22:53:24    

non mais tu essaies de te connecter depuis où ?

Reply

Marsh Posté le 08-01-2014 à 09:21:59    

Ah depuis l'extérieur.

Reply

Marsh Posté le 10-01-2014 à 09:06:49    

Bonjour,
 
Quelqu'un a-t-il une idée de ce qui pourrait clocher ?
 
minuscheri

Reply

Sujets relatifs:

Leave a Replay

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