[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: règle Iptables



Le 29/03/2012 21:00, Tahar BEN ACHOUR a écrit :
[...]
j'ai fait les règles suivantes

iptables -I OUTPUT -p tcp -d my_dns_IP --dport 53 -j ACCEPT
iptables -I OUTPUT -p udp -d my_dns_IP --dport 53 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 53 -j DROP
iptables -I OUTPUT -p udp --dport 53 -j DROP
[...]
Or j'ai certainement fait une erreur puisque je n'arrive plus à faire un
dig @my_dns_IP j'ai un timeout
Quelqu'un peut-il m'expliquer mon erreur ?

Ouaip, enfin je crois.

L'ordre des règles a une importance. Tu peux insérer en début de chaîne avec -I, ou ajouter en fin de chaîne avec -A.

En utilisant -I comme tu le fais, les dernières règles ajoutées deviennent les premières à être appliquées, comme te le montre la sortie d'iptables -L:

> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
> DROP udp -- anywhere anywhere udp dpt:domain
> DROP tcp -- anywhere anywhere tcp dpt:domain
> ACCEPT udp -- anywhere my_dns_IP udp dpt:domain
> ACCEPT tcp -- anywhere my_dns_IP tcp dpt:domain

Quand tu envoies un paquet à ton serveur DNS, il est droppé par une des deux premières règles. Les règles suivantes ne sont même pas examinées. Les règles les plus spécifiques doivent donc précéder les règles plus générales.

Ca devrait mieux se passer si:

* tu recommences, mais en exécutant les commandes DROP avant les commandes ACCEPT

ou

* tu exécutes les commandes dans le même ordre, mais avec un -A au lieu d'un -I (sous réserve qu'il n'y ait pas déjà plus haut dans la chaîne des règles qui interfèrent)

Dans les deux cas, ça devrait donner quelque chose dans ce genre:

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere my_dns_IP udp dpt:domain
ACCEPT tcp -- anywhere my_dns_IP tcp dpt:domain
DROP udp -- anywhere anywhere udp dpt:domain
DROP tcp -- anywhere anywhere tcp dpt:domain

P.-A.


Reply to: