12.3. Configuration Squid
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, puis à partir des onglets, puis, sélectionner à partir des onglets situés en haut sur la barre de navigaiton.
- Dans la section Connexion, ouvrir .
- 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.
/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
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
/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
Squid
peut écouter différents ports en même temps.
Exemple 12.2. Spécifier deux ports ou davantage
Squid
écoute à la fois le port 8080 et le port 9090:
http_port 8080 9090
Note
Squid
pour appliquer les nouvelles configurations :
~]# systemctl restart squid
/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
Squid
d'écouter le port 3128 sur l'interface ayant pour adresse IP 192.0.2.25:
http_port 192.0.2.25:3128
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
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
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
acl example_site dstdomain example.com
dstdomain
, qui indique que la valeur (le site web) est un nom de domaine.
acl FB dstdomain facebook.com
- É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
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
http_access
.
/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
http_access allow localhost
http_access deny localhost
http_access deny !Safe_ports