Comment configurer le serveur « Squid Proxy » sur Ubuntu et Debian
Squid est un serveur proxy Web HTTP de mise en cache et de transfert le plus populaire, utilisé par mon large éventail d’entreprises pour mettre en cache des pages Web à partir d’un serveur Web afin d’améliorer la vitesse du serveur Web, de réduire les temps de réponse et de réduire l’utilisation de la bande passante du réseau.
Lire aussi : Comment créer un proxy HTTP à l’aide de Squid sur CentOS 7
Dans cet article, nous allons expliquer comment installer un serveur proxy squid sur les distributions Ubuntu et Debian et l’utiliser comme serveur proxy HTTP.
Comment installer Squid sur Ubuntu
Avant de commencer, vous devez savoir que le serveur Squid n’a aucune prérequis, mais la quantité d’utilisation de la RAM peut différer en fonction des clients naviguant sur Internet via le serveur proxy.
Le paquet Squid peut être installé à partir du dépôt Ubuntu de base, mais avant cela, assurez-vous de mettre à jour vos paquets en l’exécutant.
$ sudo apt update
Une fois que vos paquets sont à jour, vous pouvez continuer à installer squid et le démarrer et l’activer au démarrage du système à l’aide des commandes suivantes.
$ sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid
À ce stade, votre proxy web Squid doit déjà être en cours d’exécution et vous pouvez vérifier l’état du service.
$ sudo systemctl status squid
Exemple de sortie
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 4 (limit: 1717)
CGroup: /system.slice/squid.service
├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
├─2766 (squid-1) -YC -f /etc/squid/squid.conf
├─2768 (logfile-daemon) /var/log/squid/access.log
└─2772 (pinger)
Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]: * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]: ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started
Voici quelques emplacements importants des fichiers squid que vous devez connaître :
- Fichier de configuration de Squid : /etc/squid/squid.conf
- Journal d’accès à Squid : /var/log/squid/access.log
- Journal du cache Squid : /var/log/squid/cache.log
Le fichier de configuration par défaut contient des directives de configuration qui doivent être configurées pour affecter le comportement du Squid.
Ouvrez maintenant ce fichier pour l’éditer à l’aide de l’éditeur Vi et apportez les modifications comme indiqué ci-dessous.
$ sudo vim /etc/squid/squid.conf
Maintenant, vous pouvez rechercher les lignes suivantes et les modifier comme demandé, dans l’éditeur Vi, vous pouvez rechercher ces lignes en appuyant sur le bouton 'ESC' et en tapant la touche « / » pour écrire les lignes spécifiques à rechercher.
- http_port : C’est le port par défaut pour le serveur proxy HTTP, par défaut c’est 3128, vous pouvez le changer pour n’importe quel autre port que vous voulez, vous pouvez également ajouter la balise « transparent » à la fin de la ligne comme http_port 8888 transparent pour faire agir le proxy Squid comme un proxy transparent si vous le souhaitez.
- http_access tout refuser : Cette ligne ne permettra à personne d’accéder au serveur proxy HTTP, c’est pourquoi vous devez la changer pour http_access permettre à tous de commencer à utiliser votre serveur proxy Squid.
- visible_hostname : Cette directive est utilisée pour définir le nom d’hôte spécifique à un serveur squid. Vous pouvez donner n’importe quel nom d’hôte à squid.
Après avoir effectué les modifications ci-dessus, vous pouvez redémarrer le serveur proxy Squid à l’aide de la commande.
$ sudo systemctl restart squid
Configuration de Squid en tant que proxy HTTP sur Ubuntu
Dans cette section de configuration de squid, nous allons vous expliquer comment configurer squid en tant que proxy HTTP en utilisant uniquement l’adresse IP du client pour l’authentification.
Ajouter des listes de contrôle d’accès Squid
Si vous souhaitez autoriser une seule adresse IP à accéder à Internet via votre nouveau serveur proxy, vous devrez définir une nouvelle acl (liste de contrôle d’accès) dans le fichier de configuration.
$ sudo vim /etc/squid/squid.conf
La règle ACL que vous devez ajouter est la suivante :
acl localnet src XX.XX.XX.XX
Où XX.XX.XX.XX est l’adresse IP de la machine cliente. Cette liste de contrôle d’accès doit être ajoutée au début de la section de la liste de contrôle d’accès, comme illustré dans la capture d’écran suivante.
Il est toujours bon de définir un commentaire à côté de l’ACL qui décrira qui utilise cette adresse IP, par exemple.
acl localnet src 192.168.0.102 # Boss IP address
Vous devrez redémarrer le service Squid pour que les nouvelles modifications entrent en vigueur.
$ sudo systemctl restart squid
Ouvrir des ports dans Squid Proxy
Par défaut, seuls certains ports sont autorisés dans la configuration de squid, si vous souhaitez en ajouter d’autres, il suffit de les définir dans le fichier de configuration comme indiqué.
acl Safe_ports port XXX
Où XXX est le numéro de port que vous souhaitez autoriser. Encore une fois, c’est une bonne pratique de définir un commentaire à côté de acl qui décrira à quoi le port va être utilisé.
Pour que les modifications prennent effet, vous devrez redémarrer squid une fois de plus.
$ sudo systemctl restart squid
Authentification du client proxy Squid
Pour permettre aux utilisateurs de s’authentifier avant d’utiliser le proxy, vous devez activer l’authentification http de base dans le fichier de configuration, mais avant cela, vous devez installer le package apache2-utils à l’aide de la commande suivante.
$ sudo apt install apache2-utils
Créez maintenant un fichier appelé « passwd » qui stockera plus tard le nom d’utilisateur pour l’authentification. Squid fonctionne avec l’utilisateur « proxy », donc le fichier doit appartenir à cet utilisateur.
$ sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd
Maintenant, nous allons créer un nouvel utilisateur appelé « tecmint » et configurer son mot de passe.
$ sudo htpasswd /etc/squid/passwd tecmint
New password:
Re-type new password:
Adding password for user tecmint
Maintenant, pour activer l’authentification http de base, ouvrez le fichier de configuration.
$ sudo vim /etc/squid/squid.conf
Après les listes de contrôle d’accès des ports, ajoutez les lignes suivantes :
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
Enregistrez le fichier et redémarrez squid afin que les nouvelles modifications puissent prendre effet :
$ sudo systemctl restart squid
Bloquer des sites Web sur Squid Proxy
Pour bloquer l’accès aux sites Web indésirables, créez d’abord un fichier appelé « blacklisted_sites.acl » qui y stockera les sites figurant sur la liste noire.
$ sudo touch /etc/squid/blacklisted_sites.acl
Ajoutez maintenant les sites Web dont vous souhaitez bloquer l’accès, par exemple.
.badsite1.com
.badsite2.com
Le point suivant informe squid de bloquer toutes les références à ces sites, y compris www.badsite1, subsite.badsite1.com etc.
Ouvrez maintenant le fichier de configuration de Squid.
$ sudo vim /etc/squid/squid.conf
Juste après les listes de contrôle d’accès ci-dessus, ajoutez les deux lignes suivantes :
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls
Enregistrez maintenant le fichier et redémarrez squid :
$ sudo systemctl restart squid
Bloquer un mot-clé spécifique avec Squid
Pour bloquer une liste de mots-clés, créez d’abord un fichier appelé « blockkeywords.lst » qui y stockera les mots-clés de la liste noire.
$ sudo touch /etc/squid/blockkeywords.lst
Ajoutez maintenant les mots-clés dont vous souhaitez bloquer l’accès, par exemple.
facebook
instagram
gmail
Ouvrez maintenant le fichier de configuration de Squid et ajoutez la règle suivante.
acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist
Enregistrez maintenant le fichier et redémarrez squid :
$ sudo systemctl restart squid
Une fois que tout est configuré avec précision, vous pouvez maintenant configurer les paramètres réseau de votre navigateur Web client local ou de votre système d’exploitation pour utiliser votre proxy HTTP squid nouvellement configuré.
Configurer le client pour utiliser le proxy Squid
Maintenant, pour tester que votre serveur proxy fonctionne ou non, vous pouvez ouvrir Firefox et aller dans Édition –> Préférences –> Avancé –Réseau > > Paramètres et sélectionner « Configuration manuelle du proxy » et entrer l’adresse IP de votre serveur proxy et le port à utiliser pour toutes les connexions comme suit.
Une fois que vous aurez rempli tous les détails de proxy requis, vous pourrez surfer sur le Web à l’aide de votre serveur proxy Squid, vous pouvez faire la même chose dans n’importe quel autre navigateur ou programme que vous souhaitez.
Pour vous assurer que vous surfez sur le Web à l’aide de votre serveur proxy, vous pouvez visiter http://www.ipaddresslocation.org/, dans le coin supérieur droit, vous devez voir la même adresse IP que l’adresse IP de votre serveur.
Pour plus de paramètres de configuration supplémentaires, vous pouvez consulter la documentation officielle de Squid. Si vous avez des questions ou des commentaires, veuillez les ajouter dans la section des commentaires ci-dessous.




