Squid est un proxy Web HTTP de mise en cache et de transfert. Calmar possède de nombreuses fonctionnalités et est utilisé dans diverses situations telles que l'accélération du serveur Web en mettant en cache les requêtes répétées, la mise en cache des recherches Web et DNS, le filtrage du trafic, le blocage des sites Web, etc. Il est écrit en C++ et distribué sous GNU GPL licence.
Calmar est considéré comme le logiciel de contrôle de contenu le plus fiable et a été utilisé par de nombreuses organisations depuis les 2 dernières décennies.
Dans cet article, nous installons le serveur proxy Squid sur Rocky Linux 8 ou AlmaLinux 8. Cependant, il existe trop d'articles similaires déjà disponibles sur le Web. Mais nous écrivons cet article pour inclure les étapes mineures (mais importantes), qui sont généralement négligées par les autres auteurs.
Cet article met fortement l'accent sur l'installation et la configuration initiale du serveur proxy Squid sur Rocky Linux 8 ou AlmaLinux 8. Par conséquent, si vous souhaitez configurer certains paramètres avancés dans le proxy Squid, nous vous recommandons fortement d'acheter Squid Proxy Server 3.1 :Guide du débutant par Packt Publishing .
Spécification de l'environnement :
Nous avons provisionné une machine virtuelle Rocky Linux 8 ou AlmaLinux 8 avec les spécifications suivantes.
- Processeur – 3,4 Ghz (1 cœur)
- Mémoire – 1 Go
- Stockage – 20 Go
- Système d'exploitation – Rocky Linux 8, AlmaLinux 8
- Nom d'hôte – calmar-proxy-01.exemple.com
- Adresse IP – 192.168.116.214/24
Installation du proxy Web Squid sur Rocky Linux 8 ou AlmaLinux 8 :
Connectez-vous avec squid-proxy-01.example.com en utilisant ssh en tant que racine utilisateur.
Le progiciel Squid est disponible dans les référentiels yum standard, par conséquent, nous installons le proxy Squid en utilisant yum commande.
[[email protected] ~]# yum install -y squid
...
Installed:
squid.x86_64 7:3.5.20-12.el7_6.1
Dependency Installed:
libecap.x86_64 0:1.0.0-1.el7
perl.x86_64 4:5.16.3-294.el7_6
perl-Carp.noarch 0:1.26-244.el7
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBI.x86_64 0:1.627-4.el7
perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Digest.noarch 0:1.17-245.el7
perl-Digest-MD5.x86_64 0:2.52-3.el7
perl-Encode.x86_64 0:2.51-7.el7
perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7
perl-File-Temp.noarch 0:0.23.01-3.el7
perl-Filter.x86_64 0:1.49-3.el7
perl-Getopt-Long.noarch 0:2.40-3.el7
perl-HTTP-Tiny.noarch 0:0.033-3.el7
perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PathTools.x86_64 0:3.40-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
perl-Pod-Escapes.noarch 1:1.04-294.el7_6
perl-Pod-Perldoc.noarch 0:3.20-4.el7
perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7
perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-4.el7
perl-Storable.x86_64 0:2.45-3.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7
perl-Time-HiRes.x86_64 4:1.9725-3.el7
perl-Time-Local.noarch 0:1.2300-2.el7
perl-constant.noarch 0:1.27-2.el7
perl-libs.x86_64 4:5.16.3-294.el7_6
perl-macros.x86_64 4:5.16.3-294.el7_6
perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
squid-migration-script.x86_64 7:3.5.20-12.el7_6.1
Complete!
Activez et démarrez le service proxy Squid.
[[email protected] ~]# systemctl enable --now squid.service
Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.
Autoriser le service proxy Squid dans le pare-feu Rocky Linux 8 ou AlmaLinux 8.
[[email protected] ~]# firewall-cmd --permanent --add-service=squid
success
[[email protected] ~]# firewall-cmd --reload
success
Configurer le proxy Web Squid sur Rocky Linux 8 ou AlmaLinux 8 :
Le fichier de configuration global pour le proxy Web Squid est /etc/squid/squid.conf . Nous pouvons le personnaliser selon nos besoins.
[[email protected] ~]# vi /etc/squid/squid.conf
Ajoutez-y les directives suivantes.
dns_v4_first on
Redémarrez le service proxy Squid pour charger les modifications.
[[email protected] ~]# systemctl restart squid
Configurer le navigateur du client pour utiliser Squid Proxy :
Démarrez le navigateur client et ajoutez notre proxy Squid dans ses paramètres.
Pour ce faire, ouvrez Internet Explorer et accédez à Options Internet .
Accédez à Connexions Tab et cliquez sur Paramètres LAN .
Entrez l'adresse IP et le port du proxy Squid dans la boîte de dialogue ci-dessus.
Cliquez sur OK pour quitter les options Internet .
Parcourez https://ahmermansoor.blogspot.com dans Internet Explorer .
Le site Web ci-dessus a été servi par notre serveur proxy Squid.
Configurer l'authentification client Squid :
Nous pouvons utiliser l'authentification de base HTTP pour configurer l'authentification basée sur l'utilisateur pour le serveur proxy Squid.
Installez httpd-tools package utilisant yum commande.
[[email protected] ~]# yum install -y httpd-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ges.net.pk
* extras: mirrors.ges.net.pk
* updates: mirrors.ges.net.pk
Resolving Dependencies
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-90.el7.centos will be installed
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-tools-2.4.6-90.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-tools-2.4.6-90.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-5.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
httpd-tools x86_64 2.4.6-90.el7.centos base 91 k
Installing for dependencies:
apr x86_64 1.4.8-5.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
Transaction Summary
================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 286 k
Installed size: 584 k
Downloading packages:
(1/3): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm | 91 kB 00:00
(2/3): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:01
(3/3): apr-1.4.8-5.el7.x86_64.rpm | 103 kB 00:02
--------------------------------------------------------------------------------
Total 96 kB/s | 286 kB 00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : apr-1.4.8-5.el7.x86_64 1/3
Installing : apr-util-1.5.2-6.el7.x86_64 2/3
Installing : httpd-tools-2.4.6-90.el7.centos.x86_64 3/3
Verifying : apr-1.4.8-5.el7.x86_64 1/3
Verifying : httpd-tools-2.4.6-90.el7.centos.x86_64 2/3
Verifying : apr-util-1.5.2-6.el7.x86_64 3/3
Installed:
httpd-tools.x86_64 0:2.4.6-90.el7.centos
Dependency Installed:
apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7
Complete!
Créez le fichier de mot de passe et ajoutez squiduser utilisateur.
[[email protected] ~]# htpasswd -c /etc/squid/passwd squiduser
New password:
Re-type new password:
Adding password for user squiduser
Changer le propriétaire du passwd fichier.
[[email protected] ~]# chown squid.squid /etc/squid/passwd
Maintenant, modifiez le fichier de configuration de Squid et ajoutez les paramètres d'authentification du client.
[[email protected] ~]# vi /etc/squid/squid.conf
Ajoutez les directives suivantes après les ACL des ports.
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
Redémarrez le service proxy Squid pour que les modifications prennent effet.
[[email protected] ~]# systemctl restart squid
Ouvrez l'URL https://ahmermansoor.blogspot.com dans le navigateur du client.
Cette fois, il demande l'authentification.
Tutoriel sur l'utilisation de la commande Timeout sous Linux
Création d'une liste noire personnalisée pour bloquer les sites Web via Squid Proxy :
Créez un fichier de liste noire pour bloquer les sites Web.
[[email protected] ~]# vi /etc/squid/blacklist
et ajoutez-y les URL suivantes.
.yahoo.com
.facebook.com
Modifiez le fichier de configuration du proxy Squid pour ajouter des paramètres de liste noire.
[[email protected] ~]# vi /etc/squid/squid.conf
ajoutez les directives suivantes après les ACL des ports.
acl bad_urls dstdomain "/etc/squid/blacklist"
http_access deny bad_urls
Redémarrez le service proxy Squid pour charger les modifications.
[[email protected] ~]# systemctl restart squid
Parcourir l'URL http://www.yahoo.com dans le navigateur du client.
Vous pouvez voir que le http://www.yahoo.com a été bloqué par notre serveur proxy Squid.
Nous avons installé avec succès le serveur proxy Squid sur Rocky Linux 8 ou AlmaLinux 8