# 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
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
Je vois as mon erreur, est ce que vous avez une idée ?
Cordialement
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Hambourg
Salut,
david hannequin a écrit :
Je viens de créer une machine virtuel avec qemu mais je veux pouvoir y accéder depuis le web.
Plutôt depuis internet, non ? "Acéder depuis le web", ça ne veut rien dire. On accède *au* web, pas depuis le web.
Pour cela j'ai ajouter les régles iptables suivantes :
Pour que je sois sûr de comprendre : ces règles sont créées sur la machine hôte, pas sur la machine virtuelle ? Et tun0 est l'interface réseau de la machine hôte qui permet de communiquer avec la machine virtuelle ?
Inutile, les règles précédentes "INPUT -i tun0" et "OUTPUT -o tun0" ont déjà tout accepté. Et pour le trafic retour, on n'utilise pas (uniquement) le port source mais (aussi) le suivi de connexion. Sinon c'est facile de contourner le pare-feu, il suffit d'attaquer à partir du port source accepté. Au fait, à quoi sont censées servir ces deux règles ? Si je lis bien, à permettre à la machine virtuelle d'accéder au serveur web de la machine hôte ?
# 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
A quoi correspond 172.20.0.2 ?
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
Inutile, les règles précédentes "FORWARD -i tun0" et "FORWARD -o tun0" ont déjà tout accepté.
Je vois as mon erreur, est ce que vous avez une idée ?
Commence par préciser la configuration réseau de la machine hôte et de la machine virtuelle (interfaces, adresses, routes). Ensuite explique ce que tu attends, ce qui marche et ce qui ne marche pas, le résultat précis des tests exacts (commandes, messages d'erreur, capture de trafic réseau...) que tu as effectués (ping, traceroute, tcptraceroute...) Le "forwarding" IP est-il activé sur la machine hôte (net.ipv4.ip_forward=1) ? Si oui, la machine virtuelle peut-elle accéder à internet ?
-- 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 with a subject of "unsubscribe". Trouble? Contact
Salut,
david hannequin a écrit :
Je viens de créer une machine virtuel avec qemu mais je veux pouvoir y
accéder depuis le web.
Plutôt depuis internet, non ? "Acéder depuis le web", ça ne veut rien
dire. On accède *au* web, pas depuis le web.
Pour cela j'ai ajouter les régles iptables suivantes :
Pour que je sois sûr de comprendre : ces règles sont créées sur la
machine hôte, pas sur la machine virtuelle ?
Et tun0 est l'interface réseau de la machine hôte qui permet de
communiquer avec la machine virtuelle ?
Inutile, les règles précédentes "INPUT -i tun0" et "OUTPUT -o tun0" ont
déjà tout accepté. Et pour le trafic retour, on n'utilise pas
(uniquement) le port source mais (aussi) le suivi de connexion. Sinon
c'est facile de contourner le pare-feu, il suffit d'attaquer à partir du
port source accepté.
Au fait, à quoi sont censées servir ces deux règles ? Si je lis bien, à
permettre à la machine virtuelle d'accéder au serveur web de la machine
hôte ?
# 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
A quoi correspond 172.20.0.2 ?
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
Inutile, les règles précédentes "FORWARD -i tun0" et "FORWARD -o tun0"
ont déjà tout accepté.
Je vois as mon erreur, est ce que vous avez une idée ?
Commence par préciser la configuration réseau de la machine hôte et de
la machine virtuelle (interfaces, adresses, routes). Ensuite explique ce
que tu attends, ce qui marche et ce qui ne marche pas, le résultat
précis des tests exacts (commandes, messages d'erreur, capture de trafic
réseau...) que tu as effectués (ping, traceroute, tcptraceroute...)
Le "forwarding" IP est-il activé sur la machine hôte
(net.ipv4.ip_forward=1) ?
Si oui, la machine virtuelle peut-elle accéder à internet ?
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Je viens de créer une machine virtuel avec qemu mais je veux pouvoir y accéder depuis le web.
Plutôt depuis internet, non ? "Acéder depuis le web", ça ne veut rien dire. On accède *au* web, pas depuis le web.
Pour cela j'ai ajouter les régles iptables suivantes :
Pour que je sois sûr de comprendre : ces règles sont créées sur la machine hôte, pas sur la machine virtuelle ? Et tun0 est l'interface réseau de la machine hôte qui permet de communiquer avec la machine virtuelle ?
Inutile, les règles précédentes "INPUT -i tun0" et "OUTPUT -o tun0" ont déjà tout accepté. Et pour le trafic retour, on n'utilise pas (uniquement) le port source mais (aussi) le suivi de connexion. Sinon c'est facile de contourner le pare-feu, il suffit d'attaquer à partir du port source accepté. Au fait, à quoi sont censées servir ces deux règles ? Si je lis bien, à permettre à la machine virtuelle d'accéder au serveur web de la machine hôte ?
# 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
A quoi correspond 172.20.0.2 ?
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
Inutile, les règles précédentes "FORWARD -i tun0" et "FORWARD -o tun0" ont déjà tout accepté.
Je vois as mon erreur, est ce que vous avez une idée ?
Commence par préciser la configuration réseau de la machine hôte et de la machine virtuelle (interfaces, adresses, routes). Ensuite explique ce que tu attends, ce qui marche et ce qui ne marche pas, le résultat précis des tests exacts (commandes, messages d'erreur, capture de trafic réseau...) que tu as effectués (ping, traceroute, tcptraceroute...) Le "forwarding" IP est-il activé sur la machine hôte (net.ipv4.ip_forward=1) ? Si oui, la machine virtuelle peut-elle accéder à internet ?
-- 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 with a subject of "unsubscribe". Trouble? Contact
Fnor
david hannequin wrote:
Bonjour,
Je viens de créer une machine virtuel avec qemu mais je veux pouvoir y accéder depuis le web. Pour cela j'ai ajouter les régles iptables suivantes :
# 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
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
Je vois as mon erreur, est ce que vous avez une idée ?
N'aurais-tu pas oublié d'activer le forward ? Mettre ip_forward=yes dans le fichier /etc/network/options et relancer la configuration du réseau : $ /etc/init.d/networking restart
Fnor
-- 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 with a subject of "unsubscribe". Trouble? Contact
david hannequin wrote:
Bonjour,
Je viens de créer une machine virtuel avec qemu mais je veux pouvoir y
accéder depuis le web.
Pour cela j'ai ajouter les régles iptables suivantes :
# 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
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
Je vois as mon erreur, est ce que vous avez une idée ?
N'aurais-tu pas oublié d'activer le forward ?
Mettre ip_forward=yes dans le fichier /etc/network/options et relancer
la configuration du réseau :
$ /etc/init.d/networking restart
Fnor
--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
# 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
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
Je vois as mon erreur, est ce que vous avez une idée ?
N'aurais-tu pas oublié d'activer le forward ? Mettre ip_forward=yes dans le fichier /etc/network/options et relancer la configuration du réseau : $ /etc/init.d/networking restart
Fnor
-- 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 with a subject of "unsubscribe". Trouble? Contact
david hannequin
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 with a subject of "unsubscribe". Trouble? Contact
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
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 with a subject of "unsubscribe". Trouble? Contact
Pascal Hambourg
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 with a subject of "unsubscribe". Trouble? Contact
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
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 with a subject of "unsubscribe". Trouble? Contact