Squid3

De NCad Wiki
Aller à la navigation Aller à la recherche

Cet {{{1}}} est en cours de rédaction.

Installation

Prérequis

La configuration dépend de l'étendu du réseau à filtrer. Plus le réseau regroupera de machines, plus les performances du serveur devront être élevée. A savoir que Squid sollicite particulièrement la mémoire vive.

  • Configuration minimum
    • Processeur monocore 1 GHz
    • Mémoire 2 Go
    • OS Linux Ubuntu
  • Configuration conseillée
    • Processeur monocore 3,2 GHz
    • Mémoire 4 Go
    • OS Linux Ubuntu

Installer Squid3

L'installation de Squid3 s'effectue en deux étapes, tous d'abord installez-le depuis le gestionnaire de paquet synaptic ou en ouvrant un terminal de commande et exécutez la requête suivante :

sudo apt-get install squid3

Squid3 s'installe automatiquement, vous trouverez deux arborescence de Squid dans votre système, l'une placé dans le répertoire /etc/squid3/ et une autre dans le dossier /usr/lib/squid3/. Dans le cadre de l'installation nous nous préoccuperons uniquement du premier dossier contenant le fichier de configuration squid.conf.

Configuration de Squid3

Afin de simplifier au maximum la configuration de Squid, nous allons sauvegarder le fichier de configuration par défaut et en créer un nouveau. Le fichier de configuration contient un bon nombre d'informations sur les options de configuration mais pour des raisons de clartées le nouveau fichier sera vidé de tous commentaires et contiendra uniquement les directives essentielles.

cd /etc/squid3
cp ./squid.conf ./squid.conf.bak
touch squid.conf

Architecture du réseau

Voici l'architecture du réseau avec le plan d'adressage IP. La configuration ci-après sera basé sur le schéma suivant. Ce qu'il faut en retenir :

  • L'adressage des machines s'effectue sur le réseau 10.0.0.0/24 (10.0.0.1 à 10.0.0.254);
  • Seules les machines appartenant à ce réseau peuvent se connecter au serveur Squid.

Paramètres généraux

Pour éditer le fichier de configuration :

vim /etc/squid3/squid.conf

On définit en premier lieu le hostname qui correspond au nom de la machine :

visible_hostname = prauxyla.net.ncad.fr

Définition des ACLs

Les ACLs permettent de définir les plages IPs qui seront exploitées par le fichier de configuration dans l'édition des règles d'accès. Ces plages IPs ne sont rien d'autres que celles utilisées par le réseau (en l'occurence dans notre exemple nous n'en exploitons qu'une seule). On en définira deux :

  • la plage ip du réseau local;
  • le localhost;
  • Synthaxe : acl <nom_reseau> src <plage_ip/adresse_ip>
acl goulouxiou src 10.0.0.0/24 # Plage IP du réseau
acl prauxyla src 127.0.0.1/32  # Adresse de loopback du serveur

Maintenant nous allons lister les protocoles TCP/IP standards, toujours dans le but par la suite d'établir des règles d'accès :

  • Synthaxe : acl <nom_protocol> port <numero_de_port>
Pour des raisons de commodité nous nommons de la manière suivante les protocoles listés : Safe_ports pour les protocoles standard non sécurisé - et SSL_ports pour les protocoles sécurisés.
acl SSL_ports port 443 563 
acl Safe_ports port 80         # http 
acl Safe_ports port 20         # ftp-data 
acl Safe_ports port 21         # ftp 
acl Safe_ports port 443 563    # ssl 
acl Safe_ports port 70         # gopher 
acl Safe_ports port 210        # wais 
acl Safe_ports port 10000      # Administration 
acl Safe_ports port 1025-65535 # unregistered ports 
acl Safe_ports port 5190       # AIM
acl Safe_ports port 5222       # jabber
acl Safe_ports port 5050       # Yahoo Messenger
acl Safe_ports port 1863       # MSN Messenger
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

Définition des accès

Nous allons maintenant définir les accès. Cette définition s'effectue en trois étape :

  • on intialise la configuration;
  • on définit les autorisations;
  • on interdit le reste.
acl purge method PURGE
acl CONNECT method CONNECT

http_access deny !Safe_ports # Tous les accès aux ports non définit par la directive Safe_ports sont refusés
http_access allow localhost  # On autorise les connexions au serveur depuis le serveur lui-même
http_access allow goulouxiou # On autorise les connexions depuis les stations du réseau
http_access deny all         # On refuse tous les autres accès

Puis on termine la configuration par les lignes suivantes :

icp_access deny all

htcp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid

refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320

icp_port 3130

coredump_dir /var/spool/squid3

Fichier squid.conf

Au final, voici le fichier de configuration ainsi obtenu :

visible_hostname = prauxyla.net.ncad.fr

acl goulouxiou src 10.0.0.0/24
acl prauxyla src 127.0.0.1/32

acl SSL_ports port 443 563 
acl Safe_ports port 80         # http 
acl Safe_ports port 20         # ftp-data 
acl Safe_ports port 21         # ftp 
acl Safe_ports port 443 563    # ssl 
acl Safe_ports port 70         # gopher 
acl Safe_ports port 210        # wais 
acl Safe_ports port 10000      # Administration 
acl Safe_ports port 1025-65535 # unregistered ports 
acl Safe_ports port 5190       # AIM
acl Safe_ports port 5222       # jabber
acl Safe_ports port 5050       # Yahoo Messenger
acl Safe_ports port 1863       # MSN Messenger
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 deny !Safe_ports # Tous les accès aux ports non définit par la directive Safe_ports sont refusés
http_access allow localhost  # On autorise les connexions au serveur depuis le serveur lui-même
http_access allow goulouxiou # On autorise les connexions depuis les stations du réseau

icp_access deny all

htcp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid

refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320

icp_port 3130

coredump_dir /var/spool/squid3