Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
tutoriel_squid_ubuntu_intrepid [Le 09/01/2009, 18:49] 213.95.41.13 créée |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | Pour installer le proxy SQUID 2.7 + Squidguard 1.2.0 sans authentification, il faut [[http://doc.ubuntu-fr.org/tutoriel/comment_installer_un_paquet|installer]] les paquets squid, squidguard, squid-common, squid-cgi | ||
| - | |||
| - | <code> | ||
| - | sudo [[apt://apt-get install squid squidguard squid-common squid-cgi]] | ||
| - | </code> | ||
| - | |||
| - | 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 : | ||
| - | |||
| - | <code> | ||
| - | cd /etc/squid | ||
| - | sudo cp squid.conf squid.conf.old | ||
| - | </code> | ||
| - | |||
| - | puis exécuter la commande suivante pour supprimer les commentaires : | ||
| - | |||
| - | <code> | ||
| - | sudo sed '/^\#/d' /etc/squid/squid.conf > /etc/squid/squid.conf | ||
| - | </code> | ||
| - | |||
| - | (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 : | ||
| - | |||
| - | <file> | ||
| - | 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 | ||
| - | </file> | ||
| - | |||
| - | Pour rendre squid transparent, il faut modifier la ligne : | ||
| - | <code> | ||
| - | http_port 3128 | ||
| - | </code> | ||
| - | en | ||
| - | <code> | ||
| - | http_port 3128 transparent | ||
| - | </code> | ||
| - | |||
| - | il faut aussi gérer la redirection vers squidGuard en ajoutant a la fin du fichier squid.conf ces 2 lignes : | ||
| - | |||
| - | <code> | ||
| - | redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf | ||
| - | redirect_children 10 | ||
| - | </code> | ||
| - | |||
| - | La configuration de Squid est terminée, essayez de lancer squid avec les commandes suivantes : | ||
| - | |||
| - | <code> | ||
| - | squid -z | ||
| - | </code> | ||
| - | puis : | ||
| - | <code> | ||
| - | sudo /etc/init.d/squid start | ||
| - | </code> | ||
| - | |||
| - | Pour vérifier que squid a bien démarré, tapez la commande : | ||
| - | |||
| - | <code> | ||
| - | ps -A | grep squid | ||
| - | </code> | ||
| - | |||
| - | vous devriez obtenir ceci : | ||
| - | <code> | ||
| - | xxxx ? 00:00:00 squid | ||
| - | xxxx ? 00:00:00 squid | ||
| - | </code> | ||
| - | Sinon allez voir dans les fichiers de logs suivants les erreurs que squid retourne : | ||
| - | <code> | ||
| - | less +F /var/log/messages | ||
| - | |||
| - | less +F /var/log/daemon.log | ||
| - | |||
| - | less +F /var/log/squid/cache.log | ||
| - | </code> | ||
| - | |||
| - | Nous allons maintenant télécharger une blackliste qui sera ensuite intégrée à squidGuard grâce aux commandes suivantes : | ||
| - | |||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | 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 : | ||
| - | |||
| - | <code> | ||
| - | sudo cd /etc/squid | ||
| - | sudo cp squidGuard.conf squidGuard.conf.old | ||
| - | </code> | ||
| - | |||
| - | Voici une configuration d'exemple que je vous laisse adapter a vos besoins : | ||
| - | |||
| - | <file> | ||
| - | # | ||
| - | # 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 | ||
| - | } | ||
| - | } | ||
| - | # ------------------------------------------------------------ | ||
| - | </file> | ||
| - | |||
| - | Il faut désormais que suidGuard construise sa base de données avec la blackliste que nous avons téléchargé : | ||
| - | |||
| - | <code> | ||
| - | sudo squidGuard -C all | ||
| - | </code> | ||
| - | |||
| - | 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é) : | ||
| - | |||
| - | <code> | ||
| - | ps aux | grep squid | ||
| - | </code> | ||
| - | |||
| - | vous devriez obtenir ceci : | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | 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 : | ||
| - | |||
| - | <code> | ||
| - | /etc/squid /var/log/squid | ||
| - | /var/spool/squid | ||
| - | /usr/lib/squid | ||
| - | /usr/sbin/squid | ||
| - | /var/lib/squidguard | ||
| - | </code> | ||
| - | |||
| - | avec la commande : | ||
| - | <code> | ||
| - | sudo chown -R proxy.proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard | ||
| - | </code> | ||
| - | |||
| - | Il faut maintenant rédémarrer squid avec les commandes : | ||
| - | <code> | ||
| - | sudo /etc/init.d/squid stop | ||
| - | </code> | ||
| - | puis : | ||
| - | |||
| - | <code> | ||
| - | sudo /etc/init.d/squid start | ||
| - | </code> | ||
| - | |||
| - | Vous devriez obtenir : | ||
| - | <code> | ||
| - | * Starting Squid HTTP proxy squid [OK] | ||
| - | </code> | ||
| - | Vous pouvez vérifier que squid s'est bien lancé à l'aide des commandes citées précedemment. | ||
| - | |||