Iptables icmp firewall

Résolu/Fermé
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 - 15 févr. 2008 à 10:31
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 - 21 févr. 2008 à 18:24
Bonjour,

Mon schéma réseau ACTUEL est le suivant:

pc1 + pc 2 + FW-----------------switch---------------livebox

LES PINGS

Le firewall est relié au switch par eth0.
pc1 ping pc2
pc2 ping pc1
FW ping pc1 et pc2
Mais pc1 et pc2 ne ping pas FW

(vous aurez remarquer que dans ce cas le firewall ne sert a rien , car je ne veux pour le moment pas couper la connection au net pour les pc1 et 2,car apres un test ou j'avais mis en place le FW entre le switch et la livebox,personne n'accedait au net)

Je voudrais pour le moment simplement faire en sorte que les PC 1 et 2 puissent "pinger" mon FW.

Quant au schéma FINAL réseau qui sera mis en place , le voici:

pc1 +pc2---------switch-------- eth1--FW--eth0-------------livebox


Je pense qu'il manque une rege iptabels ou 2 a mon script iptabls pour résoudre ce probleme,n'hésitez a me dire quelle regle ajouter svp.
Il me faudrait une regle qui fasse en sorte que les pc1 et 2 puisse atteindre eth1dans le cas du schéma réseau FINAL. MERCI de m'aider

Voici le script:

#!/bin/sh

# J'autorise les paquets a etre envoyés dans la chaine FORWARD

echo 1 >/proc/sys/net/ipv4/ip_forward

# On vide toutes les tables
iptables -F

# Début des politiques par défaut
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Fin des politiques par défaut

# from ESTABLISHED and RELATED connections ( accept les paquets lier à un etat )
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# J'autorise la boucle locale

#iptables -t filter -A INPUT -i lo -j ACCEPT (au dessus)
iptables -t filter -A OUTPUT -o lo -j ACCEPT


# Je considere que mon réseau local est sur

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT-o eth1 -j ACCEPT

# Translation d'adresses pour tout ce qui traverse la passerelle en sortant par eth0

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


# Toutes les connexions qui sortent du LAN vers le net sont aceptées

iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Seules les connexions deja établies ,ou en relation avec des connexions établies sont acceptés venant du net vers le LAN

iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


# Je laisse rentrer les réponses de ping depuis le parefeu vers l'internet, uniquement si ceux-ci proviennet de connexions deja établies ou dépendantes d'une connexion en cours.

iptables -A INPUT -p icmp -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


MERCI DE répondre.

15 réponses

manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 16:31
#!/bin/sh

# J'autorise les paquets a etre envoyés dans la chaine FORWARD

echo 1 >/proc/sys/net/ipv4/ip_forward

# On vide toutes les tables
iptables -F

# Début des politiques par défaut
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Fin des politiques par défaut

# from ESTABLISHED and RELATED connections ( accept les paquets lier à un etat )
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# J'autorise la boucle locale

#iptables -t filter -A INPUT -i lo -j ACCEPT (au dessus)
iptables -t filter -A OUTPUT -o lo -j ACCEPT


# Je considere que mon réseau local est sur

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT-o eth1 -j ACCEPT

# Translation d'adresses pour tout ce qui traverse la passerelle en sortant par eth0

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


# Toutes les connexions qui sortent du LAN vers le net sont aceptées

iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Seules les connexions deja établies ,ou en relation avec des connexions établies sont acceptés venant du net vers le LAN

iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


# Je laisse rentrer les réponses de ping depuis le parefeu vers l'internet, uniquement si ceux-ci proviennet de connexions deja établies ou dépendantes d'une connexion en cours.

#iptables -A INPUT -p icmp -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Autoriser ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT


VOILA comme vous pouvez le voir j'ai rajouter la regle # Autoriser ping et j'ai désactivé la regle juste au dessus #je laisse rentrer....

____________________________________________________________________________________

Dans ce schéma réseau :
pc1 +pc2 + fw--------swtich------------livebox

GRace a ces modifs les PC1 et 2 ping bien le firewall! Le firewall peut lui aussi pinger les 2 autre pc.

J'ai donc voulu faire un test avec ce schéma réseau:
pc1 + pc2 -------------switch--------------------eth1 ---FIREWALL----eth0---------------------LIVEBOX

_____________________________________________________________________________________

Je vous donne les configs IP avant de vous donenr les résultats du test:

pc1 + pc2 en dhcp dans la plage (192.168.1.9 a 1.200)
eth0 192.168.1.78 255.255.255.0 192.168.1.1
eth1 192.168.1.8 255.255.255.0 pass: 192.168.1.78
livebox 192.168.1.1

____________________________________________________________________________________

Voici les résultats:

pc1 et pc 2 ping eth1 (192.168.1.8)
pc1 et pc 2 ping eth0 (192.168.1.78)
FW ping pc1 et pc2

Probleme pc , pc2 et firewall n'ont plus acces au net,aucun ping vers 192.168.1.1 ne passe
Voici le message lorsque je tente un ping depusi le firewall vers 192.168.1.1 : "DESTINATION HOST UNREACHABLE"

________________________________________________________________________________________

Si cela peut vous aider voila ce que me donne la commande " arp -a " (avec le FW Linux)

? (192.168.1.1) at "incomplete" on eth1
?(192.168.1.10) at 00:16:xx:xx:xx [ether] on eth1



ET voici ce que me donne la commande " route " (toujours avec le FW)

D=destination , P = passerelle ; GM= GenMask ;I=indic ; M = metric ; ref = reference :; U = use ; IF= INTERFACE

D---------------------------P--------------------------GM-------------------------I---------------M--------------R---------------U----------------IF-
192.168.1.0 --------- ------ * ---- --------------- 255.255.255.0 -------- ---- U ------------- 0 -------------- 0 ------------- 0 ------------- eth1
192.168.1.0 --------- ----- * ----- ------------------ 255.255.255.0 ----- ----U--------------- 0 ------------- 0 ------------- 0------------- eth 0
default -----------------192.168.1.0 ---------------- 0.0.0.0---- --------------- UG -----------0 ------------- 0 ------------ 0 ------------- eth0




Voila tout ^^ MERCI DE M'AIDER
2
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 10:49
Bonjour,

dans un premier temps, dans la mesure où dans la politique par défaut OUTPUT est en ACCEPT, inutile de repréciser toutes les règles OUTPUT -j ACCEPT, je continue à étudier pour proposer une solution pour le reste.

à suivre...
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 10:54
sympa de répondre rapidement
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 11:10
Les règles de forward me semblent correctes, si ce n'est que je n'aurais peut-être pas précisé -m state --state NEW,ESTABLISHED,RELATED dans le sens réseau internet vers livebox

Pr contre le raisonnement ne me semble pas correct : tu veux autoriser une réponse au ping (que ce soit de l'intérieur ou de l'extérieur n'a pas d'importance), il s'agit donc d'une règle OUTPUT, puisque c'est ton FW qui répond.

dans ce cas pour le ping interne ça devrait déjà marcher car :

iptables -A INPUT -i eth1 -j ACCEPT (c'était déjà écrit, accepte tout ce qui entre depuis le réseau interne)
iptables -A OUTPUT-o eth1 -j ACCEPT (ça aussi, mais c'est inutile (politique par défaut ACCEPT) et ça me paraît dangereux, car quelque
soit ce qui vient de ton FW ça peut aller sur le réseau interne)

donc en remplaçant la deuxième règle :
iptables -A OUTPUT -p icmp -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT (n'autorisera que la réponse au ping vars le réseau interne)

# Je laisse rentrer les réponses de ping depuis le parefeu vers l'internet, uniquement si ceux-ci proviennet de connexions deja établies ou dépendantes d'une connexion en cours.
iptables -A INPUT -p icmp -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


celle ci me semble ok, mais à compléter car tu autorises un externe à te pinger s'il y a déjà une connexion, mais pas au FW à lui répondre .... euh en fait non, puisque OUTPUT par défaut est ACCEPT... je le passerais en DROP par défaut aussi

En espérant que ça te rendra service.
0

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

Posez votre question
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 11:35
j'ai pas bien compris ce que tu voulais me dire. Tu pourrais pas reprendre mon script iptables et rajouter tes modifs en faisant un copier coller?

J'ai remarqué autre chose,lorsque mon parefeu sous linux est activé , quands je vais dans poste de travail /réseau je ne vois pas les pc1 et pc 2
Alors que lorsque il est désactivé je vois bien les pc 1 et 2.
Que mon parefeu soit activé ou pas , j'arrive qd mm a pinger les pc 1 et 2 mm si je ne les voient pas dans poste de travail /réseau
Quant aux pc 1 et pc 2 ils ne voient pas mon firewall dans leur voisinnage réseau.

(mon pc FW est configurer en DMZ je sais pas si ca a une influence)

si tu peux continuer a m'aider MERCI
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 11:51
well,
mes modifs sont en gras.


#!/bin/sh

# J'autorise les paquets a etre envoyés dans la chaine FORWARD

echo 1 >/proc/sys/net/ipv4/ip_forward

# On vide toutes les tables
iptables -F

# Début des politiques par défaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#Fin des politiques par défaut

# from ESTABLISHED and RELATED connections ( accept les paquets lier à un etat )
iptables -A INPUT -i lo -j ACCEPT

#Règle suivante OK mais je vois pas l'intérêt, il vaut mieux être restrictif et ouvrir au compte goutte ce dont tu as besoin => je commente
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# J'autorise la boucle locale

#iptables -t filter -A INPUT -i lo -j ACCEPT (au dessus)
iptables -t filter -A OUTPUT -o lo -j ACCEPT


# Je considere que mon réseau local est sur

iptables -A INPUT -i eth1 -j ACCEPT
#iptables -A OUTPUT-o eth1 -j ACCEPT

# Translation d'adresses pour tout ce qui traverse la passerelle en sortant par eth0

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


# Toutes les connexions qui sortent du LAN vers le net sont aceptées
# règle OK, mais super dangereuse, imagine un spyware, tout ce qu'il pourra envoyer sortira => limite toi aux protocoles utilisés (smpt,pop,http(s)..., ça diminuera grandement le risque


iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#Seules les connexions deja établies ,ou en relation avec des connexions établies sont acceptés venant du net vers le LAN

iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


# Je laisse rentrer les réponses de ping depuis le parefeu vers l'internet, uniquement si ceux-ci proviennet de connexions deja établies ou dépendantes d'une connexion en cours.

iptables -A INPUT -p icmp -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#règle pour la réponse du ping, que ce soit depuis le réseau interne ou de la live box
iptables -A OUTPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT



Je crois que ça devrait tourner, par contre pour la visibilité des machines, aucune idée à te proposer. désolé.
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 12:02
j'oubliais : c'est dans le cas où ton FW ne sert qu'à ça (pas de clients web, mesg... qui ont besoin de communiquer avec le réseau)
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 12:47
je devrais aussi monter un vpn
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 14:11
j'ai garder mon script d'origine en rajoutant cette ligne que tu m'as proposée pour les ping


#règle pour la réponse du ping, que ce soit depuis le réseau interne ou de la live box
iptables -A OUTPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

Cependant les PC windows ne me ping toujours pas, alors que moi je peux les pinger. :-(((
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 14:58
"Cependant les PC windows ne me ping toujours pas, alors que moi je peux les pinger."
étrange, ça devrait être l'inverse.

je crois savoir d'où ça vient :

désactive cette règle :
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

elle n'autorise un flux à entrer sur ton FW que si un autre flux en est à l'origine,
quand une machine windows te ping iptables compare le flux aux règles dans l'ordre dans lequel elles sont écrites,
comme le ping est traité par cette règle et que iptables considère que le paquet n'est pas "established", ni "related", il le jette, sans même regarder la dernière règle que tu as ajouté.


0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 15:23
Regarde aussi les logs d'iptables pour voir ce qui se passe,ça peut être intéressant surtout sur une console réservée, car tu vois ce qui se passe en temps réel :

pour les mettre en place :

Doit être fait dans une règle à part.
Ex : iptables -A FORWARD –j LOG --log-level 6
Va enregistrer les logs de niveau 6 (infos) dans le fichier /var/log/messages.
inconvénient : affiche les messages sur la console sur laquelle on est et "écrase" ce que l'on fait

=>
Pour les afficher sur une console particulière ou dans un fichier il faut modifier le fichier /etc/syslog.conf
Ajouter la ligne
kern.info /dev/tty6 (va afficher les messages de log sur la console n° 6)
ou kern.info /var/log/firewall.log (va enregistrer les logs dans le fichier firewall.log – nom du fichier à votre choix)

ensuite redémarrer le service syslog (ou syslogd selon les distributions)

0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
15 févr. 2008 à 15:46
week end...la suite au prochain épisode, courage ;-)
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
15 févr. 2008 à 17:50
désole pour la structure de " route " :s
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
18 févr. 2008 à 11:56
up svp!
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
21 févr. 2008 à 08:52
bjr
suis en stage réseau en ce moment, donc peu de temps pour passer sur le site...
l'info intéressante est qu' on a configuré un iptables aux petits oignons,... la suite au prochain épisode
0
manager30 Messages postés 113 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 14 mai 2016 3
21 févr. 2008 à 09:37
c'est bon laisse tombé merci quand meme , mais j'y suis arrivé il fallait que je configure un réseau different de chaque coté du parefeu
un en 1.0 et l'autre en 2.0 sinon un conflit dans la table de routage

MERCI
0
val92160 Messages postés 83 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 30 décembre 2008 3
21 févr. 2008 à 18:24
évidemment il fallait y penser ;-)
0