Home | Linux | Réseaux | Developpement | Divers | FAQ | Forum | Guestbook | Musique |

 

Squid

1 - Introduction

L'outils présenté dans cette section est un proxy cache, plus communément appelé proxy. Il va vous permettre d'accélérer vos connexions à internet et de filtrer les requêtes. Le proxy stocke toutes les pages qui transitent par son intermédiaire sur le disque dur où il est installé durant un délai paramétrable par l'administrateur.

2 - Installation

On peut installer Squid via les rpm fournis par votre distribution mais il est préférable de l'installer au moyen des sources disponibles à cette adresse : http:squid.nlanr.net. Pour installer Squid avec les rpm, rien de plus simple :

# rpm -ivh squid-xxx.rpm
Pour l'installer en le compilant soi-même :
\$ tar zxvf squid-xxx.tar.gz 
\$ cd squid-xxx 
\$ ./configure 
\$ make 
\$ make install

3 - Squid.conf

Un fichier de configuration type.

### Squid.conf
##
#
# port sur lequel le proxy écoute les clients web
http_port 3128
# port sur lequel le proxy dialoguera avec les 
# autres proxy du réseau 
icp-port 3130
# ne pas utiliser le cache pour les éléments dynamiques 
hierarchy_stoplist cgi-bin ? .cgi .pl
# taille de la RAM allouée au proxy
cache_mem 8 MB
# taille maximale des objets stockés par le proxy
minimum_object_size 0 KB
maximum_object_size 1024 KB 
cache_dir ufs /var/spool/squid 1000 16 256
# répertoires où seront stockés les logs de squid 
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
# localisation de la table MIME de squid
mime_table /etc/squid/mime.conf
# processus
pid_filename /var/run/squid.pid
debug_options ALL,1 
# gestion des timeouts - facultatif
connect_timeout 120 seconds
read_timeout 15 minutes
request_timeout 30 seconds
client_lifetime 1 day 
# liste d'accès
acl allowed_hosts src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
acl all src 0.0.0.0/0.0.0.0
acl PURGE method PURGE
acl ssl_ports port 443 563
acl safe_ports port 21 80 443 563 70 210 1025-65535
acl CONNECT method CONNECT
# autorisations et interdictions des listes définies ci-dessus
http_access allow manager localhost allowed_host
http_access deny !safe_ports
http_access deny CONNECT PURGE !ssl_ports
http_access deny !allowed_hosts
# e-mail du manager du cache
cache_mgr root
# nom virtuel du cache
visible_hostname proxy.tartempion.fr
# accélerer les accès
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
# rotation des fichiers de log
logfile_rotate 4
# exclusion du cache pour l'intranet de la société  
# facultatif
acl intranet dstdomain tartempion.fr
always_direct allow intranet
cache_effective_user nobody
cache_effective_group nobody

4 - Démarrage de Squid

Lors du premier démarrage de Squid il est necessaire de changer les droits de Squid en attribuant l'utilisateur nobody :

$ chown -R nobody.nobody /usr/local/squid
Créer ensuite les répertoires de cache avec la commande :
$ squid -z
Après ces manipulations on peut démarrer Squid avec la commande :
$ /usr/local/squid/squid start
Pour démarrer Squid automatiquement au lancement de la machine vous devez faire un lien de squid vers le runlevel utilisé.

5 - Filtrer les connexions et sécurité

  • Limiter la taille des requêtes pour restreindre les risques d'attaques de type "denial of service"
    request_body_max_size 64 KB
    
  • Anonymat
    client_netmask 255.255.255.0
    
  • Filtrage des mp3
    acl url_mp3 url_regex -i \.mp3$
    http_access deny url_mp3
    
  • Limiter la taille des objets importés
    reply_body_max_size 1024 KB
    
  • Filtrage protocole
    acl proto-ftp proto ftp
    http_access deny proto-ftp
    
  • Filtrer les requêtes depuis un fichier contenant des mots clés
    acl sex url_regex "/usr/local/squid/sexsite.txt"
    http_access deny sex
    

Site hébergé officiellement chez Linux France - © 1999 2005