Ceci est une ancienne révision du document !
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://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 conseil 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épartoire /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 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 :
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.