Configuration proxy transparent Squid3

A là là… c’est trop beau ces lignes d’iptables, ça me redonne espoir,

Par contre :

Est ce que c’est toujours d’actualité ?

Je tape ceci puis je fais :

Ou bien juste cette dernière ligne ?

Je vais également vérifier que squid tourne sous l’UID “squid” si j’ai bien compris avec la commande ps -Af, en tout cas à l’installation de squid3 je n’ai pas créé d’user-id ou de group-id, j’ai juste édité squid.conf que j’ai posté plus haut.

Salut,

[quote=“asno, post:11, topic:69227”]
Est ce que c’est toujours d’actualité ?
[/quote]Non, il n’y a pas de forward d’une interface à une autre.

[quote=“asno, post:11, topic:69227”]
juste cette dernière ligne ?
[/quote]Ça même. :slight_smile:

Merci, j’essaye tout ça et je vous tiens au courant les boss…

Correction à mon message précédent, il manquait une inversion “!” à la règle.

Est ce que tu peux m’expliquer s’il te plaît ? Je dois rajouter un point d’exclamation à la règle ? C’est bien ça ? Si oui ou dois je le rajouter ?

J’ai l’impression qu’il n’y a plus personne :’( Du coup j’ai été voir sur ce lien :

Donc dans mon cas ça donnerait :

`iptables -t nat - A OUTPUT -p tcp ! --dport 80 -m owner --uid-owner squid -j REDIRECT --to-ports 3128

Est ce que c’est ok ?

Salut,

Suite à la remarque de PascalHambourg :

J’ai donc tapé ps -Af et cela m’a donné pour squid :

root 976 1 0 07:58 ? 00:00:00 /usr/sbin/squid3 -YC -f /etc/squ
proxy 978 976 0 07:58 ? 00:00:00 (squid-1) -YC -f /etc/squid3/squ

proxy 1606 978 0 08:01 ? 00:00:00 (logfile-daemon) /var/log/squid3

Du coup je laisse uid-owner squid ? ou bien est-ce que je change par “proxy” ou “root” ? ça va peut être vous paraître bête mais je suis un peu perdu.
Je m’excuse auprès de PascalHambourg je n’avais pas vu qu’il avait édité son message et je sais ou se trouve l’ inversion “!”

Comme il y a plusieurs processus squid, il faut chercher celui qui fait les connexions sortantes. Logiquement cela devrait être un de ceux dont l’UID est “proxy”. On ne peut pas vérifier directement, mais on peut voir lequel écoute sur le port 3128 avec

netstat -ntlp | grep 3128

[quote=“asno, post:16, topic:69227”]
J’ai l’impression qu’il n’y a plus personne[/quote]
Souvent les gens dorment la nuit. C’est mon cas.

Salut PascalHambourg,

Tout d’abord je ne te reproche pas de dormir de temps en temps, j’exprimais juste un moment de solitude :anguished:

Pour ce qui est de : [quote=“PascalHambourg, post:18, topic:69227”]
netstat -ntlp | grep 3128
[/quote]

Cela me donne :

tcp6 0 0 :::3128 :::* LISTEN 972/(squid-1)

Donc pour la règle iptables je suppose que c’est ça :

`iptables -t nat - A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner squid-1 -j REDIRECT --to-ports 3128

Désolé si je me suis trompé. J’attends ton aval.

Merci pour ta patience.

Non squid-1 est le nom du processus, qu’on retrouve avec son PID (process ID) 972 dans la sortie de ps.
ps indique que l’UID (user ID) de ce processus est proxy.

Le fait que squid ouvre une socket IPv6 me fait penser que si la machine a une connectivité IPv6 globale, l’accès aux sites accessibles en IPv6 ne passera pas par le proxy car iptables ne traite que les paquets IPv4. Pour traiter les paquets IPv6, il faut utiliser ip6tables.

Tu peux vérifier si la machine a une adresse IPv6 globale avec
ip -6 addr
Si cela n’affiche aucune ligne d’adresse IPv6 (inet6) avec “global”, tu n’es pas concerné pour le moment.

Salut,

Donc l’UID est “proxy” si j’ai bien compris, on progresse :slight_smile:

Par contre pour ce qui est de :

Cela donne ceci :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::217:31ff:fecd:44ec/64 scope link
valid_lft forever preferred_lft forever

Donc il semble bien que j’ai une connectivité IPv6 ? J’imagine que ça change la règle ou bien faut il juste remplacer iptables par ip6tables dans la règle plus haut avec “proxy” comme UID ?

Pas de connectivité IPv6 globale puisqu’aucune adresse IPv6 ne porte la mention “scope global”.
Les seules addresses IPv6 présentes sont ::1 qui est l’adresse de loopback interne (équivalent de 127.0.0.1, “scope host”) et une adresse link local en fe80 dont la portée est limitée au lien local (“scope link”, qui n’a pas vraiment d’équivalent en IPv4).

Merci pour l’explication je comprends mieux, j’ai cru effectivement que fe80::217:31ff:fecd:44ec/64 prouvait que j’avais de l’IPv6 mais il faut la mention “scope global”. Si bien que pour la règle iptables ça donne : [quote=“PascalHambourg, post:9, topic:69227”]
`iptables -t nat - A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner squid -j REDIRECT --to-ports 3128
[/quote]

Mis à part que je remplace “squid” par “proxy”, j’ai bon chef ?

Oui, je pense.

PS : c’est de l’IPv6, mais qui ne permet pas de communiquer sur l’internet public.

Bonsoir,

Je reviens aux nouvelles du front mais malheureusement elles ne sont pas bonnes, mais peut être que ce n’est pas trop grave docteur.

J’ai donc tapé dans mon terminal en root la règle suivante :

`iptables -t nat - A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner proxy -j REDIRECT --to-ports 3128

Cela revient à la ligne avec le sigle " >"
Jusque là je ne sais pas si c’est normal, comme je le disais je suis vraiment débutant en iptables.

Ensuite je vais sur iceweasel et là rien à faire, si l’IP et le port 3128 sont cochés dans “configuration manuelle du proxy”, Squid bloque bien les domaines de la liste mais si je décoche, il ne bloque plus rien.

Est-ce que j’ai fait une erreur ?

Je suis vraiment désolé de te prendre autant de temps. Merci en tout cas.

Salut,

[quote=“asno, post:25, topic:69227”]
Cela revient à la ligne avec le sigle " >" Jusque là je ne sais pas si c’est normal, comme je le disais je suis vraiment débutant en iptables.
[/quote]Non, ce n’est pas bon…

Tu as un espace en trop entre - et A
Essaye ça:
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner proxy -j REDIRECT --to-ports 3128

Salut !!!

Merci !!! Enorme merci à PascalHambourg et à toi aussi lol ! ça fonctionne !!! Trop fort les gars.
Maintenant je ne sais pas si ça résiste au reboot ? Je vais voir comment sauvegarder une règle pour qu’elle se lance à chaque démarrage.

[quote=“asno, post:27, topic:69227”]
Maintenant je ne sais pas si ça résiste au reboot ? Je vais voir comment sauvegarder une règle pour qu’elle se lance à chaque démarrage.
[/quote]Effectivement ça ne tient pas le boot.

Regarde du côté de if-up: https://www.debian-administration.org/article/445/Getting_IPTables_to_survive_a_reboot

Et il y avait une autre erreur dans mon message pourtant déjà corrigé : l’apostrophe manquante à la fin de la commande pour marquer le texte comme code préformaté, ce qui faisait apparaître l’apostrophe au début qui causait l’affichage du signe > car pour le shell il manquait l’apostrophe fermante.

La faute au navigateur que j’ai utilisé à ce moment qui s’obstine à faire des corrections automatiques stupides que je dois annuler quand je les vois…

Pas grave pour les fautes, l’essentiel c’est le résultat. Merci encore à tous les deux et bravo pour votre patience. Je vais aller voir du côté du lien pour finaliser tout ça j’espère :