Safesearch avec squid3(0.4.1.1)+squidGuard(1.9.15) ne fonctionne pas



  • Bonjour,

    Ma configuration proxy fonctionne correctement sur le blocage des sites interdits.
    Je me suis apercu que l'option "safesearch" proposé dans la configuration de squidguard ne fonctionne pas.

    Quelq'un a-t-il une solution ?

    Investigation

    Depuis le shell, j'ai testé le fonctionnement de squidguard

    
    echo "http://www.google.fr/search?q=tutu 192.168.1.121/- - GET" | /usr/pbi/squidguard-amd64/bin/squidGuard -c /usr/pbi/squidguard-amd64/etc/squidGuard/squidGuard.conf
    http://www.google.fr/search?q=tutu&safe=active 192.168.1.121/- - GET
    
    

    On retrouve bien le force safe dans l'url mais suivi d'information d'indentification.

    J'ai eu ce souci sous debian avec squid 3.4.3 et je l'ai résolu en ajoutant un zapchain afin de supprimer les éléments après l'espace.

    
    echo "http://www.google.fr/search?q=tutu 192.168.1.121/- - GET" | /etc/squid3/zapchain1 "/usr/bin/squidGuard -c /etc/squid/squidGuard.conf" "/usr/bin/perl /etc/squid3/squid-redirector.pl"
    http://www.google.fr/search?q=tutu&safe=strict
    
    

    Avec cette méthode workaround, quelle est l'endroit le plus approprié pour rajouter ces scripts perls afin de tester sous PF ?

    Merci d'avance pour votre aide



  • Je viens de voir dans la documentation squid (http://www.squid-cache.org/Doc/config/url_rewrite_program/)

    
    After processing the request the helper must reply using the following format:
    
    	  [channel-ID <sp>] result [ <sp>kv-pairs]
    
    	The result code can be:
    
    	  OK status=30N url="..."
    		Redirect the URL to the one supplied in 'url='.
    		'status=' is optional and contains the status code to send
    		the client in Squids HTTP response. It must be one of the
    		HTTP redirect status codes: 301, 302, 303, 307, 308.
    		When no status is given Squid will use 302.
    
    	  OK rewrite-url="..."
    		Rewrite the URL to the one supplied in 'rewrite-url='.
    		The new URL is fetched directly by Squid and returned to
    		the client as the response to its request.
    
    	  OK
    		When neither of url= and rewrite-url= are sent Squid does
    		not change the URL.
    
    	  ERR
    		Do not change the URL.
    
    	  BH
    		An internal error occurred in the helper, preventing
    		a result being identified. The 'message=' key name is
    		reserved for delivering a log message.</sp></sp> 
    

    Je testerai ce soir une règle rewrite, sans passer par safesearch, du type

    
    s@(google\..*/search?.*q=.*)@OK rewrite-url="\1\&safe=active"@i
    
    

    Si jamais quelqu'un a déjà testé !



  • Bonjour,

    Comme il n'y a pas foule et après un week-end de test avec différentes manières, je vous livre ma solution (a valider dans le temps)

    Utilisation d'un script perl zapchain impossible, crash de squid en permanence même en préfixant avec /usr/bin/perl .
    Donc custom du rewrite de squidGuard, ci-dessous un exemple (je vous laisse l'appliquer aux autres moteurs de recherche en les rajoutant dans safesearch2)

    1. Création d'un rewrite safesearch2 (récupéré les règles du safesearch si vous manquez d'inspiration)

    Target URL or regular expression = (.yahoo..*/search.p=.)
    Replace to URL = status="302" rewrite-url="\1&vm=r"
    Opt = nocase (! pas de redirection)

    Sur le groupe squidGuard devant avoir l'option safesearch
    2) désactivation "Use SafeSearch engine"
    3) Utiliser la règle Rewrite safesearch2
    4) Appliquer les modifications "General Settings/apply"
    5)Faire un arrêt/relance de squid3 (des fois marche sans mais cela dépend de l'utilisation des process)

    Si des experts peuvent confirmer, et dans ce cas apporter ces modifications dans le package pour éviter de recréer un rewrite  ::)

    Bon test



  • Squid étant un package et donc pas nativement intégré à pfSense, la plupart des experts de la section française te suggèrera, parfois à juste titre, de ne pas l'utiliser.

    Par ailleurs, si tu parcours la section anglaise du forum, tu noteras qu'il y a quand même pas mal de bugs avec Squid 3

    En revanche, si tu souhaites contribuer à l’amélioration de ce package, le plus simple et plus efficace est probablement de prendre directement contact avec Marcelloc qui, sauf erreur, maintient ce package.

    ;)



  • Squid est un package, donc ne fait pas directement partie de pfSense.
    Il est clair qu'en contexte professionnel, et compte tenu de la nature TRES différente firewall/proxy, il FAUT dédier une machine au proxy.

    Ici on voit une 'astuce' pour Squid/SquidGuard qui exige Perl. Perl est-il partie de pfSense ? Sans doute non !
    Donc la réponse est déjà connue !

    Finalement cet exemple montre, lui aussi, la nécessité de séparer firewall et proxy ! Le besoin éventuel de rajouter un 'truc' au proxy !



  • @jdh:

    Ici on voit une 'astuce' pour Squid/SquidGuard qui exige Perl. Perl est-il partie de pfSense ? Sans doute non !

    Je pense que tu as lu trop vite  ::)

    Utilisation d'un script perl zapchain impossible, crash de squid en permanence même en préfixant avec /usr/bin/perl .



  • dans ce cas apporter ces modifications dans le package

    Un package c'est déjà un problème de sécurité. Les modifications dans un package ce n'est qu'un problème de plus.
    J'ai déjà expliqué ce point de vie maintes fois, je ne vais pas recommencer. https://forum.pfsense.org/index.php?topic=90750.0



  • Je n'ai aucunement dis le contraire ici  :-\ et ce n'est pas l'objectif de ce post.

    J'utilise cette fonctionnalité a des fins personnels @HOME, 4 utilisateurs…
    Maintenant je voulais juste appporter mon petit cailloux a l'édifice afin d'aider ceux qui sont dans le même besoin. La fonctionnalité proposée de base n'est pas fonctionnelle.
    Cette ré-écriture d'URL est utilisé uniquement par 2 profils (enfants), le fait de mettre en place un safesearch me permet d'éviter qu'ils tombent sur un contenu qui n'est pas de leur age en plus de squidguard.



  • Je pense que tu as lu trop vite

    Non j'ai bien lu … les infos fournies, et je corrige mes informations :
    pfSense dispose de Perl (testé avec which perl -> /usr/bin/perl puis perl -v) !

    Ici on voit une 'astuce' pour Squid/SquidGuard qui exige Perl. Perl est-il partie de pfSense ? Sans doute non !

    Que je remplace par

    Ici on voit un correctif possible à une astuce SquidGuard/Squid.

    Cela ne change guère mon point de vue sur les packages (au contraire) : vous pouvez suggérer votre correctif au mainteneur du package.

    Le formulaire aurait permis aux lecteurs de comprendre, dès le début, que votre problématique était dans un contexte "Home".
    On peut alors comprendre que vous essayez de réduire le nombre de machines … dans VOTRE contexte.

    Mais, dans un contexte pro, une machine dédiée au proxy (souvent virtualisée) pourra être customisée pour répondre à ce type de problématique ... sans aucun impact sur l'efficacité du firewall.

    NB : bravo pour votre test avec 'echo ".... GET" | squidguard' : c'est le test qu'il faut faire pour valider votre config squidguard  (et que je fais quand je créé un proxy dédié). Vous avez cherché !


Log in to reply