Iptables redirection de ports

Bonjour

J’aimerais rediriger le port de Squid (8080) vers celui de dansguardian (8081).

Est ce que quelqu’un pourrait me dire la règle IPTABLES à configurer ?

Iptables -t nat -A PREROUTING -p tcp --dport 8081 -j DNAT --to-destination 192.168.10.190:8080

C’est bon ca ?

non.

mais ce n’est pas le port par defaut utilisé par debian pour squid, et squidguard n’a jamais eu de port chez moi (en fait, je n’ai jamais vu qu’on envoyais quoi que ce soit à squidguard, c’est un redirecteur de squid, pas un service à part)…
Tu fais quoi ?

Nan mais en fait mon probleme c’est que lorsque je met le port d’écoute de Dansguardian (8081) dans mon navigateur, il me demande de m’authentifier. Cela n’est pas normal car un service Ident tourne sur ma machine et donc grace a une ACL et au mode authentification msnt_auth, normalement je dois accéder au net sans m’authentifier.

Par contre, Si je met le port de Squid (8080), cela marche.

Donc je pensais en redirigeant le port de Dansguardian vers celui de Squid, cela marcherait.

Qu’est ce que tu en penses ?

Tu m’as fait douter soudain, mais c’est bien ce que je disais. Squidguard est un redirecteur de squid: un script qui prend des arguments dont une url, et qui renvoie une url. Il n’a pas de vie propre en tant que service réseau: il n’écoute aucun port. Seul squid ecoute.
Pour le debuguer, tu pourras te réfèrer à cette doc là:
squidguard.org/install/
(section 10)

En fait, la syntaxe des args de squidgard, c’est 'URL ip-address/fqdn ident method’
l’url, c’est l’url
l’ip, c’est l’ip du client
le fqdn, le fqdn du client
le ident, EST FOURNI PAR SQUID A SQUIDGUARD,
la methode (GET, POST, etc).

Donc indépendament de squidguard, c’est squid qui est mal configuré et qui ne fournit pas le bon ident.

Alors en fait, j’ai trouvé ce lien en portuguais ( :laughing: ) pour la config de msnt_auth et ça m’a l’air à peu prés compréhensible (même si je ne connais pas un mot de portuguais ) :
linuxit.com.br/section-viewarticle-506.html

si tu disais comment toi tu as configuré msnt_auth, on pourrait comparer à deux…

Mais je te dis, je me plante pas mal en ce moment, mais je ne vois pas comment tu pourrais avoir un port squidguard.

Nan mais moi c’est Dansguardian que j’utilise, ce n’est pas SquidGard.

Mais pour moi Squid est bien configuré puisque lorsque je met le port de Squid dans mon navigateur (8080), Ident marche. Mais c’est lorsque je met le port de Dansguardian (8081) que cela ne marche plus. En effet, dans tous les cas, il me demande de m’authentifier.

Tiens je te met ma conf de Squid.conf :

auth_param basic program /usr/lib/squid/msnt_auth
auth_param basic realm Squid proxy-caching web server
auth_param basic children 10
auth_param basic credentialsttl 2 hours

et aussi ma conf dans msnt_auth.conf

server msgfl msgba ohs
denyusers /etc/squid/msntauth.denyusers
allowusers /etc/squid/msntauth.allowusers

Msgfl est mon controleur primaire de domaine
Msgba est mon controleur secondaire de domaine
Ohs est mon domaine

:blush:

[quote=“psgkiki”]Mais pour moi Squid est bien configuré puisque lorsque je met le port de Squid dans mon navigateur (8080), Ident marche. Mais c’est lorsque je met le port de Dansguardian (8081) que cela ne marche plus. En effet, dans tous les cas, il me demande de m’authentifier.
Tiens je te met ma conf de Squid.conf :
auth_param basic program /usr/lib/squid/msnt_auth
auth_param basic realm Squid proxy-caching web server
auth_param basic children 10
auth_param basic credentialsttl 2 hours
et aussi ma conf dans msnt_auth.conf
server msgfl msgba ohs
denyusers /etc/squid/msntauth.denyusers
allowusers /etc/squid/msntauth.allowusers
Msgfl est mon controleur primaire de domaine
Msgba est mon controleur secondaire de domaine
Ohs est mon domaine[/quote]Ouais, ben c’est ce dont je me souviens à peu prés de la dernière fois qu’on a causé de ta configuration. (sinon, tu devrais utiliser les balises, pour isoler les extraits de fichier, pour la lisibilité).
Bon, mega oops.

Donc tu as raison, il y a bien une écoute sur le port 8081.
En fait, comme c’est expliqué ici savs.hcc.edu.tw/~chuavv/arti … an-en.html , tu peux effectivement avoir à rediriger les données qui arrivent sur le port du squid vers le port du dansguardian, mais c’est surtout pour une raison de transparence, quand les clients sont configurés en dur pour attaquer le squid et que tu ne veux pas passer sur toutes les machines pour les configurer.
C’est ton cas, donc OK, pour l’utilité, et il faut d’ailleurs aussi rediriger tout ce qui va vers un port 80/tcp et 443/tcp si tu veux forcer le passage par ton proxy.
Par contre, rediriger le traffic de squid et/ou http, https vers dansguardian va revenir à taper directement dans dansguardian, ce qui ne va rien t’apporter puisque ca ne déclenche pas msnt_auth.
C’est dans le chainage de squid (qui fait le msnt_auth) avec dansguardian (qui fait sont boulot de filtrage) qu’il faut chercher le pb.
Tiens avant que j’aille me rememorer comment ça fonctionne, une anecdote: je faisais une démonstration un jour de la puissance des softs de de filtrage (dansguardian en l’occurence) sur grand ecran de ciné, avec 50 institutionnels trés “province province” dans la salle.
J’explique, en faisant une recherche sur google, l’importance du filtrage intelligent.
Dans le résultat de la recherche (que j’avais déjà testée avant pour eviter les surprises), je prends un premier lien que j’avais repèré avant, manifestement du cul, je clic, et hop, une jolie barrière d’interdiction.
Deuxiême lien, je choisis un cabinet médical, parlant de sein, de vulve, de trucs médicaux, quoi. Hop, je me connectes.
Là, au fond de la salle, un petit malin me dit "ouais, mais votre truc, c’etait manifaestement des liens déjà visité, mais si vous cliquez sur un autre que vous n’avez pas testé, ça donne quoi ?"
Décidé de faire fermer sa bouche au gars et sûr de mon affaire, je choisis un lien bien gras, explicite, que je n’avais pas visité, et là, hop, en 10 mètre de diagonales, une série de photos sans sous titre dans une page tellement mal fait qu’elle n’etait même pas taguée de mots clés cochons, photos toutes plus crades les unes que les autres.
La tête de l’assemblée !
Moralité, il faut faire attention, quand on fait une démo, on ne fait que ce qu’on a testé: ne jamais faire le fier :laughing:

Dis donc, dans ton dansguardian.conf tu as bien

filterport = 8081 proxyport = 8080 proxyip = 192.168.10.190
filterport doit designer le port DS, et proxyport le port squid, et la règle iptables que je t’avais donnée était à l’envers, en fait, il faudrait faire:iptables -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8081 iptables -A PREROUTING -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 8081 iptables -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8081 iptables -A PREROUTING -p udp -m udp --dport 443 -j REDIRECT --to-ports 8081[/quote]

mais est ce qu’on peut faire des règles Iptables par commande (si oui comment) car quand je tape la commande ca ne la prend pas en compte, donc je le fais via Webmin.

Comment fait on donc pour ecrire les iptables en commande et qu’elles soient prises en compte.

Un petit tutos bien sympa sur iptables voir forum.debian-fr.org/viewtopic.php?t=1901

[quote=“psgkiki”]mais est ce qu’on peut faire des règles Iptables par commande (si oui comment) car quand je tape la commande ca ne la prend pas en compte, donc je le fais via Webmin.

Comment fait on donc pour ecrire les iptables en commande et qu’elles soient prises en compte.[/quote]Si tu veux que je t’aide, tu pourrais au moins répondre à mes questions :wink:
je réponds au tiennes:
Webmin et les scripts de gestion d’iptables cohabitent trés mal.
/etc/init.d/webmin-iptables fait un iptables-restore d’un fichier situé dans /etc/default, me semble t’il. Or l’interface fonctionne en direct sur ce fichier.
Donc à chaque redémarrage de ta machine, webmin “oublie” les modifs que tu as pu faire autrement que par l’interface.
Si tu veux vraiment utiliser webmin, penses déjà à ne pas le démarrer automatiquement (tu le lances à la main depuis une connection ssh), et pour webmin-iptables, il y a un bouton permettant d’importer la config courante du noyau comme nouvelle configuration de webmin-iptables (je ne retrouve plus son intitulé).

Excuse moi si j’ai oublié de te répondre a ta question.

Oui oui, donc mon fichier dansguardian.conf, jai bien les lignes :

filterport = 8081
proxyip = 192.168.10.190
proxyport = 8080

Je vais tester tes iptables

Attention: les règles iptables que je t’ai données ne concernent que la transparence de ton proxy, pas ton problême de chainage entre dansguardian et squid.
Donc il y a toutes les chances que ça ne fonctionne pas en msnt_auth, même si le REDIRECT ne gène pas pour le diag, puisqu’on sait que ça ne fait que rediriger le traffic sur le port.
Par contre, tu peux essayer aussi proxyip=127.0.0.1.
Autre piste à essayer, ouvrir un peu les acl squid, parceque la provenance apparente des paquets, une fois passé par dansguardian, n’est peut être plus en 192.168.10.X, mais est peut être en 127.0.0.1 (si tu as mis une autre acl sur l’adresse…
il faudrait, avec iptables en loguant ou ethereal ou un autre outil, voir par ou passent les paquets entre dansguardian et squid.
mais bon… a reflechir au symptôme, dansguardian retransmet bien les paquets à squid, sinon, tu n’aurais même pas de demande d’auth…
Il y a aussi un flag dans squid.conf pour faire fonctionner squid si je me souviens bien en accelerateur local, et je sais nque je m’en suis servi pour un couplage avec un autre proxy (je crois que c’etait pour une config avec frox)…
As tu regardé les logs de squid ? As tu essayé de rendre squid plus verbeux pour voir ce qu’il recoit et d’ou, et quelles fonctionnement il dit avoir (il doit bien y avoir une option de verbosité ou de déboguage).
Par ailleurs, je me demande si squid n’essaye pas tout simplement de contacter le service ident en local, en pensant que les requetes transmises par DS sont locales au lieu de prendre l’ident du client distant.

ca me met un message d’erreur lorsque j’exécute les iptables :

Iptables: No chain/target/match by that name

C’est encore un autre problême:
quel noyau utilises tu ?
que donne ‘modprobe ipt_REDIRECT’ ?
et aprés cette commande, si elle s’est executée sans erreur, que donnent les iptables que je t’ai données ?

Quand j’exécute la commande modprobe ipt_REDIRECT, ca ne fais rien.

Après si je retape les iptables que tu m’as donné, il y a toujours la même erreur.

J’ai essayé comme tu m’as dit de met

proxyip = 127.0.0.1

Sur ma machine cliente, ca ne me demande plus de m’authentifier, donc c’est bon. Par contre, si je coupe Ident, j’accède directement et ca c’est pas normal.

Jen ai marre. Lol

Ca, c’est plus qu’une question d’affinage de tes ACL, tu n’es plus trés loin AMA.
Tu as regardé dans les logs, pour voir si squid en mode verbeux te donnait des infos pour comprendre sur des exemples ce qui se passe ?

Sinon, pour la redirection:
Le module noyau ipt_REDIRECT est donc bien présent, donc la cible REDIRECT existe bien pour iptables.
Donc c’est bizarre ce que tu as.
toutes les lignes donnent une erreur ?
Il n’y a pas plus d’info dans l’erreur ?
tu es certain de ne pas avoir fait de fautes de frappe recopiées sur plusieurs lignes ?[/code]

Tiens ba jte donne toutes mes ACL de Squid.conf :

ACL all src 0.0.0.0/0.0.0.0
ACL manager proto cache_object
ACL localhost src 127.0.0.1/255.255.255.0
ACL to_localhost dst 127.0.0.0/8
ACL SSL_ports port 443 563
ACL Safe_ports port 80 21 …
ACL CONNECT method CONNECT
ACL loginPassword proxy_auth REQUIRED

ACL serviceInfo ident remy02 administrateur …
ACL ServerLocaux dst …
ACL TSEVA srcdomain …
ACL Beauregard src …

http_access allow informatique
http_access allow ServerLocaux
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow TSEVA
http_access allow Beauregard
http_access allow loginPassword
http_access deny all

Est ce que tu vois un truc qui va pas ?

Oui oui la cible REDIRECT existe bien. Toutes les lignes iptables ont la meme erreur.

T’as installé quelle version de dansguardian? Si tu veux l’utiliser avec l’authentification ntlm, ça ne marche pas avec la version fournie par Debian, il faut une version patchée, et les acls de squid n’y changeront rien.