
Squid est un proxy de mise en cache complet prenant en charge les protocoles réseau populaires tels que HTTP, HTTPS, FTP, etc. Il peut être utilisé pour améliorer les performances du serveur Web en mettant en cache les demandes répétées, en filtrant le trafic Web et en accédant au contenu géo-restreint.
Ce tutoriel explique comment configurer un proxy Squid sur Ubuntu 20.04 et configurer les navigateurs Web Firefox et Google Chrome pour l'utiliser.
Installer Squid sur Ubuntu #
Le package squid est inclus dans les référentiels Ubuntu 20.04 standard. Pour l'installer, exécutez les commandes suivantes en tant qu'utilisateur sudo :
sudo apt update
sudo 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 /etc/squid/squid.conf
dossier. 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 d'origine :
sudo cp /etc/squid/squid.conf{,.orginal}
Pour commencer à configurer votre instance 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 souhaitez modifier le port et définir une interface d'écoute, recherchez 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.
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Exécuter 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 manière dont les clients peuvent accéder aux ressources Web à l'aide de listes de contrôle d'accès (ACL). Par défaut, l'accès n'est autorisé qu'à partir de l'hôte local.
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 consiste à créer une ACL qui inclura les adresses IP autorisées. Sinon, vous pouvez configurer squid pour qu'il utilise 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 adresses IP autorisées :
/etc/squid/allowed_ips.txt192.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 en surbrillance) et autorisez l'accès à cette ACL à l'aide de http_access
directive (deuxième ligne en surbrillance) :
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
L'ordre du http_access
les règles sont importantes. Assurez-vous d'ajouter la ligne avant http_access deny all
.
Le http_access
La directive 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
Numéro d'authentification Squid
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 l'authentification de base Samba, LDAP et HTTP.
Dans ce guide, nous utiliserons l'authentification de base. Il s'agit d'une méthode d'authentification simple intégrée au protocole HTTP.
Pour générer un mot de passe crypté, utilisez le openssl
outil. La commande suivante ajoute le USERNAME:PASSWORD
coupler au /etc/squid/htpasswd
fichier :
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 lanceriez :
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
L'étape suivante consiste à activer l'authentification de base HTTP et à inclure le fichier contenant les informations d'identification de l'utilisateur dans le 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/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
Les trois premières lignes en surbrillance créent une nouvelle ACL nommée authenticated
, et la dernière ligne en surbrillance 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 UFW
Profil "calmar" :
sudo ufw allow 'Squid'
Si Squid s'exécute sur un autre port que celui 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 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.
-
En haut à droite, cliquez sur l'icône hamburger
☰
pour ouvrir le menu de Firefox : -
Cliquez sur
⚙ Preferences
lien. -
Faites défiler jusqu'à
Network Settings
section et cliquez surSettings...
bouton. -
Une nouvelle fenêtre s'ouvrira.
- Sélectionnez la
Manual proxy configuration
bouton radio. - Entrez l'adresse IP de votre serveur Squid dans
HTTP Host
champ et3128
dans lePort
champ. - Sélectionnez
Use this proxy server for all protocols
case à cocher. - Cliquez sur
OK
bouton pour enregistrer les paramètres.
- Sélectionnez la
À 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 ip" et vous devriez voir l'adresse IP de votre serveur Squid.
Pour revenir aux paramètres par défaut, accédez à Network Settings
, sélectionnez Use system proxy settings
bouton radio et enregistrez les paramètres.
Il existe plusieurs plugins qui peuvent également vous aider à configurer les paramètres de 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 de proxy de votre système d'exploitation, vous pouvez soit utiliser un module complémentaire tel que SwitchyOmega, soit démarrer le navigateur Web Chrome à partir de la ligne de commande.
Pour lancer Chrome avec 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. De cette façon, vous pouvez exécuter plusieurs instances de Chrome en même temps.
Pour vérifier 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.