Debian: ping bloqué par iptables (firewall)

Résolu/Fermé
Neghost - 16 déc. 2010 à 14:56
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 17 déc. 2010 à 21:42
Bonjour à tous,

J'ai un problème sur ma bécane debian lenny. Le ping sur l'adresse de la machine ne marche plus depuis que j'ai mis en place les règles de firewall suivantes:

-------------------------------------------------------------------------------------------------------

#NAT portion of the ruleset. Used for Network Address Transalation.
#Usually not needed on a typical web server, but it's there if you need it.
*nat
:PREROUTING ACCEPT [127173:7033011]
:POSTROUTING ACCEPT [31583:2332178]
:OUTPUT ACCEPT [32021:2375633]
COMMIT

#The Mangle portion of the ruleset. Here is where unwanted packet types get dropped.
#This helps in making port scans against your server a bit more time consuming and difficult, but not impossible.
*mangle
:PREROUTING ACCEPT [444:43563]
:INPUT ACCEPT [444:43563]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [402:144198]
:POSTROUTING ACCEPT [402:144198]
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
COMMIT

#The FILTER section of the ruleset is where we initially drop all packets and then selectively open certain ports.
#We will also enable logging of all dropped requests.
*filter
:INPUT DROP [1:242]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:LOG_DROP - [0:0]
:LOG_ACCEPT - [0:0]

#First, we cover the INPUT rules, or the rules for incoming requests.
#Note how at the end we log any incoming packets that are not accepted.
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j LOG_ACCEPT
#mail ports
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
#end mail ports

-A INPUT -p tcp -m tcp --dport 43 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23300 -j ACCEPT

#test SMPP
-A INPUT -p tcp -m tcp --dport 9900 -j ACCEPT
# ouverture ports pour rÈseau local
-A INPUT -p udp -m udp -s 192.168.48.0/24 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
-A INPUT -i tap+ -j ACCEPT
-A FORWARD -i tap+ -j ACCEPT
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -j LOG_DROP

#nagios
-A INPUT -p icmp -j ACCEPT

#Note how at the end we log any outbound packets that are not accepted.
#-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-A OUTPUT -d 127.0.0.1 -j ACCEPT
#-A OUTPUT -j LOG_DROP
-A OUTPUT -j ACCEPT

#Here we have 2 sets of logging rules. One for dropped packets to log all dropped requests and one for accepted packets, should we wish to log any accepted requesets.
-A LOG_DROP -j DROP
-A LOG_ACCEPT -j ACCEPT

COMMIT

-------------------------------------------------------------------------------------------------------
Quand j'enlève toutes les règles,le ping marche très bien mais dès que je les remets ça se bloque de nouveau (pas de réponse au ping @monserveur).
J'ai bien la règle "-A INPUT -p icmp -j ACCEPT" qui devrait permettre le ping mais j'ai comme l'impression qu'il y'en a une autre qui l'annule.

Merci de votre aide

7 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
17 déc. 2010 à 09:54
As-tu essayé d'ajouter les règles que je t'ai donné ?

Si oui, essaye déjà de voir si la machine arrive à se pinguer elle même.

ping -c2 127.0.0.1
ping -c2 127.0.1.1
ping -c2 ip_de_la_machine


Ça permettrait de savoir si le problème vient bien de tes iptables.

Autre méthode, tu désactives tes iptables, tu fais ton ping avec la machine distante. Si le problème vient des iptables ça devrait passer. Puis tu rajoutes une règle dans tes iptables. Tu retestes le ping. Si ça passe pas tu as trouvé la règle coupable. Sinon tu ajoutes la règle suivante. Et ainsi de suite jusqu'à avoir établi toutes tes règles.

C'est un peu fastidieux mais au moins on sera fixé ;-)
1
Ouf...voilà la règle qui bloquait tout:

-A INPUT -j LOG_DROP de la ligne 27

Cette règle devait être placée à la fin. Du coup ce n'était simplement le ping mais toutes les règles INPUT qui venaient après.

Merci mamiemando, ta technique de mettre les règles une après une était bien fastidieuse mais elle a bien marchée.
Merci encore.
1
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
16 déc. 2010 à 20:36
Je t'avoue qu'iptables n'est pas ma spécialité mais ici :
http://doc.ubuntu-fr.org/iptables

... on te suggère :

# On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# On autorise les pings 
iptables -A INPUT -p icmp -j ACCEPT


Tu peux également tenter ufw si tu veux une surcouche à iptables plus intuitive.
http://doc.ubuntu-fr.org/ufw

Bonne chance
0
Merci pour ta réponse.
Je suis encore penché sur la doc et j'ai bien essayé ce que t'as proposé mais ça ne marche toujours... je continue à chercher mais toute aide serait la bienvenue :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
17 déc. 2010 à 09:21
Tu as essayé de simplement taper les deux commandes que je t'avais donné ? Est-ce que entre la machine qui ping et celle qui est pinguée, tu croises des noeuds dans le réseau qui seraient susceptibles de les bloquer (firewall...) ?

Sinon comme je te disais, ufw est plus simple. Tu peux également regarder les règles iptables mises en place à ce stade avec la commande suivante, en root :

iptables --list


Bonne chance
0
Il n'ya pas de noeud ni de firewall entre les deux machines. C'est deux machines sont voisines dans la même DMZ et "traceroute" vérifier bien cela. Les seuls firewalls présents correspondent aux règles iptables dans les machines en question, histoire de les protéger parcequ'elles sont dans une DMZ.

En fait, les règles que j'ai fournies plus haut correspondent au "iptables --list".
Merci de ta réponse mais je continue encore à creuser.

Toute aide serait la bienvenue !
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
17 déc. 2010 à 21:42
Eh bien c'est parfait, merci pour ces précisions et bonne continuation !
0