OVH Cloud OVH Cloud

Apache et iptables

14 réponses
Avatar
Frédéric CONANGLE
Bonsoir les garçons, bonsoir les filles.......

Je suis en train de m'amuser avec Apache......

J'ai un firewall avec iptables qui semble parfait d'aprés les différents
"testeur du web" .
Malgré avoir ouvert le port 80 grace aux commandes suivantes dans mon
script /
#seurveur web
/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 80 -j
ACCEPT
/sbin/iptables -A INPUT -i ppp0 --protocol udp --source-port 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol udp --destination-port 80 -j
ACCEPT

Bah ! Je n'arrive pas à atteindre mon site web .

Sachant que dès que je "clear" mon iptables ,j'ai accés par mon ip dynamique
à mon site Apache .

Quelqu'un a t'il un filon à suivre.......



Merci d'avance .


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter 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

4 réponses

1 2
Avatar
Pascal
Salut,

Frédéric CONANGLE a écrit :

Et si tu nous donnais les règles complètes de ton firewall alors ? Parce
qu'avec ce que je t'avais donné, ça aurait dû marcher.



désolé le premier n'était pas bon....



1) Ton firewall est un gruyère. Exemple :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 80 -j ACCEPT



Cette règle autorise n'importe qui de l'extérieur à se connecter à
n'importe quel port TCP de ta machine à partir du port source 80.

Il vaudrait mieux utiliser le suivi de connexion comme tu le fait plus bas.

2) Le trafic local émis par la machine à destination d'elle-même passe
systématiquement par l'interface de loopback (lo), même quand l'adresse
destination utilisée est celle d'une autre interface. Donc pour
contacter ton serveur web en local, il faut autoriser le trafic HTTP en
entrée et en sortie sur lo. D'ailleurs, il n'y a pas de raison de
filtrer quoi que ce soit sur cette interface. Le plus simple est de
remplacer :

/sbin/iptables -t filter -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
/sbin/iptables -t filter -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT



par :

/sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT

3) Pour finir, un nettoyage s'impose. Ton script contient un paquet de
règles redondantes, comme par exemple :

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.23 -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.21 -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.22 -o ppp0 -j MASQUERADE



Les trois dernières règles ne servent à rien puisque la première est
plus générale.

Ou encore :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 443 -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 443 -j ACCEPT



et plus bas :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 443 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 443 -m state --state NEW,ESTABLISHED -j ACCEPT



Les deux dernières règles ne sont pas utilisées puisque les deux
premières sont plus permissives.

Il y aurait encore beaucoup à dire...


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Frédéric CONANGLE
wrote:

Salut,

Frédéric CONANGLE a écrit :

Et si tu nous donnais les règles complètes de ton firewall alors ? Parce
qu'avec ce que je t'avais donné, ça aurait dû marcher.



désolé le premier n'était pas bon....



1) Ton firewall est un gruyère. Exemple :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 80 -j ACCEPT



Cette règle autorise n'importe qui de l'extérieur à se connecter à
n'importe quel port TCP de ta machine à partir du port source 80.

Il vaudrait mieux utiliser le suivi de connexion comme tu le fait plus
bas.

2) Le trafic local émis par la machine à destination d'elle-même passe
systématiquement par l'interface de loopback (lo), même quand l'adresse
destination utilisée est celle d'une autre interface. Donc pour
contacter ton serveur web en local, il faut autoriser le trafic HTTP en
entrée et en sortie sur lo. D'ailleurs, il n'y a pas de raison de
filtrer quoi que ce soit sur cette interface. Le plus simple est de
remplacer :

/sbin/iptables -t filter -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j
ACCEPT
/sbin/iptables -t filter -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j
ACCEPT



par :

/sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT



Effectivement ,c'est bien cette ligne qui me bloquait .......Merci pour
l'info .



3) Pour finir, un nettoyage s'impose. Ton script contient un paquet de
règles redondantes, comme par exemple :

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.23 -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.21 -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 10.82.1.22 -o ppp0 -j MASQUERADE



Les trois dernières règles ne servent à rien puisque la première est
plus générale.

Ou encore :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 443 -j
ACCEPT /sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port
443 -j ACCEPT



et plus bas :

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 443 -m state
--state ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -o ppp0 --protocol
tcp --destination-port 443 -m state --state NEW,ESTABLISHED -j ACCEPT



Les deux dernières règles ne sont pas utilisées puisque les deux
premières sont plus permissives.

Il y aurait encore beaucoup à dire...



J'en suis persuadé........;)
J'apprends sur le tas .......





Pour finir , mon port 80 est ouvert ,mais je suis obligé si quelqu'un veux
voir mon site.........c'est une question.......
Un grand MERCI à tous pour votre aide .......Problème résolu .
--
Toute la philosophie moderne tourne autour de la difficulté de décrire
le monde en termes de sujet et de prédicat, de substances et de
qualités, de particuliers et d'universels.
-+- Alfred North Whitehead -+-



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Frédéric CONANGLE a écrit :
Simon van der Linden wrote:


Frédéric CONANGLE wrote:


J'ai un firewall avec iptables qui semble parfait d'aprés les différents
"testeur du web" .
Malgré avoir ouvert le port 80 grace aux commandes suivantes dans mon
script /
#seurveur web
/sbin/iptables -A INPUT -i ppp0 --protocol tcp --source-port 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 80 -j
ACCEPT
/sbin/iptables -A INPUT -i ppp0 --protocol udp --source-port 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol udp --destination-port 80 -j
ACCEPT

Bah ! Je n'arrive pas à atteindre mon site web .

Sachant que dès que je "clear" mon iptables ,j'ai accés par mon ip
dynamique à mon site Apache .






1) Simple : tu te trompes de sens. Il faut accepter le traffic avec le
port 80 en DESTINATION et pas en source !

/sbin/iptables -A INPUT -i ppp0 --protocol tcp --destination-port 80 -j
ACCEPT
/sbin/iptables -A OUTPUT -o ppp0 --protocol tcp --source-port 80 -j ACCEPT

2) Pas besoin de l'UDP donc tu peux enlever les deux autres règles.

--
Simon van der Linden aka ifmy







J'ai suivis ton conseil pas mieux....Merci




Salut,
explique moi un peu, ton architecture réseau...
Tu as un ordi sous Linux qui tourne apparemment avec iptables.

Ton serveur web se trouve ou? Sur cette machine ou sur une autre machine
du réseau?
Qu'est ce que tu veux pouvoir faire ou ne pas pouvoir faire? (cad tu
veux juste autoriser le web, ou bien avoir une config secure, tout en
faisant ce que tu veux?)

A+


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
G(P)L
Frédéric CONANGLE a écrit :
G(P)L wrote:


Frédéric CONANGLE a écrit :

Simon van der Linden wrote:



Frédéric CONANGLE wrote:



Bah je n'en suis pas à l'état des connexions ,je n'arrive même pas à me

connecter derrière le firewall ........;)
Si je dévalide le firewall j'y arrive donc je suppose qu'iptables est
trop "violent" .





Et si tu nous donnais les règles complètes de ton firewall alors ? Parce
qu'avec ce que je t'avais donné, ça aurait dû marcher.

--
Simon van der Linden aka ifmy





le voilà.........merci pour votre aide



J'ai vu que tu faisais de la translation d'adresse lorsqu'une requête
arrivait sur le port 80 du firewall. J'en déduis que le serveur web
n'est pas sur le firewall. Si je vois juste, il faudrait aussi ouvrir
les flux en FORWARD et pas seulement en INPUT et OUTPUT.

Pour voir où ca coince exactement, tu actives ton firewall et ensuite tu
tapes les commandes suivantes :
iptables -P FORWARD ACCEPT
est-ce que ca marche ? Si non :
iptables -P FORWARD DROP
iptables -P INPUT ACCEPT
est-ce que ca marche ? Si non :
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
ect ...

Guillaume Lehmann



Si j'ACCEPT l'INPUT et L'OUTPUT ,çà marche mais mon firwall est un gruyère .



Ce que je donnais c'était pour essayer de diagnostiquer, non une
configuration de firewall modèle !

Bon we
GL
1 2