Squid - Serveur mandataire (proxy)

Squid is a full-featured web proxy cache server application which provides proxy and cache services for Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP), and other popular network protocols. Squid can implement caching and proxying of Secure Sockets Layer (SSL) requests and caching of Domain Name Server (DNS) lookups, and perform transparent caching. Squid also supports a wide variety of caching protocols, such as Internet Cache Protocol (ICP), the Hyper Text Caching Protocol (HTCP), the Cache Array Routing Protocol (CARP), and the Web Cache Coordination Protocol (WCCP).

Le serveur de cache proxy Squid est une excellente solution pour une variété de nécessités de cache et de proxy, de l'échelle de la succursale aux réseaux d'entreprise, tout en offrant des mécanismes de contrôle d' accès granulaires et complets, et une supervision de paramètres critiques via le protocole Simple Network Manager Protocol (SNMP). Lors de la sélection d'un système informatique pour une utilisation de serveur proxy cache Squid avec de nombreux utilisateurs, assurez vous de le configurer avec une large quantité de mémoire vive, étant donné que Squid utilise un cache mémoire pour des performances optimales.

Installation

Pour installer le serveur Squid, utilisez la commande suivante dans un terminal :

sudo apt install squid

Configuration

Squid se configure en modifiant les directives contenues dans le fichier /etc/squid/squid.conf. Les exemples suivants illustrent certaines modifications de directives qui peuvent affecter le comportement du serveur Squid. Pour une configuration plus avancée de Squid, voyez la section références.

Avant de modifier le fichier de configuration, vous devriez faire une copie du fichier original et le protéger en écriture, vous aurez alors les paramètres par défaut en référence à utiliser si besoin. Faites cette copie et protégez la de l'écriture en utilisant la commande suivante :

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original

  • Pour que votre serveur Squid écoute sur le port TCP 8888 à la place du port par défaut 3128, modifiez la directive http_port comme ceci :

    http_port 8888
    
  • Pour donner un nom d'hôte spécifique à votre serveur Squid, changez la directive visible_hostname. Ce nom d'hôte n'a pas forcément besoin d'être le même que le nom d'hôte de la machine. Dans cet exemple il est défini comme étant weezie.

    visible_hostname weezie
    
  • En utilisant le contrôle d'accès de Squid, vous pouvez configurer l'accès aux services Internet gérés par le proxy Squid de telle sorte qu'ils ne soient disponibles que pour les utilisateurs ayant certaines adresses IP. À titre d'exemple, nous allons détailler le cas d'un accès uniquement aux utilisateurs du sous-réseau 192.168.42.0/24 :

    Ajoutez ce qui suit en bas de la section ACL de votre fichier /etc/squid/squid.conf :

    acl fortytwo_network src 192.168.42.0/24
    

    Ajoutez ensuite ce qui suit, en haut de la section http_access de votre fichier /etc/squid/squid.conf :

    http_access allow fortytwo_network
    
  • En utilisant les excellentes fonctionnalités de contrôle d'accès de Squid, vous pouvez configurer l'utilisation des services Internet par proxy Squid pour n'être disponibles que pendant les heures normales de bureau. Par exemple, nous allons illustrer l'accès par les employés d'une entreprise qui opère entre 09h00 et 17h00, du lundi au vendredi, et qui utilise le sous-réseau 10.1.42.0/24 :

    Ajoutez ce qui suit en bas de la section ACL de votre fichier /etc/squid/squid.conf :

    acl biz_network src 10.1.42.0/24
    acl biz_hours time M T W T F 9:00-17:00
    

    Ajoutez ensuite ce qui suit, en haut de la section http_access de votre fichier /etc/squid/squid.conf :

    http_access allow biz_network biz_hours
    

Après avoir effectué les changements dans le fichier /etc/squid/squid.conf, enregistrez le fichier et redémarrez le serveur squid afin que les modifications soient prises en compte, en utilisant la commande suivante dans une console :

sudo systemctl restart squid.service

If formerly a customized squid3 was used that set up the spool at /var/log/squid3 to be a mountpoint, but otherwise kept the default configuration the upgrade will fail. The upgrade tries to rename/move files as needed, but it can't do so for an active mountpoint. In that case please either adapt the mountpoint or the config in /etc/squid/squid.conf so that they match.

The same applies if the include config statement was used to pull in more files from the old path at /etc/squid3/. In those cases you should move and adapt your configuration accordingly.