IPtable - sendmsg: Operation not permitted

Fermé
p_oum Messages postés 964 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 2 avril 2012 - 10 mars 2011 à 10:23
 s4dic - 28 mars 2017 à 13:57
Bonjour,

J'ai configure iptables sur debian mais lors d'un ping depuis ma debian j'obtiens

root@debian:/# ping www.google.fr
PING www-g-com-chn.l.google.com (66.249.89.104) 56(84) bytes of data.
64 bytes from nrt04s01-in-f104.1e100.net (66.249.89.104): icmp_req=1 ttl=51 time=109 ms
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- www-g-com-chn.l.google.com ping statistics ---
5 packets transmitted, 1 received, 80% packet loss, time 4024ms

La grande question est pourquoi le 1er paquet passe et pas les autres ? Si vous avez des proposition je suis preneur.

La conf de iptables :

#On active le forward
sysctl -w net.ipv4.ip_forward=1

#On charge le module pour l'etablissement de connection
modprobe nf_conntrack

#On vide les regles iptables
iptables -F OUTPUT
iptables -F INPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t nat -X
iptables -F LOGDROP
iptables -X LOGDROP
iptables -F LOGACCEPT
iptables -X LOGACCEPT

#Prepare iptables pour l'utilisation des log
iptables -N LOGDROP
iptables -A LOGDROP -j LOG --log-prefix '[IPTABLES LOG DROP] : ' --log-level warning
iptables -A LOGDROP -j DROP
iptables -N LOGACCEPT
iptables -A LOGACCEPT -j LOG --log-prefix '[IPTABLES LOG ACCEPT] : ' --log-level warning
iptables -A LOGACCEPT -j ACCEPT

#On drop tout par defaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Utilisation du stateful
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Tout d'abord on autorise le traffic sur la boucle local
iptables -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT


#on accept tout le trafic interne du lan
iptables -A OUTPUT -o eth1 -s 192.168.2.0/26 -d 192.168.2.0/24 -j ACCEPT
iptables -A INPUT -i eth1 -s 192.168.2.0/26 -d 192.168.2.0/24 -j ACCEPT

iptables -A OUTPUT -o eth2 -s 192.168.2.64/26 -d 192.168.2.0/24 -j ACCEPT
iptables -A INPUT -i eth2 -s 192.168.2.64/26 -d 192.168.2.0/24 -j ACCEPT

iptables -A OUTPUT -o eth3 -s 192.168.2.128/26 -d 192.168.2.0/24 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.2.128/26 -d 192.168.2.0/24 -j ACCEPT


#Icmp
iptables -A OUTPUT -p icmp -d 0/0 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p icmp -d 0/0 -m state --state NEW -j ACCEPT


#Site web
iptables -A FORWARD -p tcp -d 0/0 --dport 80 -m state --state NEW -j ACCEPT


#On autorise les connections ssh depuis l'exterieur pour le FW
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

# On autorise la resolution de noms
#FW
iptables -A OUTPUT -p tcp -d 0/0 --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp -d 0/0 --dport 53 -m state --state NEW -j ACCEPT

#LAN
iptables -A FORWARD -p tcp -d 0/0 --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp -d 0/0 --dport 53 -m state --state NEW -j ACCEPT

# On cache le LAN derriere l'adresse IP public du serveur
# Sinon les machines communiqueraient vers l'exterieur avec
# leur adresse privee

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#Nat vers le serveur web1
iptables -t nat -A PREROUTING -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:80

#Nat vers le serveur web2
iptables -t nat -A PREROUTING -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 8080 -j DNAT --to-destination 192.168.2.66:80

#On log ce qui a ete drop
iptables -A INPUT -j LOGDROP
iptables -A OUTPUT -j LOGDROP
iptables -A FORWARD -j LOGDROP

#On log ce qui a ete accept
iptables -A INPUT -j LOGACCEPT
iptables -A OUTPUT -j LOGACCEPT
iptables -A FORWARD -j LOGACCEPT

Merci

1 réponse

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
14 mars 2011 à 01:45
Bonjour,
Ça donne quoi en remplaçant
iptables -A OUTPUT -p icmp -d 0/0 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p icmp -d 0/0 -m state --state NEW -j ACCEPT
par :
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

Il me semble que --state NEW ne soit pas adapté au protocole icmp d'après ce que j'ai lu c'est pour accepter une connexion en tcp, en icmp y a pas de connexion on envoie un packet qui peut très bien n'avoir jamais de réponse ça sert à faire des diagnostiques pas à créer des connexions, enfin testez sans et dites ce que ça donne
2
merci ça fonctionne
0