Le Tue, 10 Jun 2003 22:51:00 +0200, Apollonie Raffalli a écrit :

> Non, je ne l'ai pas eu... Etrange...

Bizarre autant qu'étrange ;-)

> Si tu pouvais me la renvoyer.

Le revoici :

Le Tue, 10 Jun 2003 10:49:16 +0200, Apollonie Raffalli a écrit :

> Apollonie est un nom de fille... Je sais, nous sommes en minorité sur la
> liste ;-)

Ce n'est que plus appréciable :-)

>> iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner squid \
>> -s ! 192.168.0.1 -j REDIRECT --to-ports 8080
>>
>> Parce que je ne souhaite pas que le surf en intra passe par squid.
> 
> Je suppose que "intra" veut dire tout le réseau local et non seulement la 
> passerelle.

Oui, mais il faut justement distinguer le cas du reste du lan, du cas de
la passerelle elle-même qui est mon poste.

> La chaine à utiliser pour du proxy transparent est PREROUTING.
[...]

Oui, mais bon, j'avoue que mon message était très mal présentée et est
arrivé comme un cheveu sur la soupe.

Je reprends donc depuis le début pour faciliter ta compréhension et
t'aider à m'aider :-)

Je voulais avoir un proxy transparent, donc ne pas avoir à paramétrer de
proxy sur les clients du réseau.
Config de squid :
        httpd_accel_port 80
        httpd_accel_host virtual
        httpd_accel_with_proxy on
        httpd_accel_uses_host_header on

Et ajout de la règle iptables :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-d ! 192.168.0.1 -j REDIRECT --to-ports 8080

Ça fonctionne parfaitement.
Or, comme j'utilise shorewall, j'ai transformé cette règle en règle
shorewall :
REDIRECT loc 8080 tcp www - !192.168.0.1

Et cela fonctionne tout aussi parfaitement.

Mais cela ne redirige que ce qui rentre par eth0, donc des autres postes
du réseau local.
Or, je souhaiterais exactement la même chose, pour la passerelle elle même
puisqu'elle est aussi un poste de travail et non pas un serveur dédié.

On m'a donc conseillé de faire des règles iptables qui redirigent toutes
les sorties 80 en 8080, sauf celles de squid lui même.
Mais shorewall ne semble pas être capable de prendre en compte l'option
owner.
Par conséquent, je suis obligé de faire une(des) règle(s) que je rajoute
dans le fichier /etc/shorewall/start et qui sont lancées en plus par
shorewall à son lancement.

J'ai donc fait la règle :
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner squid \
-j REDIRECT --to-ports 8080

Qui semblait faire ce que je voulais, mais dans ce cas, même les accès au
serveur http local, par la passerelle, passaient par le proxy, ce que je
ne veux pas.
J'ai donc rajouté -d ! 192.168.0.1

Et c'est là que mon problème se pose concretement.
Si une requête de la passerelle, vers le net, n'est pas honorée
rapidement, c'est directement mon serveur http qui répond, et non plus
squid, soit parce que je suis hors connexion internet, soit parce que la
page n'existe pas sur le net, soit qu'elle met trop de temps à répondre.

Exemple, si je suis hors connexion, et que j'appelle www.google.fr/linux
dans mon navigateur, j'obtiens dans mes logs apache :
kanelxp.novazur.fr - - [28/May/2003:11:28:28 -0400] "GET /linux HTTP/1.1"
404 336 "-" "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.3.1)
Gecko/20030428"

Et rien dans les logs de squid.

Je précise que si la requête aboutie bien, et dans des temps courts,
c'est bien squid qui envoie la page (les logs me le confirment). Le
problème se pose si l'url est inaccessible (serveur down, inexistante,
etc...) ou qu'elle met trop de temps à répondre.

J'ai alors essayé de scinder cette règle en plusieurs comme on me l'a
conseillé :
iptables -t nat -A OUTPUT -p tcp --dport 80 -d 192.168.0.1 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -d 127.000.0.1 -j DNAT
--to-destination 192.168.0.1
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner squid
-j DNAT --to-destination 192.168.0.1:8080


Mais le problème reste identique.

Donc en résumé, ce que je veux, c'est que tous les accès, à partir de tous
les postes, y compris la passerelle, vers le net, passent par le proxy
sans configuration des clients.
Et ceci, de préférence en règles shorewall si possible, pour rester
homogène.

> En espérant que cela règlera ton problème...

Pas encore, mais j'espère là, avoir été plus clair dans l'expression de
mon besoin.

Merci pour ton aide.


-- 
Christophe PEREZ


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";.

Foire Aux Questions de la liste : http://mdk.mondelinux.org

Répondre à