Salut,
J'apporte quelques précisions à mon probléme. J'ai une machine relier à
internet sur la carte eth0. Sur cette machine je fais fonctionner un
machine virtuelle qemu avec le service apache2.
Pour que cela fonctionne correctement j'ai créer les régles :
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 172.20.0.0/24 -i tun0 -o eth0 -p tcp -j ACCEPT
tun0 est l'interface réseau de la machine virtuelle
172.20.0.0/24 est le réseau de la machine virtuelle
l'adresse de la machine virtuelle est 172.20.0.2
Ces régles sont permisives mais permettent de à la machine virtuelle
d'accéder à internet et de communiquer avec la machine hote.
Maintenant, je souhaite pouvoir accéder au serveur apache depuis
internet avec l'adresse ip publique de la machine hote.
Pour cela j'ai ajouté à mon script :
modprobe iptable_nat
modprobe iptable_filter
echo 1 > /proc/sys/net/ipv4/ip_forward # pour autoriser le forwarding
# les 3 lignes pour accepter la tranlation
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# les 6 lignes pour la machine virtuelle, j'affinerais les régles pour
les rendre moin permissives une fois que ca marchera comme je veux
;-)
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 172.20.0.0/24 -i tun0 -o eth0 -p tcp -j ACCEPT
# tun0 est l'interface réseau de la machine virtuelle
# 172.20.0.0/24 est le réseau de la machine virtuelle
# l'adresse de la machine virtuelle est 172.20.0.2
# Web vers tun0 pour le serveur web
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination
172.20.0.2:80
# 172.20.0.2 est l'adresse d l'interface réseau de la machine virtuelle
où fonctione apache
# je compte remplacer les régles tro pemissives par celle ci mais pour
l'instant ca marche po :-(
iptables -A FORWARD -i eth0 -o tun0 -p tcp --destination-port 80 -m
state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -i tun0 -p tcp --source-port 80 -m state
--state ESTABLISHED -j ACCEPT
# régles pour le masquerading pour le serveur web
iptables -t nat -A POSTROUTING -s 172.20.0.0/24 -j MASQUERADE
j'ai cherché et testé plusieurs solution sans que ca marche et je vois
pas mon erreur.
merci d'avance
David Hannequin
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]