Pages : 1
#1 Le 17/04/2006, à 15:28
- Baptiste0
Un proxy transparent ? Comment ?
Salut,
J'ai installé un filtre de contrôle parental, avec Squid et Dansguardian. Je ne sais pas à quoi sert Squid (sur le port 3128) puisque de toute façon Dansguardian ne s'utilise que sur le port 8090 (chez moi).
Dansguardian est très efficace, pour peu de mettre un proxy dans Firefox : 127.0.0.1:8090
La protection devient alors illusoire puisqu'il suffit de recocher "connexion directe à Internet" ! J'aimerais donc que lorqu'il y a connexion directe à Internet, on utilise le proxy 127.0.0.1:8090.
J'ai essayé cette règle iptables : sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8090
...Qui ne marche évidemment pas, tout passe toujours par Internet.
J'aimerai connaître la procédure exacte pour pouvoir installer un tel paramétrage... et protéger les enfants
Quelle règle(s) iptables ? Comment faire en sorte qu'elle(s) s'applique(nt) automatiquement au démarrage ?
Merci
Baptiste.
#2 Le 18/04/2006, à 19:38
- Baptiste0
Re : Un proxy transparent ? Comment ?
Je me permet d'insister un peu car c'est pour moi très important de réussir à mettre en place cette protection...
Un grand merci d'avance
Baptiste.
#3 Le 18/04/2006, à 20:19
- YBM
Re : Un proxy transparent ? Comment ?
Les navigateurs tournent bien sur d'autres machines que celle où est installée le proxy ? (c'est ce que semble indiquer le "-i eth0")
Squid est capable de comprendre ce qui lui arrive quand des connexions http lui arrivent dans les gencives, peut être pas dansguardian. Je te conseille de chaîner squid avec dansguardian et de configurer squid comme indiqué ici : http://www.tldp.org/HOWTO/TransparentProxy.html
(testé sur une Breezy il y a peu. en suivant les parties 4 et 5, deux minutes chrono)
Hors ligne
#4 Le 18/04/2006, à 22:21
- Baptiste0
Re : Un proxy transparent ? Comment ?
Pas du tout, le proxy Squid est sur la même machine que les navigateurs... le tuto tient toujours ?
#5 Le 19/04/2006, à 00:26
- YBM
Re : Un proxy transparent ? Comment ?
oui mais il ne faut pas mettre "-i eth0 " sinon ça ne concerne que les paquets qui arrivent par cette interface...
et en local c'est par "lo" pas par "eth0"
ça devrait déjà te rapprocher de la solution, reste ensuite à voir si le chaînage par squid est obligatoire (à voir dans la doc de dansguardian s'il peut fonctionner tout seul comme proxy transparent)
Hors ligne
#6 Le 19/04/2006, à 01:15
- Baptiste0
Re : Un proxy transparent ? Comment ?
oui mais il ne faut pas mettre "-i eth0 " sinon ça ne concerne que les paquets qui arrivent par cette interface...
et en local c'est par "lo" pas par "eth0"
ça devrait déjà te rapprocher de la solution, reste ensuite à voir si le chaînage par squid est obligatoire (à voir dans la doc de dansguardian s'il peut fonctionner tout seul comme proxy transparent)
Ok, merci.
Le truc c'est que si je passe par Squid (port 3128), dansguardian ne s'applique plus
je teste dès demain.
#7 Le 19/04/2006, à 01:39
- YBM
Re : Un proxy transparent ? Comment ?
il faut alors configurer squid d'une part pour qu'il accepte le mode transparent (cf le tutorial) et secondo pour qu'il se chaîne avec dansguardian (mais AVANT regarde si dansguardian fonctionne en mode transparent si on lui demande gentiment et reroute vers son numéro de port à lui si c'est le cas)
(pour le chaînage incoditionnel sur un autre proxy c'est un truc du genre
cache_peer 127.0.0.1 parent 8090 0 proxy-only default no-query
dans squid.conf)
Dernière modification par YBM (Le 19/04/2006, à 01:42)
Hors ligne
#8 Le 19/04/2006, à 11:57
- Baptiste0
Re : Un proxy transparent ? Comment ?
Je vais voir ça tout à l'heure.
Un énorme merci à toi,
Baptiste.
#9 Le 19/04/2006, à 20:52
- jr95
Re : Un proxy transparent ? Comment ?
J'ai la même config sur mes PC.
Dansguardian a bien besoin d'un proxy transparent.
J'ai installé dansguardian, squid et oidentd (pour l'authentification).
Pour la configuration de squid en proxy transparent, je me suis inspiré d'un article de Lionel Tricon dans le Linux magazine n° 65 d'octobre 2004 (une copie de cet article est disponible sur le site de Lionel Tricon http://lionel.tricon.free.fr
Il décrit la config de squid ainsi que les règles netfilter à appliquer (avec la mise à dispo du script qui va bien)
Les modifs que j'ai faite dans ce script sont:
- adaptation des variables IPT et OUT
- mise en commentaire de la définition de la variable IN
- modif/ajout des règles netfilter relatives au NAT:
${IPT} -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j ACCEPT
${IPT} -t nat -A OUTPUT -p tcp --dport 3128 -m owner --uid-owner proxy -j ACCEPT
${IPT} -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8090
Ces 3 dernières règles sont mises à la place de
${IPT} -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 3128
Le script ainsi modifié est mis dans /etc/init.d/firewall_passerelle et des liens symboliques sont faits dessus pour /etc/rc0.d/K80firewall_passerelle, /etc/rc1.d/K80firewall_passerelle, /etc/rc2.d/S20firewall_passerelle, /etc/rc3.d/S20firewall_passerelle, /etc/rc4.d/S20firewall_passerelle, /etc/rc5.d/S20firewall_passerelle et /etc/rc6.d/K80firewall_passerelle
Pour la partie squid, j'ai modifié/ajouté les lignes suivantes (c'est plus ou moins ce qui est écrit dans l'article) :
acl our_networks src 192.168.0.0/24
http_access allow our_networks
cache_effective_user proxy
cache_effective_group proxy
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
J'ai configuré dansguardian pour utiliser le port 8090 et utiliser l'authentification par IDENT (variable usernameidmethodident = on); cette authentification est faite par oidentd.
La seule modif que j'ai faite dans le configuration de oidentd est dans le fichier /etc/default/oidentd, où j'ai mis la variable OIDENT_BEHIND_PROXY=no
J'ai aussi défini des filtergroups supplémentaires ; un pour root (utilisé entre autres pour la vérif périodique des mises à jour d'ubuntu) et un par enfant.
Le groupe par défaut (n° 1) est configuré avec des droits minimaux.
Le browser et l'environnement de chaque utilisateur sont configurés pour utiliser le proxy localhost:8090
J'ai du faire cela car la redirection du port 80 vers le port 8090 de iptables fait perdre le propriétaire du port d'origine (je n'ai pas encore trouvé pourquoi et puis j'ai un peu abandonné les recherches).
Avec cette méthode, si un enfant modifie ses paramétrages proxy, il a un accès (encore plus ?) restreint à Internet.
Il a aussi fallu que je rajoute dans le fichier /etc/apt/apt.conf les lignes :
Acquire
{
// HTTP method configuration
http
{
Proxy "http://127.0.0.1:8086";
};
};
J'espère que ces informations peuvent t'aider.
Jacques.
Dernière modification par jr95 (Le 19/04/2006, à 20:53)
Hors ligne
#10 Le 25/04/2006, à 17:09
- Baptiste0
Re : Un proxy transparent ? Comment ?
oui mais il ne faut pas mettre "-i eth0 " sinon ça ne concerne que les paquets qui arrivent par cette interface...
et en local c'est par "lo" pas par "eth0"
ça devrait déjà te rapprocher de la solution, reste ensuite à voir si le chaînage par squid est obligatoire (à voir dans la doc de dansguardian s'il peut fonctionner tout seul comme proxy transparent)
Désolé pour le gros retard.
Ben déjà c'est mal parti, en ayant tapé ça :
iptables -t nat -A PREROUTING -i lo -p tcp --dport 80 -j REDIRECT --to-port 3128
Les logs de Squid ne se remplissent pas (contrairement à quand je passe par le proxy localhost:3128), donc les requêtes sans proxy ne passent pas par Squid... et si j'ai bien pigé, là, en l'occurence, elles devraient...
:--(
Merci jr95, je vais aussi tester.
#11 Le 25/04/2006, à 17:35
- Baptiste0
Re : Un proxy transparent ? Comment ?
Jacques... Merci :D !
Magnifique. Que dire... ça marche, ça marche, ça marche !!
Génial !
Un grand merci à YBM aussi, dont la solution devait être tout aussi bonne, mais on se refait pas, quand on a du mal avec l'anglais...
#12 Le 25/04/2006, à 20:28
- jr95
Re : Un proxy transparent ? Comment ?
Bonsoir,
"génial" est en bien grand mot car je viens de m'apercevoir d'un bug : rien n'empêche de modifier les browsers de manière à utiliser le port 3128 (celui de squid) au lieu du 8090. Dans ce cas, le contrôle parental n'est plus effectif .
J'ai résolu en rajoutant des règles netfilter.
Avant la redirection du port 80 vers le port 8090 dans le script firewall_passerelle, j'ai rajouté les 2 lignes suivantes :
${IPT} -t nat -A OUTPUT -p tcp --dport 3128 -m owner --uid-owner dansguardian -j ACCEPT
${IPT} -t nat -A OUTPUT -p tcp --dport 3128 -m owner ! --uid-owner root -j DROP
La première accepte les paquets venant de l'utilisateur 'dansguardian', la seconde rejette les paquets ne venant pas de 'root' (afin que apt-get & Co fonctionnent).
J'ai aussi modifié le fichier /etc/apt/apt.conf pour utiliser le port 3128 et non pas le 8090, cela ne sert pas à grand chose de passer par dansguardian pour apt-get & Co.
Jacques
Hors ligne
#13 Le 25/04/2006, à 21:34
- YBM
Re : Un proxy transparent ? Comment ?
bien vu
(je pense bien que la solution de jr95 est en fait la même que "la mienne" - celle du howto de squid en fait)
Hors ligne
#14 Le 29/04/2006, à 15:19
- Baptiste0
Re : Un proxy transparent ? Comment ?
"génial" est en bien grand mot car je viens de m'apercevoir d'un bug : rien n'empêche de modifier les browsers de manière à utiliser le port 3128 (celui de squid) au lieu du 8090. Dans ce cas, le contrôle parental n'est plus effectif .
Les enfants sont curieux, mais de là à tomber sur 3128...;)
Merci de me l'avoir signalé, je modifierais le script.
#15 Le 11/05/2006, à 17:01
- Baptiste0
Re : Un proxy transparent ? Comment ?
Ah, petite question supplémentaire : comment faire pour autoriser les connexions SSH venant de mon ordi ?
Je dois régulièrement mettre à jour leur système et vu que leurs sessions sont limitées, je suis obligé de les déconnecter, de prendre l'ordi, etc... Pas très pratique (ni très populaire ).
Une idée pour que je puisse me connecter à l'ordi sans voir ma tentive refusée ?
#16 Le 11/05/2006, à 18:57
- ppmt
Re : Un proxy transparent ? Comment ?
il faut rajouter des regles pour autoriser le port 22
moi j'ai ca dans mon iptable
-A INBOUND -p tcp -m tcp --dport 22 -j ACCEPT
-A INBOUND -p udp -m udp --dport 22 -j ACCEPT
mais il doit y avoir moyen de restreindre ca a une adresse bien precise
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
#17 Le 11/05/2006, à 19:56
- jr95
Re : Un proxy transparent ? Comment ?
J'ai rajouté dans le script la ligne suivante dans la partie ajout de règles
${IPT} -A INPUT -i ${OUT} -p tcp -m state --state NEW --destination-port 22 -j ACCEPT
On doit pouvoir restreindre à une adresse (ou une plage d'adresses) en rajoutant "-s IP"
Hors ligne
#18 Le 16/05/2006, à 20:14
- Baptiste0
Re : Un proxy transparent ? Comment ?
ppmt, ça ne marche pas, mais ta solution parfaitement, jr95.
Par contre j'obtiens ça avec apt-get :
Impossible de récupérer http://archive.ubuntu.com/ubuntu/pool/main/l/lynx/lynx_2.8.5-2ubuntu1_i386.deb Connexion à 127.0.0.1: 8086 (127.0.0.1) impossible. - connect (111 Connexion refusée)
Un rapport avec le proxy ou pas ?
Merci
Baptiste.
#19 Le 16/05/2006, à 20:31
- Baptiste0
Re : Un proxy transparent ? Comment ?
Mmm, désolé, il suffisait d'indiquer que l'on souhaitait utiliser le proxy 3128
#20 Le 16/05/2006, à 20:36
- jr95
Re : Un proxy transparent ? Comment ?
Il suffit de dire que apt utilise le port 3128 dans le fichier /etc/apt/apt.conf.
Regarde le fichier /usr/share/doc/apt/examples/configure-index.gz pour savoir quelles lignes mettre.
Edit : je suis lent à taper ce soir Tu as trouvé la réponse pendant tout ce temps.
Bonne nuit.
Jacques
Dernière modification par jr95 (Le 16/05/2006, à 20:37)
Hors ligne
#21 Le 07/10/2006, à 12:11
- Baptiste0
Re : Un proxy transparent ? Comment ?
Bonjour,
Me revoilà, avec une nouvelle question.
Ce script est parfait, mais j'aimerais qu'il ne se lance qu'avec l'utilisateur "enfants", et pas avec les autres. Ça inclue donc le démarrage à l'ouverture de la session et son arrêt à sa fermeture (extinction de l'ordi ou même fermeture de session pour lancer un autre utilisateur)...
Savez-vous comment faire ?
Merci d'avance,
Baptiste.
#22 Le 09/12/2006, à 22:41
- Lacsap
Re : Un proxy transparent ? Comment ?
Ca peut toujours servir...
http://easy.open.and.free.fr/TinyDansguard/
Pages : 1