Chapitre 3. Configuration du serveur proxy de mise en cache Squid
Squid est un serveur proxy qui met en cache le contenu afin de réduire la bande passante et de charger les pages web plus rapidement. Ce chapitre décrit comment configurer Squid en tant que proxy pour les protocoles HTTP, HTTPS et FTP, ainsi que l'authentification et la restriction d'accès.
3.1. Configurer Squid comme proxy de mise en cache sans authentification
Cette section décrit une configuration de base de Squid en tant que proxy de mise en cache sans authentification. La procédure limite l'accès au proxy en fonction des plages d'adresses IP.
Conditions préalables
-
La procédure suppose que le fichier
/etc/squid/squid.conf
est tel qu'il est fourni par le paquetsquid
. Si vous avez déjà modifié ce fichier, supprimez-le et réinstallez le paquet.
Procédure
Installez le paquetage
squid
:# dnf install squid
Modifiez le fichier
/etc/squid/squid.conf
:Adaptez les listes de contrôle d'accès (ACL) de
localnet
pour qu'elles correspondent aux plages d'adresses IP qui doivent être autorisées à utiliser le proxy :acl localnet src 192.0.2.0/24 acl localnet 2001:db8:1::/64
Par défaut, le fichier
/etc/squid/squid.conf
contient la règlehttp_access allow localnet
qui autorise l'utilisation du proxy à partir de toutes les plages d'adresses IP spécifiées dans les ACLlocalnet
. Notez que vous devez spécifier toutes les ACLlocalnet
avant la règlehttp_access allow localnet
.ImportantSupprimez toutes les entrées de
acl localnet
qui ne correspondent pas à votre environnement.L'ACL suivante existe dans la configuration par défaut et définit
443
comme un port qui utilise le protocole HTTPS :acl SSL_ports port 443
Si les utilisateurs doivent pouvoir utiliser le protocole HTTPS également sur d'autres ports, ajoutez une ACL pour chacun de ces ports :
acl SSL_ports port port_number
Mettez à jour la liste des règles
acl Safe_ports
pour configurer les ports sur lesquels Squid peut établir une connexion. Par exemple, pour configurer que les clients utilisant le proxy ne peuvent accéder aux ressources que sur les ports 21 (FTP), 80 (HTTP) et 443 (HTTPS), ne conservez que les déclarationsacl Safe_ports
suivantes dans la configuration :acl Safe_ports port 21 acl Safe_ports port 80 acl Safe_ports port 443
Par défaut, la configuration contient la règle
http_access deny !Safe_ports
qui définit le refus d'accès aux ports qui ne sont pas définis dans les ACLSafe_ports
.Configurez le type de cache, le chemin d'accès au répertoire du cache, la taille du cache et d'autres paramètres spécifiques au type de cache dans le paramètre
cache_dir
:cache_dir ufs /var/spool/squid 10000 16 256
Avec ces paramètres :
-
Squid utilise le type de cache
ufs
. -
Squid stocke son cache dans le répertoire
/var/spool/squid/
. -
La mémoire cache peut atteindre
10000
MB. -
Squid crée des sous-répertoires de niveau 1
16
dans le répertoire/var/spool/squid/
. Squid crée des sous-répertoires
256
dans chaque répertoire de niveau 1.Si vous ne définissez pas de directive
cache_dir
, Squid stocke le cache en mémoire.
-
Squid utilise le type de cache
Si vous définissez un répertoire de cache différent de
/var/spool/squid/
dans le paramètrecache_dir
:Créer le répertoire du cache :
# mkdir -p path_to_cache_directory
Configurez les permissions pour le répertoire du cache :
# chown squid:squid path_to_cache_directory
Si vous utilisez SELinux en mode
enforcing
, définissez le contextesquid_cache_t
pour le répertoire de cache :# semanage fcontext -a -t squid_cache_t "path_to_cache_directory(/.*)?" # restorecon -Rv path_to_cache_directory
Si l'utilitaire
semanage
n'est pas disponible sur votre système, installez le paquetpolicycoreutils-python-utils
.
Ouvrez le port
3128
dans le pare-feu :# firewall-cmd --permanent --add-port=3128/tcp # firewall-cmd --reload
Activez et démarrez le service
squid
:# systemctl enable --now squid
Verification steps
Pour vérifier que le proxy fonctionne correctement, téléchargez une page web à l'aide de l'utilitaire curl
:
# curl -O -L "https://www.redhat.com/index.html" -x "proxy.example.com:3128"
Si curl
n'affiche aucune erreur et que le fichier index.html
a été téléchargé dans le répertoire actuel, le proxy fonctionne.