Iptables sur 3 cartes reseaux

bonjour , voila mon probleme :
sur eth0 > internet en client dhcp venant d’une neufbox
eth1 > 168.191.222.119
eth2 > 10.10.27.119

je voudrais que eth1 et eth2 accede à internet sur eth0

mais je ne veut pas que eth1 aille sur eth2 et vice versa

je voudrais acceder à la neufbox uniquement par eth1 , ainsi que en ssh du serveur
en fait eth2 ne va que sur internet

eth1 et eth2 port ouvert 80

les postes du lan 1 auront la passerelle 168.191.222.119
les postes du lan 2 auront la passerelle 10.10.27.119

est ce que quelqu’un peut m’aider , j’ai installé une debian testing
merci

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

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

route add default gw eth0

apres si tu veux restreindre certain type de traffic il faut que tu cherches a faire des regles avec iptable

merci swiip81
comment le mettre dans un script tel que iptables?

voila ce que j’ai fait mais pas concluant il me met bad state ‘’

[code]iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#Empeche eth2 et eth1 de communiquer
iptables -A FORWARD -i eth1 -o eth2 -j DROP
iptables -A FORWARD -i eth2 -o eth1 -j DROP

#Autorise eth2 et eth1 à accéder a eth0
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

#Filtrer les arrivées d’internet
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED, RELATED -j ACCEPT

#Filtrer les PC qui peuvent aller sur la box
iptables -A FORWARD -s -o 192.168.1.1 -j ACCEPT
iptables -A FORWARD -s -o 192.168.1.1 -j ACCEPT
iptables -A FORWARD -s 192.168.220.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.221.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.222.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.223.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 10.117.27.0/24 -o 192.168.1.1 -j REJECT
[/code]

pas d’espaces entre ESTABLISHED et RELATED après la virgule

=> ESTABLISHED,RELATED

merci ,pour la reponse rapide
j’ai une autre erreur bad argument '192.168.1.1'
encore une erreur de syntax , je pense

[quote=“bellad”]
#Filtrer les PC qui peuvent aller sur la box
iptables -A FORWARD -s -o 192.168.1.1 -j ACCEPT
iptables -A FORWARD -s -o 192.168.1.1 -j ACCEPT
iptables -A FORWARD -s 192.168.220.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.221.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.222.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 192.168.223.0/24 -o 192.168.1.1 -j REJECT
iptables -A FORWARD -s 10.117.27.0/24 -o 192.168.1.1 -j REJECT
[/code][/quote]

-s sans rien après c’est étrange
-o avec une adresse ip, c’est pas tip top non plus, ce n’est pas une interface (-s -d -o -i il y a des différences)

heum
comment autoriser un poste
exemple : le poste 192.168.223.40 à aller sur la neuf en 192.168.1.1 et uniquement lui ?

Il faut a cela ajouter une règle pour autoriser les requêtes à revenir vers ta machine cliente.

ok j’essai
vu que j’ai filtrer avant , est ce que le retour ne se fera pas ?

#Filtrer les arrivées d'internet iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED, RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED, RELATED -j ACCEPT

J’ai fait ça , mais marche po

iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.40 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -s 192.168.1.1 -j ACCEPT

Avec deux lignes de codes c’est loin d’être facile de dire où cela coince.

Dans le principe tu peux autoriser toutes les connexions sortantes, puis uniquement les états RELATED et ESTABLISHED pour les connexions entrantes du point de vue de la chaine FORWARD.

OK je te mets ce que je lance

[code]iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#Empeche eth2 et eth1 de communiquer
iptables -A FORWARD -i eth1 -o eth2 -j DROP
iptables -A FORWARD -i eth2 -o eth1 -j DROP

#Autorise eth2 et eth1 à accéder a eth0
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

#Filtrer les arrivées d’internet
iptables -A INPUT -i eth0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Filtrer les PC qui peuvent aller sur la box
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.42 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.1.1 -j ACCEPT
[/code]

Ton initialisation est à revoir (politique par défaut, flush des chaînes utilisateurs, initialisation des tables, remise à zéro des compteurs, gestion de l’interface de loopback)

une politique DROP sur ta chaine FORWARD te permettrait de ne pas mettre cela.

Cela fait beaucoup ; Préfères quelque chose comme :

Il faut un état NEW pour générer les état ESTABLISHED et RELATED, donc si tu n’autorise pas les NEW, il n’y a pas de problème.

ok

C’est ce que fait ma règle pour la chaine FORWARD.

[quote]

#Filtrer les PC qui peuvent aller sur la box iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.42 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -s 192.168.1.1 -j ACCEPT [/quote]

Tu autorisais toutes les destinations dans des règles au dessus, elles étaient donc inutiles.
Maintenant, il te suffit de mettre :

Cela devrait aller dans le bon sens je pense.

Je recapitule

[code]#reinitialisation
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#je bloque tout
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#accepte connex lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Filtrer les arrivées d’internet
iptables -A INPUT -i eth0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.40 -m state --state NEW -j ACCEPT[/code]

Si tu ajoutes NEW c'est comme mettre, à peu de choses près :
[code]iptables -P FORWARD ACCEPT[/code]

C'est pas ce que tu veux à priori car tu mets plus bas :
[code]iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.40 -m state --state NEW -j ACCEPT[/code]

et pour l'init tu pourrais mettre :
[code]
# Flush rules
iptables -F
iptables -F -t nat
iptables -F -t mangle
[/code]

J'avais jamais vu utilisé -F INPUT ... :p! mais si cela fonctionne.

Maintenant je pense, et j'espère que cela fonctionne.

Si tu ajoutes NEW c’est comme mettre, à peu de choses près :

C’est pas ce que tu veux à priori car tu mets plus bas :

et pour l’init tu pourrais mettre :

# Flush rules
iptables -F
iptables -F -t nat
iptables -F -t mangle

J’avais jamais vu utilisé -F INPUT … :p! mais si cela fonctionne.

Maintenant je pense, et j’espère que cela fonctionne.

bonjour ,
excuse mes j’etait parti bossé
bon
et ben ça marche toujours pas
voila le scrit

[code]#reinitialisation

Flush rules

iptables -F
iptables -F -t nat
iptables -F -t mangle

#je bloque tout
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#accepte connex lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Filtrer les arrivées d’internet
iptables -A INPUT -i eth0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT

#acces neufbox

j’ai essayé ça

#iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.40 -m state --state NEW -j ACCEPT
#mais pas mieux
#et ça mais pas mieux non plus
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.223.40 -d 192.168.1.1 -j ACCEPT[/code]

pour le moment je m’axe sur l’acces neufbox et ensuite ssh depuis mon ordi et uniquement mon ordi
car le serveur est à trois metre , ensuite il serat dans un autre batiment
donc ça ferait mon ordi :192.168.223.40 ->
le serveur :ETH1 192.168.223.119 -> ETH0 ->
neufbox : 192.168.1.1

merci encore de m’aider

As tu activé le forwarding ?

Autrement, en regardant les règles je ne vois pas ce qui cloche.
Tu peux dans un premier temps vérifier que la règle ci-dessus fonctionne correctement et est matchée, en ajoutant dans ton script, à l’initialisation :

# Reset counters
iptables -Z
iptables -Z -t mangle
iptables -Z -t nat

Ensuite la commande iptables -L -v te permettra de mette en évidence si un packet a au moins matché cette règle. Ce qui devrait être le cas si tu tentes d’accéder à ta neufbox avec un simple ping, ou par http.
Tu procèdes comme cela en affinant tes règles.

J’y pense ta route par défaut est bien eth0 ?

excuse du retard , mais beaucoup de boulot

bon
ip_forward est = à 1

je crois effectivement que c’est le route qui m… car je n’arrive meme pas à pinguer sur un site exterieur style google

en route j’ai 198.162.1.1 GW qui est la box

bizzard non ?

Que donne un route -n

route -n

Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 10.17.27.0 0.0.0.0 255.255.255.128 U 0 0 0 eth2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.220.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Dans un premier temps, il faudrait au moins reussir a pinguer ta neufbox !

Il faudrait aussi ajouter quelque chose comme cela :

L’utilisation de la table nat te permet de modifier les sources et destinations des paquets.
En supposant que 192.168.1.10 est l’adresse ip statique de la machine qui fait le forward. Si c’est dynamique c’est avec MASQUERADE.

Il y a un truc qui me gène dans le retour de la commande route -n : Je vois un réseau 192.168.220.0/24 et tu parles de machine en 192.168.223.40 ; il y a une incohérence.

As tu résussi à matcher des paquets sur ta chaine forward quand tu fais un ping sur ta neufbox ? Cela permettrait de savoir si c’est l’aller ou le retour qui cloche.