Squid est un serveur de mise en cache proxy Web gratuit et open source qui prend en charge différents protocoles, tels que HTTP, HTTPS, FTP et SSL. Il est principalement utilisé comme serveur proxy de mise en cache et peut grandement améliorer les performances du serveur en mettant en cache les requêtes répétées, en filtrant le trafic Web et en accédant au contenu géo-restreint.
Squid peut servir d'intermédiaire entre le client et le serveur Web. Après avoir connecté le proxy Squid, vous pourrez accéder anonymement aux services Internet et contourner les restrictions du réseau local.
Dans ce tutoriel, nous allons apprendre à installer et configurer Squid Proxy sur CentOS 8.
Prérequis
- Un nouveau VPS CentOS 8 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 - Installer le serveur proxy Squid
Le package Squid est disponible dans le référentiel par défaut de CentOS 8. Vous pouvez l'installer en exécutant simplement la commande suivante :
dnf install squid -y
Une fois installé, démarrez le service proxy Squid et activez-le pour qu'il démarre au redémarrage avec la commande suivante :
systemctl start squid systemctl enable squid
Étape 3 - Configurer l'authentification basée sur IP
Il existe plusieurs façons de configurer Squid pour accepter les connexions et servir de proxy HTTP. Dans cette section, nous allons configurer Squid pour authentifier les clients en fonction de leurs adresses IP.
Ouvrez le fichier de configuration par défaut de Squid dans /etc/squid/squid.conf :
nano /etc/squid/squid.conf
Ajoutez la ligne suivante au début du fichier :
acl user1 src 192.168.0.10 acl user2 src 192.168.0.11 http_access allow user1 user2
Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez le service Squid pour appliquer les modifications :
systemctl restart squid
Dans l'étape ci-dessus, remplacez vos informations pertinentes comme ci-dessous :
utilisateur1 et utilisateur2 est le nom qui identifie les ordinateurs clients.
192.168.0.10 et 192.168.0.11 est l'adresse IP de l'ordinateur client.
Étape 4 - Configurer l'authentification basée sur l'utilisateur
Dans cette section, nous allons configurer Squid pour authentifier un client avec des noms d'utilisateur et des mots de passe.
Tout d'abord, installez le package de l'utilitaire Apache sur votre système :
dnf install httpd-tools -y
Ensuite, créez un fichier pour stocker les utilisateurs et les mots de passe Squid et modifiez le propriétaire du fichier de mots de passe :
touch /etc/squid/squid_passwd chown squid /etc/squid/squid_passwd
Ensuite, créez un nouvel utilisateur squid avec le nom user1 en utilisant la commande suivante :
htpasswd /etc/squid/squid_passwd user1
Il vous sera demandé de créer un mot de passe pour cet utilisateur comme indiqué ci-dessous :
New password: Re-type new password: Adding password for user user1
Ensuite, créez un autre utilisateur nommé user2 avec la commande suivante :
htpasswd /etc/squid/squid_passwd user2
Fournissez un mot de passe pour cet utilisateur comme indiqué ci-dessous :
New password: Re-type new password: Adding password for user user2
Vous pouvez maintenant vérifier les deux utilisateurs avec la commande suivante :
cat /etc/squid/squid_passwd
Vous devriez obtenir le résultat suivant :
user1:$apr1$szXO3OTj$37MuRy2V06mIAOiRpFjnr1 user2:$apr1$MCAckv0h$0VwDLLhAfMLaLm3Xvk3H/0
Modifiez ensuite le fichier de configuration de Squid :
nano /etc/squid/squid.conf
Ajoutez les lignes suivantes au début du fichier :
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Enregistrez et fermez le fichier, puis redémarrez le service proxy Squid pour appliquer les modifications :
systemctl restart squid
Étape 5 - Configurer l'authentification combinée
Dans cette section, nous allons configurer Squid pour authentifier un client en fonction de l'adresse IP et du nom d'utilisateur/mot de passe.
Modifiez le fichier de configuration par défaut de Squid :
nano /etc/squid/squid.conf
Recherchez les lignes suivantes que vous avez ajoutées précédemment :
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users acl user1 src 192.168.0.10 acl user2 src 192.168.0.11 http_access allow user1 user2
Et remplacez-les par les lignes suivantes :
acl user1 src 192.168.0.10 acl user2 src 192.168.0.11 auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow user1 user2 ncsa_users
Enregistrez et fermez le fichier, puis redémarrez le service proxy Squid pour appliquer les modifications :
systemctl restart squid
Étape 6 - Configurer Squid pour anonymiser le trafic
Ensuite, vous devrez ajouter quelques règles pour masquer les adresses IP des clients des serveurs qui reçoivent le trafic de votre proxy HTTP Squid.
Vous pouvez le faire en éditant le fichier de configuration par défaut de Squid :
nano /etc/squid/squid.conf
Ajoutez les lignes suivantes au début du fichier :
forwarded_for off request_header_access Allow allow all request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access User-Agent allow all request_header_access Cookie allow all request_header_access All deny all
Enregistrez et fermez le fichier, puis redémarrez le service proxy Squid pour appliquer les modifications :
systemctl restart squid
Étape 7 - Tester le proxy Squid
À ce stade, votre serveur proxy Squid est configuré pour accepter les connexions client basées sur l'adresse IP et le nom d'utilisateur/mot de passe et gérer de manière anonyme le trafic Internet.
Ensuite, vous devrez configurer les paramètres du navigateur de votre ordinateur client pour utiliser votre serveur Squid comme proxy HTTP.
Sur l'ordinateur client, ouvrez Mozilla Firefox et cliquez sur Modifier => Préférences comme indiqué ci-dessous :
Faites défiler jusqu'à la section Paramètres réseau et cliquez sur Paramètres . Vous devriez voir la page suivante :
Sélectionnez le bouton radio Configuration manuelle du proxy, entrez l'adresse IP de votre serveur Squid dans le champ Hôte HTTP et 3128 dans le champ Port, cochez la case "Utiliser ce serveur proxy pour tous les protocoles" et cliquez sur OK bouton pour enregistrer les paramètres.
Votre navigateur est maintenant configuré pour naviguer sur Internet via le proxy Squid.
Pour le vérifier, tapez l'URL https://www.whatismyip.com/. Il vous sera demandé de fournir un nom d'utilisateur et un mot de passe comme indiqué ci-dessous :
Fournissez le nom d'utilisateur et le mot de passe de votre serveur proxy Squid que vous avez créés précédemment et cliquez sur OK bouton. Vous devriez voir la page suivante :
Sur la page ci-dessus, vous devriez voir l'adresse IP de votre serveur Squid au lieu de l'adresse IP de votre ordinateur client.
Conclusion
Dans le guide ci-dessus, vous avez appris à configurer Squid en tant que serveur proxy HTTP sur CentOS 8 et à configurer votre navigateur pour l'utiliser. Vous pouvez désormais surfer sur le Web de manière anonyme et empêcher Firefox de vous suivre. Essayez Squid sur un compte d'hébergement VPS d'Atlantic.Net dès aujourd'hui !