OVH Cloud OVH Cloud

iptable prerouting

8 réponses
Avatar
Thomas Labourdette
Bonjour,

J'utilise dansguardian en proxy transparent.

J'ai la règle iptable suivante :
/usr/sbin/iptables -t nat -A PREROUTING -s ! 192.168.1.254 -p tcp --dport 80
-j DNAT --to 192.168.1.254:8080

où 192.168.1.254 est la machine sur laquelle se trouve dansguardian (le
firewall étant en 192.168.1.1)

Cela fonctionne sauf que l'adresse ip source reçu par dansguardian est
l'adresse ip du firewall et non celle du poste client. Ce qui empêche des
politiques différentes suivant le poste utilisé.

Quelqu'un a-t-il une idée du pourquoi ?

Merci

@+
--
Olivier KORBOUCHÉ
" La terre est ronde, et on l'appelle "planete". Si elle etait plate,
est-ce qu'on l'appellerait "rondette"?"

8 réponses

Avatar
TiChou
Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

Bonjour,


Bonjour,

J'utilise dansguardian en proxy transparent.

J'ai la règle iptable suivante :
/usr/sbin/iptables -t nat -A PREROUTING -s ! 192.168.1.254 -p tcp --dport
80 -j DNAT --to 192.168.1.254:8080

où 192.168.1.254 est la machine sur laquelle se trouve dansguardian (le
firewall étant en 192.168.1.1)

Cela fonctionne sauf que l'adresse ip source reçu par dansguardian est
l'adresse ip du firewall et non celle du poste client. Ce qui empêche des
politiques différentes suivant le poste utilisé.

Quelqu'un a-t-il une idée du pourquoi ?


C'est parce que vous avez une règle de source NAT (SNAT) ou de masquerade
dans la chaine POSTROUTING de la table nat. Il faut la modifier si vous ne
voulez pas modifier l'adresse IP source des paquets à destination du proxy.
Par exemple :

iptables -t nat -A POSTROUTING -p tcp -s [...] -d ! 192.168.1.254
-j SNAT/MASQUERADE [...]

Ou bien vous faites précéder à votre règle SNAT la règle suivante :

iptables -t nat -A POSTROUTING -p tcp -s [...] -d 192.168.1.254 --dport 8080

-j RETURN

Merci


De rien.

--
TiChou

Avatar
Thomas Labourdette
TiChou a écrit le samedi 02 Octobre 2004 14:41 :

Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

J'utilise dansguardian en proxy transparent.

J'ai la règle iptable suivante :
/usr/sbin/iptables -t nat -A PREROUTING -s ! 192.168.1.254 -p tcp --dport
80 -j DNAT --to 192.168.1.254:8080

Cela fonctionne sauf que l'adresse ip source reçu par dansguardian est
l'adresse ip du firewall et non celle du poste client. Ce qui empêche des
politiques différentes suivant le poste utilisé.
Ou bien vous faites précéder à votre règle SNAT la règle suivante :


iptables -t nat -A POSTROUTING -p tcp -s [...] -d 192.168.1.254 --dport
8080
-j RETURN



J'ai essayé la règle suivante :
/usr/sbin/iptables -t nat -I POSTROUTING -p tcp -s ! 192.168.1.254 -d
192.168.1.254 --dport 8080 -j RETURN

Là je ne peux plus me connecter via http.

Avec la règle :
/usr/sbin/iptables -t nat -I POSTROUTING -i ! ppp0 -p tcp -s !
192.168.1.254 -d 192.168.1.254 --dport 8080 -j RETURN

Je me connecte mais l'adresse ip source est toujours 192.168.1.1 dans
dansguardian.

Le routeur/firewall est un Linksys WRT54G.

@+
--
Cindy NAMITE
PESSIMISTE
Optimiste qui a l'expérience.


Avatar
TiChou
Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

J'ai essayé la règle suivante :
/usr/sbin/iptables -t nat -I POSTROUTING -p tcp -s ! 192.168.1.254 -d
192.168.1.254 --dport 8080 -j RETURN

Là je ne peux plus me connecter via http.

Avec la règle :
/usr/sbin/iptables -t nat -I POSTROUTING -i ! ppp0 -p tcp -s !
192.168.1.254 -d 192.168.1.254 --dport 8080 -j RETURN

Je me connecte mais l'adresse ip source est toujours 192.168.1.1 dans
dansguardian.


Il faut nous donner l'ensemble de vos règles, on ne peut pas jouer à deviner
ce qui se passe sans. Une règle iptables est dépendante des autres.

Le routeur/firewall est un Linksys WRT54G.


Donnez nous plutôt la topologie complète de votre réseau parce que là j'ai
vraiment du mal à comprendre. Dans vos règles apparaît une interface ppp0
alors que la connexion est sur un autre routeur ? Vos règles se situent sur
quelle machine, qu'elle est sont rôle ?

--
TiChou

Avatar
Thomas Labourdette
TiChou a écrit le samedi 02 Octobre 2004 17:23 :

Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

J'ai essayé la règle suivante :
/usr/sbin/iptables -t nat -I POSTROUTING -p tcp -s ! 192.168.1.254 -d
192.168.1.254 --dport 8080 -j RETURN

Là je ne peux plus me connecter via http.

Avec la règle :
/usr/sbin/iptables -t nat -I POSTROUTING -i ! ppp0 -p tcp -s !
192.168.1.254 -d 192.168.1.254 --dport 8080 -j RETURN

Je me connecte mais l'adresse ip source est toujours 192.168.1.1 dans
dansguardian.


Il faut nous donner l'ensemble de vos règles, on ne peut pas jouer à
deviner ce qui se passe sans. Une règle iptables est dépendante des
autres.
Chain PREROUTING (policy ACCEPT 60 packets, 2916 bytes)

pkts bytes target prot opt in out source destination
0 0 DNAT icmp -- * * 0.0.0.0/0 80.119.45.219 to:192.168.1.1
0 0 DNAT tcp -- * * 0.0.0.0/0 80.119.45.219 tcp dpt:6969 to:192.168.1.3
0 0 DNAT tcp -- * * 0.0.0.0/0 80.119.45.219 tcp dpts:6881:6889
to:192.168.1.3
0 0 DNAT tcp -- * * 0.0.0.0/0 80.119.45.219 tcp dpt:4662 to:192.168.1.3
0 0 DNAT udp -- * * 0.0.0.0/0 80.119.45.219 udp dpt:4672 to:192.168.1.3
57 2736 TRIGGER all -- * * 0.0.0.0/0 80.119.45.219 TRIGGER type:dnat match:0
relate:0
1 60 ACCEPT all -- * * 0.0.0.0/0 192.168.1.1
0 0 DNAT tcp -- * * 192.168.1.3 0.0.0.0/0 tcp dpt:80 to:192.168.1.254:3128
(squid)
0 0 DNAT tcp -- * * !192.168.1.254 0.0.0.0/0 tcp dpt:80
to:192.168.1.254:8080 (dansguardian)
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE udp -- * ppp+ 0.0.0.0/0 0.0.0.0/0 udp spts:5060:5070 masq
ports: 5056-5071
4 1671 MASQUERADE all -- * ppp+ 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * br0 192.168.1.0/24 192.168.1.0/24
Chain OUTPUT (policy ACCEPT 4 packets, 1671 bytes)
pkts bytes target prot opt in out source destination


Le routeur/firewall est un Linksys WRT54G.


Donnez nous plutôt la topologie complète de votre réseau parce que là j'ai
vraiment du mal à comprendre. Dans vos règles apparaît une interface ppp0
alors que la connexion est sur un autre routeur ? Vos règles se situent
sur quelle machine, qu'elle est sont rôle ?


Sur le routeur Linksys avec comme ip 192.168.1.1

Squid et dansguardian sur 192.168.1.254

Les autres postes sur 192.168.1.0/24

@+

--
Hervé HI
L'alcool est un ennemi... Fuir l'ennemi, c'est lâche


Avatar
TiChou
Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

Il faut nous donner l'ensemble de vos règles, on ne peut pas jouer à
deviner ce qui se passe sans. Une règle iptables est dépendante des
autres.



[snip iptables -t nat -L]

À l'avenir, préférez la commande iptables-save pour lister vos règles, car
le format de sortie est plus lisible et il permet de lister toutes les
règles. Ici il n'y a que les règles de la table nat. De plus, publiez vos
règles dans un fichier texte, sur un site web ou en pièce jointe.

Le routeur/firewall est un Linksys WRT54G.


Donnez nous plutôt la topologie complète de votre réseau parce que là
j'ai vraiment du mal à comprendre. Dans vos règles apparaît une interface
ppp0 alors que la connexion est sur un autre routeur ? Vos règles se
situent sur quelle machine, qu'elle est sont rôle ?


Sur le routeur Linksys avec comme ip 192.168.1.1

Squid et dansguardian sur 192.168.1.254

Les autres postes sur 192.168.1.0/24


Ça commence à être beaucoup plus clair, il n'était pas évident au départ que
vous interveniez directement et manuellement sur votre routeur hardware.
Comment sont reliées toutes vos machines ? Wifi, ethernet ou les deux ?

--
TiChou



Avatar
Thomas Labourdette
TiChou a écrit le samedi 02 Octobre 2004 18:33 :

Dans le message <news:,
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

Il faut nous donner l'ensemble de vos règles, on ne peut pas jouer à
deviner ce qui se passe sans. Une règle iptables est dépendante des
autres.



[snip iptables -t nat -L]

À l'avenir, préférez la commande iptables-save pour lister vos règles


Cette commande n'existe pas dans le firmware de mon WRT54G

Ici il n'y a que les règles de la table nat.


Je ne voulais pas encombrer. Mais il suffit de demander.

De plus, publiez vos
règles dans un fichier texte, sur un site web ou en pièce jointe.


Il me semble (ça a peut-être changé) que les pj sont interdites sur fr.*

Le routeur/firewall est un Linksys WRT54G.


Donnez nous plutôt la topologie complète de votre réseau
Sur le routeur Linksys avec comme ip 192.168.1.1


Squid et dansguardian sur 192.168.1.254

Les autres postes sur 192.168.1.0/24


Ça commence à être beaucoup plus clair, il n'était pas évident au départ
que vous interveniez directement et manuellement sur votre routeur
hardware.


Si c'est en partie prévu pour (Linux, iptables, etc)

Comment sont reliées toutes vos machines ? Wifi, ethernet ou les
deux ?


Les 2. Mais les tests actuels ne se font que sur de l'ethernet.

Le routeur, le proxy, la machine cliente.

@+

PS: malgré mon grand age, ça ne me gêne pas que l'on me tutoie.
--
Jacques OUCHE
"Si tu attends le mois d'octobre pour faire des poissons d'avril, tu
attrapes plus de gens."
Jean-Claude V.




Avatar
Pascal
Salut,

TiChou wrote:
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

J'utilise dansguardian en proxy transparent.

J'ai la règle iptable suivante :
/usr/sbin/iptables -t nat -A PREROUTING -s ! 192.168.1.254 -p tcp --dport
80 -j DNAT --to 192.168.1.254:8080

où 192.168.1.254 est la machine sur laquelle se trouve dansguardian (le
firewall étant en 192.168.1.1)

Cela fonctionne sauf que l'adresse ip source reçu par dansguardian est
l'adresse ip du firewall et non celle du poste client. Ce qui empêche des
politiques différentes suivant le poste utilisé.

Quelqu'un a-t-il une idée du pourquoi ?


C'est parce que vous avez une règle de source NAT (SNAT) ou de masquerade
dans la chaine POSTROUTING de la table nat. Il faut la modifier si vous ne
voulez pas modifier l'adresse IP source des paquets à destination du proxy.


Mais si l'adresse IP source n'est pas modifiée, il y aura un problème
pour les paquets retour, non ? Apparemment, toutes les machines sont
dans le même sous-réseau 192.168.1.0/24. Sans NAT source, les paquets de
réponse du proxy reviendront directement aux clients sans passer par le
routeur. Et sans ça, le routeur ne pourra pas effectuer l'opération
inverse de la règle DNAT. Donc les clients ne les reconnaîtront pas et
les connexions échoueront.

Une solution pourrait être de mettre le proxy dans un sous-réseau
distinct de celui des clients.


Avatar
Thomas Labourdette
a écrit le samedi 02 Octobre 2004 21:47 :

Salut,

TiChou wrote:
*Thomas Labourdette* tapota sur f.c.o.l.configuration :

J'utilise dansguardian en proxy transparent.

J'ai la règle iptable suivante :
/usr/sbin/iptables -t nat -A PREROUTING -s ! 192.168.1.254 -p tcp --dport
80 -j DNAT --to 192.168.1.254:8080

où 192.168.1.254 est la machine sur laquelle se trouve dansguardian (le
firewall étant en 192.168.1.1)

Cela fonctionne sauf que l'adresse ip source reçu par dansguardian est
l'adresse ip du firewall et non celle du poste client. Ce qui empêche des
politiques différentes suivant le poste utilisé.

Quelqu'un a-t-il une idée du pourquoi ?




Une solution pourrait être de mettre le proxy dans un sous-réseau
distinct de celui des clients.


J'ai essayé, le résultat est le même. Soit je ne met pas de MASQUERADE et
donc, je n'ai pas communication, soit j'en met et l'adresse ip dans les
logs du proxy est celle du firewall :-( .

Je fais ceci :
firewall 192.168.1.1
proxy 192.168.2.254:3128
machine cliente 192.168.1.3

/usr/sbin/iptables -t nat -A PREROUTING -s 192.168.1.3 -p  tcp --dport 80 -j
DNAT --to 192.168.2.254:3128

juste avec cette règle, la connexion echoue (il y a bien des échanges entre
le client et le proxy (vu avec tcpdump) mais à mon avis ce n'est la même
communication :-))

en ajoutant
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.3 -d 192.168.2.254 -j
MASQUERADE

ok ça fonctionne mais l'adresse ip du demandeur dans les logs du proxy est
192.168.1.1 :-(

@+

PS: désolé pour la réponse par mail :-(

--
Ken BOWIE (+ Alan DI)
"On vous demande pas grand chose, juste d'en faire beaucoup..."