Comment installer et configurer le proxy Squid sur Ubuntu 20.04

Squid est un proxy de mise en cache complet prenant en charge les protocoles réseau populaires comme HTTP, HTTPS, FTP, et plus encore. Il peut être utilisé pour améliorer les performances du serveur web en mettant en cache les requêtes répétées, filtrer le trafic web et accéder au contenu géo-restreint.

Ce tutoriel explique comment mettre en place un proxy Squid sur Ubuntu 20.04 et configurer les navigateurs web Firefox et Google Chrome pour l’utiliser.

Installation de Squid sur Ubuntu #

Le paquet squid est inclus dans les dépôts standard d’Ubuntu 20.04. Pour l’installer, exécutez les commandes suivantes en tant qu’utilisateur sudo:

sudo apt updatesudo apt install squid

Une fois l’installation terminée, le service Squid démarrera automatiquement. Pour le vérifier, vérifiez l’état du service:

sudo systemctl status squid

La sortie ressemblera à ceci:

● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago Docs: man:squid(8)...

Configuration de Squid #

Le service Squid peut être configuré en éditant le fichier /etc/squid/squid.conf. Le fichier de configuration contient des commentaires qui décrivent ce que fait chaque option de configuration. Vous pouvez également placer vos paramètres de configuration dans des fichiers séparés, qui peuvent être inclus dans le fichier de configuration principal à l’aide de la directive « include ».

Avant d’apporter des modifications, il est recommandé de sauvegarder le fichier de configuration original :

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

Pour commencer à configurer votre instance de squid, ouvrez le fichier 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 voulez changer 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 sur 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.

Squid vous permet de contrôler la façon dont les clients peuvent accéder aux ressources web en utilisant des listes de contrôle d’accès (ACL). Par défaut, l’accès est autorisé uniquement depuis le localhost.

Si tous les clients qui utilisent le proxy ont une adresse IP statique, l’option la plus simple pour restreindre l’accès au serveur proxy est de créer une ACL qui inclura les IP autorisées. Sinon, vous pouvez configurer squid pour utiliser l’authentification.

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

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

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

/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 manière similaire aux règles du pare-feu. Squid lit les règles de haut en bas, et lorsqu’une règle correspond, les règles situées en 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 changements prennent effet :

sudo systemctl restart squid

Squid Authentication #

Si la restriction d’accès basée sur l’IP ne fonctionne pas pour votre cas d’utilisation, vous pouvez configurer squid pour utiliser un back-end pour authentifier les utilisateurs. Squid prend en charge Samba, LDAP et HTTP basic auth.

Dans ce guide, nous utiliserons basic auth. C’est une méthode d’authentification simple intégrée au protocole HTTP.

Pour générer un mot de passe crypté, utilisez l’outil openssl. La commande suivante ajoute la paire USERNAME:PASSWORD au fichier /etc/squid/htpasswd:

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

Par exemple, pour créer un utilisateur « josh » avec le mot de passe « P@ssvv0rT« , vous devez exécuter :

printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6

L’étape suivante consiste à activer l’authentification HTTP de base et à inclure le fichier contenant les informations d’identification de l’utilisateur au fichier de configuration de squid.

Ouvrez la configuration principale et ajoutez ce qui suit :

sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ...auth_param basic program /usr/lib/squid3/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

Les trois premières lignes surlignées créent une nouvelle ACL nommée authenticated, et la dernière ligne surlignée autorise l’accès aux utilisateurs authentifiés.

Redémarrez le service Squid :

sudo systemctl restart squid

Configuration du pare-feu #

Pour ouvrir les ports Squid, activez le profil UFW ‘Squid’ :

sudo ufw allow 'Squid'

Si Squid fonctionne sur un autre port, non par défaut, par exemple, 8888 vous pouvez autoriser le trafic sur ce port avec : sudo ufw allow 8888/tcp.

Configuration de votre navigateur pour utiliser le proxy #

Maintenant que vous avez installé 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. Défilez jusqu’à la section Network Settings et cliquez sur le bouton Settings....

  4. Une nouvelle fenêtre s’ouvre.

    • 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.
    .Firefox Squid ProxyFirefox Squid Proxy

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

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

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

Google Chrome #

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

Pour lancer Chrome en utilisant 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"

Windows :

"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. Ainsi, 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 « what is my ip ». L’IP affichée dans votre navigateur doit être l’adresse IP de votre serveur.

Conclusion #

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

Nous vous avons montré comment installer et configurer Squid sur Ubuntu 20.04 et configurer votre navigateur pour qu’il l’utilise.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *