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.

  • tutoriel_squid_ubuntu_intrepid.1231523390.txt.gz
  • Dernière modification: Le 18/04/2011, 14:40
  • (modification externe)