Pour installer le proxy SQUID 2.7 + Squidguard 1.2.0 sans authentification, il faut installer les paquets squid, squidguard, squid-common, squid-cgi
sudo apt-get install squid squidguard squid-common squid-cgi
Par défaut, vous aurez dans /etc/squid 2 fichiers de configuration :
squid.conf & squidGuard.conf
Le fichier squid.conf est énormément commenté, je vous conseille de faire un copie de sauvegarde en exécutant :
cd /etc/squid sudo cp squid.conf squid.conf.old
puis exécuter la commande suivante pour supprimer les commentaires :
sudo sed '/^\#/d' /etc/squid/squid.conf > /etc/squid/squid.conf
(au cas ou le fichier squid.conf d'origine serait effacé, il est disponible dans le répertoire /usr/share/doc/squid/examples/squid.conf)
Nous obtenons normalement le fichier suivant :
acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost icp_access allow localnet icp_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? access_log /var/log/squid/access.log squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 acl apache rep_header Server ^Apache broken_vary_encoding allow apache extension_methods REPORT MERGE MKACTIVITY CHECKOUT hosts_file /etc/hosts coredump_dir /var/spool/squiddeny manager
Pour rendre squid transparent, il faut modifier la ligne :
http_port 3128
en
http_port 3128 transparent
il faut aussi gérer la redirection vers squidGuard en ajoutant a la fin du fichier squid.conf ces 2 lignes :
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf redirect_children 10
La configuration de Squid est terminée, essayez de lancer squid avec les commandes suivantes :
sudo squid -z
puis :
sudo /etc/init.d/squid start
Pour vérifier que squid a bien démarré, tapez la commande :
ps -A | grep squid
vous devriez obtenir ceci :
xxxx ? 00:00:00 squid xxxx ? 00:00:00 squid
Sinon allez voir dans les fichiers de logs suivants les erreurs que squid retourne :
less +F /var/log/messages less +F /var/log/daemon.log less +F /var/log/squid/cache.log
Nous allons maintenant télécharger une blackliste qui sera ensuite intégrée à squidGuard grâce aux commandes suivantes :
cd ~ wget http://cri.univ-tlse1.fr/blacklists/download/blacklists.tar.gz sudo tar zxvf blacklists.tar.gz -C /var/lib/squidguard/db/ sudo su cd /var/lib/squidguard/db mv blacklists/* . rm -rf blacklists
il faut maintenant éditer le fichier /etc/squid/squidGuard.conf pour lui insérer sa configuration, mais nous allons faire un copie de sauvegarde avant :
sudo cd /etc/squid sudo cp squidGuard.conf squidGuard.conf.old
Voici une configuration d'exemple que je vous laisse adapter a vos besoins :
# # Configuration File for SquidGuard # dbhome /var/lib/squidguard/db logdir /var/log/squid # ------------------------------------------------------------ # Definition de la base de données de filtrage utilisée # ------------------------------------------------------------ dest adult { domainlist adult/domains urllist adult/urls } dest publicite { domainlist publicite/domains urllist publicite/urls } dest warez { domainlist warez/domains urllist warez/urls } dest porn { domainlist porn/domains urllist porn/urls } dest violence { domainlist violence/domains urllist violence/urls } # ajoutez ici les thèmes supplémentaires de votre choix présents dans la blacklist de la façon suivante # dest <nom du thème> { # domainlist <nom du thème>/domains # urllist <nom du thème>/urls # } # ------------------------------------------------------------ # Definition des ACL # ------------------------------------------------------------ acl { default { # les thèmes supplémentaires sont à ajouter avant le mot-clé all par !<nom du thème> pass !porn !adult !publicite !warez !violence all redirect http://roozeec.free.fr/interdiction.html } } # ------------------------------------------------------------
Il faut désormais que suidGuard construise sa base de données avec la blackliste que nous avons téléchargé :
sudo squidGuard -C all
Pour fonctionner, squid et squidGuard ont besoin d'accès a différents répertoires, pour donner ces accès, nous avons besoin de savoir avec quel utilisateur est lancé le processus squid grâce à la commande suivante (lorsque Squid est démarré) :
ps aux | grep squid
vous devriez obtenir ceci :
root xxxx 0.0 0.0 4976 672 ? Ss 18:12 0:00 squid -sY -f /etc/squid/squid.conf proxy xxxx 0.0 0.1 7620 5008 ? S 18:12 0:00 (squid) -sY -f /etc/squid/squid.conf
nous pouvons donc constater ici que squid est lancé avec l'utilisateur “proxy”
Il faut donc donner les accès a l'utilisateur proxy aux répertoires suivants :
/etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard
avec la commande :
sudo chown -R proxy.proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard
Il faut maintenant rédémarrer squid avec les commandes :
sudo /etc/init.d/squid stop
puis :
sudo /etc/init.d/squid start
Vous devriez obtenir :
* Starting Squid HTTP proxy squid [OK]
Vous pouvez vérifier que squid s'est bien lancé à l'aide des commandes citées précedemment.
Si vous souhaitez administrer plus facilement squid et squidGuard, vous pouvez aussi vous servir de webmin et du module squidGuard.
Pour installer webmin, vous pouvez suivre ce tuto :
http://doc.ubuntu-fr.org/webmin
Pour installer le plugin squidGuard compatible avec webmin, il faut télécahreger le module :
cd ~ wget http://www.niemueller.de/webmin/modules/squidguard/squidguard-0.91.2.wbm.gz
lorsque vous êtes connecté à webmin, cliquer sur webmin :
Puis configuration de Webmin et enfin cliquez sur modules webmin :
il faut ensuite aller chercher le module a installer :
puis cliquer sur “installer le module” :
Déconnectez-vous puis reconnectez vous à webmin.
Vous devriez avoir maintenant dans la liste “Serveur proxy Squid” & “SquidGuard”
Pour commencer, il faut cliquer sur “Serveur proxy Squid” puis cliquer sur “configuration du module”
Il faut modifier la ligne “Chemin de l'exécutable 'cachemgr.cgi'” en insérant :
/usr/lib/cgi-bin/cachemgr.cgi
Puis sauvegarder :
Vous pouvez à partir de cette interface graphique configurer les listes d'accès (ACL) et d'autres options des Squid.
Maintenant, si vous cliquez sur “SquidGuard”, vous avez la possibilité de voir la blackliste que nous avons insérer auparavant. cliquez sur “listes noires”
il apparait ici les différentes catégories de sites répertoriés. Si Webmin affiche qu'aucune liste noire n'est présente, il faut exécuter la commande :
ln -s /var/lib/squidguard/db/ /var/lib/squidguard/db/blacklists
puis :
chown proxy.proxy /var/lib/squidguard/db/blacklists
Actualisez l'interface webmin de squidguard et vous devriez voir apparaitre toutes les catégories.