7. La redirection de page Web pour le trafic bloqué

Lorsqu'une requête HTTP correspond à une règle de blocage, elle est redirigé vers une page définie dans le fichier de configuration de squidguard. Le paquet fournit un exemple de script CGI qui renvoie une page Web type à l'utilisateur.

Voici les étapes nécessaires à la mise en œuvre de ce script.

# cd /usr/lib/cgi-bin/
# cp /usr/share/doc/squidguard/examples/squidGuard.cgi.gz .
# gzip -d squidGuard.cgi.gz
# iconv -f iso8859-1 -t utf8 /usr/lib/cgi-bin/squidGuard.cgi >squidGuard.cgi.tmp
# mv squidGuard.cgi.tmp /usr/lib/cgi-bin/squidGuard.cgi
# chmod +x squidGuard.cgi

Pour l'édition du script CGI qui est assez long, on reprend la technique du patch pour illustrer les différences entre la version délivrée avec le paquet et celle en exploitation.

$ diff -uBb squidGuard.cgi /usr/lib/cgi-bin/squidGuard.cgi

--- squidGuard.cgi      2008-11-10 18:37:30.326524640 +0100
+++ /usr/lib/cgi-bin/squidGuard.cgi     2008-11-10 18:35:19.000000000 +0100
@@ -64,10 +64,11 @@
                "nl (Nederlands),",
                "no (norsk)."
               );
-$image       = "/images/blocked.gif";                                  # RELATIVE TO DOCUMENT_ROOT
-$redirect    = "http://admin.your-domain/images/blocked.gif";          # "" TO AVOID REDIRECTION
-$proxy       = "proxy.your-domain";                                    #
-$proxymaster = "operator\@your-domain";                                #
+$image       = "/images/access_denied.jpg";                            # RELATIVE TO DOCUMENT_ROOT
+$redirect    = "http://www.stri/images/access_denied.jpg";             # "" TO AVOID REDIRECTION
+$proxy       = "proxy.stri";                                   #
+$proxymaster = "abuse\@stri";                                  #
+$lang        = "fr";
 $autoinaddr  = 2;                      # 0|1|2;
                                        # 0 TO NOT REDIRECT
                                        # 1 TO AUTORESOLVE & REDIRECT IF UNIQUE
@@ -482,14 +483,14 @@
        @supported ];
   
   %logo->{"default"}->{"url"}
-    = "http://www.squidguard.org/images/squidGuard.gif";
+    = "http://www.squidguard.org/Logos/squidGuard.gif";
   %logo->{"default"}->{"href"}
     = "http://www.squidguard.org/";
 
   %logo->{"default"}->{"url"}
-    = "http://info.your-domain/images/eto.small.gif";
+    = "http://www.squidguard.org/Logos/squidGuard.gif";
   %logo->{"default"}->{"href"}
-    = "http://www.your-domain/";
+    = "http://www.stri/";
 }
 #
 # END OF CONFIGURABLE OPTIONS
@@ -608,7 +609,10 @@
       print "       $text\n";
     }
   }
-  print "  </TITLE>\n </HEAD>\n";
+  print "  </TITLE>\n";
+  print " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
+  print " <meta name=\"Content-Language\" content=\"fr\" />\n";
+  print " </HEAD>\n";
   print " <BODY BGCOLOR=\"#FFFFFF\">\n";
   print "  <TABLE BORDER=0 ALIGN=CENTER WIDTH=100%>\n";
   print "   <TR>\n";

Les modifications sont exclusivement d'ordre cosmétique. Il s'agit juste d'afficher le logo squidguard correctement et de donner des paramètres de redirection corrects dans le contexte d'exploitation. De plus, pour faciliter l'affichage entre les différents types de navigateurs, on ajoute deux jeux de balises meta, dans l'en-tête HTML de la page Web.

Voici le résultat d'une tentative de navigation sur un site de la catégorie warez.