Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
tutoriel_squid_ubuntu_intrepid [Le 29/02/2016, 22:44] frombenny Liens internes vérifiés mais la page est mal rédigée (est-elle encore d'actualité car pas modifiée depuis 2009 hormis l'orthographe??) |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | Pour installer le proxy SQUID 2.7 + Squidguard 1.2.0 sans authentification, il faut [[:tutoriel/comment_installer_un_paquet|installer]] les paquets squid, squidguard, squid-common, squid-cgi | ||
| - | |||
| - | <code> | ||
| - | sudo 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 conseille 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épertoire /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 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> | ||
| - | sudo 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. | ||
| - | |||
| - | 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 : | ||
| - | |||
| - | [[:webmin]] | ||
| - | |||
| - | Pour installer le plugin squidGuard compatible avec webmin, il faut télécahreger le module : | ||
| - | |||
| - | <code> | ||
| - | cd ~ | ||
| - | wget http://www.niemueller.de/webmin/modules/squidguard/squidguard-0.91.2.wbm.gz | ||
| - | </code> | ||
| - | |||
| - | lorsque vous êtes connecté à webmin, cliquer sur webmin : | ||
| - | |||
| - | {{:webmin.png|}} | ||
| - | |||
| - | Puis configuration de Webmin et enfin cliquez sur modules webmin : | ||
| - | |||
| - | {{:webmin2.png|}} | ||
| - | |||
| - | il faut ensuite aller chercher le module a installer : | ||
| - | |||
| - | {{:webmin3.png|}} | ||
| - | |||
| - | puis cliquer sur "installer le module" : | ||
| - | |||
| - | {{:webmin4.png|}} | ||
| - | |||
| - | Déconnectez-vous puis reconnectez vous à webmin. | ||
| - | |||
| - | Vous devriez avoir maintenant dans la liste "Serveur proxy Squid" & "SquidGuard" | ||
| - | |||
| - | {{:webmin5.png|}} | ||
| - | |||
| - | 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 : | ||
| - | <code> | ||
| - | /usr/lib/cgi-bin/cachemgr.cgi | ||
| - | </code> | ||
| - | |||
| - | {{:webmin6.png|}} | ||
| - | |||
| - | Puis sauvegarder : | ||
| - | |||
| - | {{:webmin7.png|}} | ||
| - | |||
| - | 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" | ||
| - | |||
| - | {{:webmin8.png|}} | ||
| - | |||
| - | 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 : | ||
| - | |||
| - | <code> | ||
| - | ln -s /var/lib/squidguard/db/ /var/lib/squidguard/db/blacklists | ||
| - | </code> | ||
| - | |||
| - | puis : | ||
| - | |||
| - | <code> | ||
| - | chown proxy.proxy /var/lib/squidguard/db/blacklists | ||
| - | </code> | ||
| - | |||
| - | Actualisez l'interface webmin de squidguard et vous devriez voir apparaitre toutes les catégories. | ||
| - | |||
| - | |||
| - | |||