iptables NAT deux serveurs web

iptables NAT deux serveurs web - Sécurité - Systèmes & Réseaux Pro

Marsh Posté le 01-06-2008 à 16:02:19    

Bonjour tt le monde !! Mon premier post :)
Merci de m'aider car ca commence a me prendre la tête !! :) et je ne suis pas un grand spécialiste d'iptables ...
 
voilà,
J'ai un routeur Linux avec trois segments réseaux : 10.0.0.0 relié a mon modem ADSL (eth2), 172.20.0.0 DMZ (eth1), et 192.168.0.0 mon LAN (eth0) et x.x.x.x = @ publique.
 
Sur ma DMZ j'ai un serveur Web sous Apache/linux 172.20.0.2 port 80 (ce serveur fait également serveur DNS sous bind)
Sur ce site web qui marche très bien  j'ai un lien qui redirige vers un deuxième serveur web (IIS) qui se situe sur le réseau 192.168.0.0 son adresse  est 192.168.0.4 et port 8080.
Quel règle iptables je doit mettre en place pour que la redirection se face correctement ?
 
Pour l'acces au serveur web de ma DMZ j'ai fait comme ceci : (x.x.x.x = @ publique)
 
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 80 -j DNAT --to-destination 172.20.0.2:80  
iptables -A FORWARD -i ppp0 -o eth1 -p tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o ppp0 -i eth1 -p tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.20.0.0/24 -j MASQUERADE  
 
Pour info j'ai egalement Un proxy linux squid 172.20.0.3 port 3128 et dansguardian qui filtre sur le port 8080 sur la DMZ
 
Du coup est ce que je peux faire ça (ci dessous) pour qu'on accède a mon deuxieme serveur web 192.168.0.4 ??
 
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.4:8080  
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --destination-port 8080 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o ppp0 -i eth0 -p tcp --source-port 8080 -m state --state ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE  
 
Sinon, comment je dois appeler le lien sur mon site web ( 192.168.0.4:8080, x.x.x.x:8080, ou hostname.domaine.com) ?
 
 
voilà j espère que j'ai été claire . merci de votre aide !
 

Reply

Marsh Posté le 01-06-2008 à 16:02:19   

Reply

Marsh Posté le 02-06-2008 à 01:40:32    

Ton proxy squid il est ou ? sur le FW ? sur le serveur apache/dns ?
 
Sinon, en lisant tes règles, je crains que tu aies fait un copy/paste de quelque chose qui fonctionne, sans trop chercher à comprendre.
Tout d'abord, fait toi un beau schéma qui récapitule les flux dont tu as besoin (IP/port), avec bien sur le FW au centre.
Ensuite, plonge toi dans le fonctionnement d'iptables .. ca parait un peu barbarre au premier abord, mais c'est assez logique une fois qu'on a compris le fonctionnement et l'ordre de traitement des règles.
Enfin, si tu veux ajouter un peu de fun dans ton infra, et faire une infra multi-tier, avec un serveur IIS dans une sorte de seconde DMZ, installe un reverse proxy (apache ou squid) sur ton serveur apache existant, qui redirigerait toutes les requêtes sur le port 8080 (de la machine apache) vers ton IIS. Comme ca, les clients depuis internet ne se connecteraient qu'à ta machine en DMZ, et c'est elle qui jouerait le role de relai vers l'IIS en interne. Mais bon, ca c'est uniquement pour le fun.

Reply

Marsh Posté le 03-06-2008 à 14:03:35    

Mon proxy se situe sur la DMZ adresse ip 172.20.0.3 port 8080.
 
Je te liste mes règles d'iptables après relecture : x.x.x.x = @ public
 
# REMISE à ZERO des règles de filtrage
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
 
# DEBUT des "politiques par défaut"
# connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP
# connexions forwardées acceptées par défaut
iptables -P FORWARD ACCEPT
# connexions sortantes acceptées par défaut
iptables -P OUTPUT ACCEPT
# FIN des "politiques par défaut"
 
# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT
 
# J'accepte le protocole ICMP (i.e. le "ping" )
iptables -A INPUT -p icmp -j ACCEPT
 
# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 
# permet l'acces en ssh, dns et http, smtp, et http2
 
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
 
iptables -A INPUT -i eth1 -p tcp --dport 8080 -j ACCEPT
 
 
#NAT
iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 25 -j DNAT --to-destination 172.20.0.2
iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 53 -j DNAT --to-destination 172.20.0.2
iptables -t nat -A PREROUTING -i eth1 -p udp -d x.x.x.x --dport 53 -j DNAT --to-destination 172.20.0.2
iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 80 -j DNAT --to-destination 172.20.0.2
 
iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 8080 -j DNAT --to-destination 192.168.0.4:8080
 
 
#NATTE en sortie les adresses DMZ + LAN
 
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE  
iptables -t nat -A POSTROUTING -o eth1 -s 172.20.0.2 -j SNAT --to-source x.x.x.x  
 
echo 1 > /proc/sys/net/ipv4/ip_forward


Message édité par guillomeMG le 03-06-2008 à 14:05:04
Reply

Sujets relatifs:

Leave a Replay

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