Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
12.3. Configuration Squid
Pour configurer
Squid
, ajuster les directives dans le fichier de configuration. Squid
est normalement configuré selon les prérequis d'un réseau donné en ligne de commande et en modifiant le fichier de configuration Squid
situé dans /etc/squid/squid.conf
, qui contient le minimum de configurations conseillées.
12.3.1. Configuration de base et /etc/squid/squid.conf
Procédure 12.1. Configuration de base
- Sauvegarde du fichier de configuration original.
mv /etc/squid/squid.conf /etc/squid/squid.conf.org
- Créer un nouveau fichier
/etc/squid/squid.conf
avec le contenu suivant. Modifier l'ACL (de l'anglais Access Control List) à la ligne mynetwork pour définir le réseau d'origine pour votre réseau local. Il s'agit du réseau où les systèmes client utilisent le serveur deSquid
comme proxy.Note
L'ordre des éléments qui se trouvent dans le fichier de configuration/etc/squid/squid.conf
est important carSquid
le lit à partir du début.acl mynetwork src xxx.xxx.xxx.0/24 http_access allow mynetwork #defaults acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16 acl localnet src fc00::/7 acl localnet src fe80::/10 acl SSL_ports port 443 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? coredump_dir /var/spool/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
- Démarrer le service et l'activer au démarrage :
~]#
systemctl enable squid
~]#systemctl start squid
- Si le parefeu est activé, autoriser le port de
Squid
.~]#
firewall-cmd --add-port=3128/tcp --permanent
- Configurer votre navigateur web pour qu'il utilise le serveur proxy. Cela dépendra du navigateur et de la version utilisés. Ainsi, pour configurer Firefox version 46.0.0 :
Procédure 12.2. Configurer Firefox avec le serveur Proxy
- Dans le menu Firefox situé en haut à droite, sélectionner Avancé, puis Réseau à partir des onglets, puis, sélectionner Réseau à partir des onglets situés en haut sur la barre de navigaiton.
- Dans la section Connexion, ouvrir Paramètres de configuration.
- Dans la nouvelle fenêtre qui vient de s'ouvrir, cochez Configuration de serveur proxy manuelle et saisir le serveur proxy auquel vous êtes connecté dans le champ Proxy HTTP. Si vous avez besoin de saisir un port particulier, le saisir dans le champ Port.
Pour plus d'informations sur
/etc/squid/squid.conf
, voir la page man squid(8)
.
12.3.2. Configurer Squid en tant que serveur proxy HTTP
Procédure 12.3. Configurer Squid en tant que serveur proxy HTTP
- Ajouter les lignes suivantes en haut du fichier
/etc/squid/squid.conf
pour remplacer l'exemple d'adresse IP :cache_dir ufs /var/spool/squid 500 16 256 acl my_machine src 192.0.2.21 # Replace with your IP address http_access allow my_machine
- Créerdes répertoires cache par la commande suivante :
~]#
systemctl restart squid
Squid
commence maintenant à écouter le port 3128 (port par défaut) sur toutes les interfaces de réseau de la machine. - Configurer votre navigateur, par exemple Firefox, afin d'utiliser
Squid
en tant que serveur proxy HTTP avec l'hôte comme adresse IP de la machine et le port 3128: pour plus d'informations, voir Procédure 12.2, « Configurer Firefox avec le serveur Proxy »
12.3.2.1. Configuration du port HTTP
La directive
http_port
est utilisée pour spécifier le port où Squid
va pouvoir écouter les connexions. Le comportement par défaut est d'écouter le port 3128 sur toutes les interfaces de la machine. Vous pouvez forcer Squid
à écouter plusieurs interfaces sur différents ports, sur différentes interfaces.
Exemple 12.1. Spécifier le port HTTP
Ouvrir
/etc/squid/squid.conf
et modifier la ligne qui convient. Dans cet exemple, Squid
est configuré pour écouter le port 8080.
# Squid normally listens to port 3128 http_port 8080
Le serveur
Squid
peut écouter différents ports en même temps.
Exemple 12.2. Spécifier deux ports ou davantage
Avec la configuration actuelle,
Squid
écoute à la fois le port 8080 et le port 9090:
http_port 8080 9090
Note
N'oubliez pas de démarrer à nouveau le serveur de
Squid
pour appliquer les nouvelles configurations :
~]# systemctl restart squid
Vous pouvez également spécifier la combinaison port et adresse IP dans
/etc/squid/squid.conf
. Normalement, cette approche est utilisée lorsque vous avez plusieurs interfaces sur la machine et que Squid
écoute uniquement l’interface connectée à un réseau local (LAN).
Exemple 12.3. Configurer les adresses IP
Les commandes suivantes ordonnent à
Squid
d'écouter le port 3128 sur l'interface ayant pour adresse IP 192.0.2.25:
http_port 192.0.2.25:3128
De plus, vous pouvez spécifier
http_port
en utilisant une combinaison nom d'hôte et port. Le nom d'hôte sera traduit en adresse IP par Squid
, qui écoutera alors sur le port 8080 sur cette adresse IP particuliére.
http_port myproxy.example.com:8080
Un autre aspect de la directive
http_port
est que cela peut prendre plusieurs valeurs sur des lignes distinctes. Les lignes suivantes déclencheront Squid
pour écouter trois combinaisons d'adresses IP / port différentes. C’est généralement utile lorsque vous avez des clients dans différents réseaux locaux (LAN) configurés pour utiliser des ports différents pour le serveur proxy. Modifiez le fichier /etc/squid/squid.conf
comme suit :
http_port 192.0.2.25:8080 http_port lan1.example.com:3128 http_port lan2.example.com:8081
12.3.2.2. Contrôle d'accès HTTP et ACL
Les listes des contrôle d'accès (ACL) sont les éléments de base du contrôle d'accès et sont normalement utilisées en combinaison à d'autres directives, comme
http_access
, pour contrôler l'accès à divers composants de Squid
ou ressources web.
Exemple 12.4. Contruire un ACL pour un nom de domaine
Cet exemple vous montre comment éditer l'instruction (générale) suivante :
acl example_site dstdomain example.com
comme suit. Donnez un nom à votre ACN en remplaçant example_site par un nom. Le type utilisé ici est
dstdomain
, qui indique que la valeur (le site web) est un nom de domaine.
acl FB dstdomain facebook.com
Si vous devez construire un ACL pour un certain nombre de sites web, vous pouvez :
- Écrire les valeurs en une seule ligne :
acl example_sites dstdomain example.com example.net example.org
- Écrire les valeurs sur plusieurs lignes si les valeurs augmentent beaucoup :
acl example_sites dstdomain example.com example.net acl example_sites dstdomain example.org
- Vous pouvez mettre les valeurs dans un fichier dédié à ce but, puis instruire
Squid
de lire les valeurs de ce fichier :acl example_sites dstdomain '/etc/squid/example_sites.txt'
Le contenue de/etc/squid/example_sites.txt
ressemble à ceci :# Write one value (domain name) per line example.net example.org # Temporarily remove example.org from example_sites acl example.com
Important
Les ACL doivent être combinés à des directives de contrôle d'accès pour permettre ou interdire l'accès à certaines ressources.
http_access
est une de ces directives utilisées pour donner l'accès en vue d'effectuer des transactions HTTP via Squid
:
Contrôler l'accès HTTP par les ACL
Pour autoriser ou interdire l'accès aux clients, vous devez combiner les ACL à la directive
http_access
.
Dans le fichier
/etc/squid/squid.conf
, modifiez la directive http_access
, où ACL_NAME indique les ressources auxquelles on peut accéder ou non :
http_access allow|deny [!]ACL_NAME
Exemple 12.5. Autoriser ou refuser l'accès aux clients
Les paramètres de configuration suivants donnent accès à l'hôte local :
http_access allow localhost
Cette configuration refuse l'accès à l'hôte local :
http_access deny localhost
Certains noms d'ACL commencent par un point d'exclamation. Si tel est le cas, inclure le point d'exclamation également :
http_access deny !Safe_ports