Comment installer et configurer le proxy Squid sur CentOS 7

Squid est un proxy de mise en cache complet prenant en charge les protocoles réseau populaires tels que HTTP, HTTPS, FTP, etc. Placer Squid devant un serveur Web peut grandement améliorer les performances du serveur en mettant en cache des demandes répétées, en filtrant le trafic Web et en accédant à du contenu géo-restreint.

Ce tutoriel explique comment configurer Squid sur CentOS 7 et configurer les navigateurs Web Firefox et Google Chrome pour utiliser le proxy.

L’installation de Squid sur CentOS #

Le package Squid est inclus dans les dépôts CentOS 7 par défaut. Pour l’installer, exécutez la commande suivante en tant qu’utilisateur sudo:

sudo yum install squid

Une fois l’installation terminée, démarrez et activez le service Squid:

sudo systemctl start squidsudo systemctl enable squid

Pour vérifier que l’installation a réussi, tapez la commande suivante qui affichera l’état du service:

sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...

Configuration de Squid #

Squid peut être configuré en éditant le fichier /etc/squid/squid.conf. Des fichiers supplémentaires avec des options de configuration peuvent être inclus à l’aide de la directive « include ».

Avant d’apporter des modifications, sauvegardez le fichier de configuration d’origine avec la commande cp:

sudo cp /etc/squid/squid.conf{,.orginal}

Pour modifier le fichier, ouvrez-le dans votre éditeur de texte:

sudo nano /etc/squid/squid.conf

Par défaut, Squid est configuré pour écouter sur le port 3128 sur toutes les interfaces réseau du serveur.

Si vous souhaitez modifier le port et définir une interface d’écoute, localisez la ligne commençant par http_port et spécifiez l’adresse IP de l’interface et le nouveau port. Si aucune interface n’est spécifiée, Squid écoutera toutes les interfaces.

/etc/squid/squid.conf
# Squid normally listens to port 3128http_port IP_ADDR:PORT

L’exécution de Squid sur toutes les interfaces et sur le port par défaut devrait convenir à la plupart des utilisateurs.

Vous pouvez contrôler l’accès au serveur Squid à l’aide des listes de contrôle d’accès (ACL).

Par défaut, Squid n’autorise l’accès qu’à partir de localhost et localnet.

Si tous les clients qui utiliseront le proxy ont une adresse IP statique, vous pouvez créer une liste de contrôle d’accès qui inclura les adresses IP autorisées.

Au lieu d’ajouter les adresses IP dans le fichier de configuration principal, nous créerons un nouveau fichier dédié qui contiendra les adresses IP:

/etc/squid/allowed_ips.txt
192.168.33.1# All other allowed IPs

Une fois terminé, ouvrez le fichier de configuration principal et créez une nouvelle ACL nommée allowed_ips (première ligne en surbrillance) et autorisez l’accès à cette ACL en utilisant la directive http_access (deuxième ligne en surbrillance) :

/etc/squid/squid.conf
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all

L’ordre des règles http_access est important. Assurez-vous d’ajouter la ligne avant http_access deny all.

La directive http_access fonctionne de la même manière que les règles de pare-feu. Squid lit les règles de haut en bas, et lorsqu’une règle correspond, les règles ci-dessous ne sont pas traitées.

Chaque fois que vous apportez des modifications au fichier de configuration, vous devez redémarrer le service Squid pour que les modifications prennent effet:

sudo systemctl restart squid

Authentification Squid #

Squid peut utiliser différents back-ends, y compris Samba, LDAP et HTTP basic auth pour les utilisateurs authentifiés.

Dans cet exemple, nous allons configurer Squid pour qu’il utilise l’authentification de base. C’est une méthode d’authentification simple intégrée au protocole HTTP.

Nous utiliserons le openssl pour générer les mots de passe et ajouterons la paire username:password au fichier /etc/squid/htpasswd avec la commande tee comme indiqué ci-dessous:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Par exemple, pour créer un utilisateur nommé « mike » avec le mot de passe « Pz$lPk76« , vous devez exécuter:

printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo

L’étape suivante consiste à configurer Squid pour activer l’authentification de base HTTP et utiliser le fichier.

Ouvrez la configuration principale et ajoutez ce qui suit :

/etc/squid/squid.conf
# ...auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all

Avec les trois premières lignes en surbrillance, nous créons une nouvelle LCA nommée authenticated. La dernière ligne en surbrillance permet l’accès aux utilisateurs authentifiés.

Redémarrez le service Squid:

sudo systemctl restart squid

Configuration du pare-feu #

Si vous exécutez un pare-feu, vous devrez ouvrir le port 3128. Pour ce faire, exécutez les commandes suivantes:

sudo firewall-cmd --permanent --add-port=3128/tcpfirewall-cmd --reload
Si Squid s’exécute sur un autre port non par défaut, vous devrez autoriser le trafic sur ce port avec.

Configuration de votre Navigateur pour utiliser le Proxy #

Maintenant que vous avez configuré Squid, la dernière étape consiste à configurer votre navigateur préféré pour l’utiliser.

Firefox #

Les étapes ci-dessous sont les mêmes pour Windows, macOS et Linux.

  1. Dans le coin supérieur droit, cliquez sur l’icône hamburger pour ouvrir le menu de Firefox:

  2. Cliquez sur le lien ⚙ Preferences.

  3. Faites défiler jusqu’à la section Network Settings et cliquez sur le bouton Settings....

  4. Une nouvelle fenêtre s’ouvrira.

    • Sélectionnez le bouton radio Manual proxy configuration.
    • Entrez l’adresse IP de votre serveur Squid dans le champ HTTP Host et 3128 dans le champ Port.
    • Cochez la case Use this proxy server for all protocols.
    • Cliquez sur le bouton OK pour enregistrer les paramètres.
     Proxy de Calmar Firefox

À ce stade, votre Firefox est configuré et vous pouvez naviguer sur Internet via le proxy Squid. Pour le vérifier, ouvrez google.com, tapez « quelle est mon adresse IP » et vous devriez voir l’adresse IP de votre serveur Squid.

Pour revenir aux paramètres par défaut, allez à Network Settings, sélectionnez le bouton radio Use system proxy settings et enregistrez les paramètres.

Il existe également plusieurs plugins qui peuvent vous aider à configurer les paramètres proxy de Firefox tels que FoxyProxy.

Google Chrome #

Google Chrome utilise les paramètres de proxy système par défaut. Au lieu de modifier les paramètres du proxy de votre système d’exploitation, vous pouvez utiliser un addon tel que SwitchyOmegaou démarrer le navigateur Web Chrome à partir de la ligne de commande.

Pour lancer Chrome à l’aide d’un nouveau profil et se connecter au serveur Squid, utilisez la commande suivante :

Linux :

/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

macOS :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

Fenêtres :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"

Le profil sera créé automatiquement s’il n’existe pas. De cette façon, vous pouvez exécuter plusieurs instances de Chrome en même temps.

Pour confirmer que le serveur proxy fonctionne correctement, ouvrez google.com et tapez « quelle est mon adresse IP ». L’adresse IP affichée dans votre navigateur doit être l’adresse IP de votre serveur.

Conclusion #

Vous avez appris à installer squid sur CentOS 7 et à configurer votre navigateur pour l’utiliser.

Squid est l’un des serveurs de mise en cache proxy les plus populaires. Il améliore la vitesse du serveur Web et peut vous aider à restreindre l’accès des utilisateurs à Internet.

Leave a Reply

Votre adresse e-mail ne sera pas publiée.