david hannequin a écrit :
[...]
Ces régles sont permisives mais permettent de à la machine virtuelle
d'accéder à internet et de communiquer avec la machine hote.
Bien.
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
Pas vraiment utile, ces modules (et les autres) auraient été chargés
automatiquement lors de la création des règles iptables qui en ont besoin.
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
;-)
Bonne initiative.
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 rajouterais "-i eth0", mais ce n'est pas essentiel.
Et à ce stade, le serveur de la machine virtuelle est-il accessible
depuis internet ?
# je compte remplacer les régles tro pemissives
Lesquelles ?
par celle ci mais pour l'instant ca marche po :-(
C'est-à-dire ?
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
Ça m'a l'air correct. Il faudrait autoriser l'ICMP aussi, et peut-être
le DNS (pour la résolution inverse d'adresses IP sources des requêtes)
mais c'est secondaire.
Tu as bien essayé d'accéder au serveur depuis internet et pas depuis la
machine hôte, car d'une part ça ne marchera pas sans créer une règle
DNAT dans la chaîne OUTPUT (et avoir un noyau qui va bien) et d'autre
part ça ne prouvera pas que l'accès depuis internet fonctionne.
--
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]