Recherche de site Web

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 un 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 expliquerons 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 exigence, mais la quantité d'utilisation de la RAM peut différer en fonction des clients naviguant sur Internet via le serveur proxy.

Le package Squid peut être installé à partir du référentiel de base Ubuntu, mais avant cela, assurez-vous de mettre à jour vos packages en les exécutant.

sudo apt update

Une fois vos packages à jour, vous pouvez poursuivre l'installation de Squid, 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 devrait déjà être en cours d'exécution et vous pouvez vérifier l'état du service avec.

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 de fichiers Squid importants que vous devez connaître :

  • Fichier de configuration 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 certaines directives de configuration qui doivent être configurées pour affecter le comportement de Squid.

Ouvrez maintenant ce fichier pour le modifier à 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 'ESC' et en tapant « / » clé pour écrire les lignes spécifiques à rechercher.

  • http_port : Il s'agit du port par défaut du serveur proxy HTTP, par défaut il est 3128, vous pouvez le remplacer par n'importe quel autre port de votre choix, vous pouvez également ajouter le Balise « transparent » à la fin de la ligne comme http_port 8888 transparent pour que le proxy Squid agisse comme un proxy transparent si vous le souhaitez.
  • http_access deny all : Cette ligne ne permettra à personne d'accéder au serveur proxy HTTP, c'est pourquoi vous devez la remplacer par http_access permit all pour commencer à utiliser votre serveur proxy Squid .
  • visible_hostname : Cette directive est utilisée pour définir le nom d'hôte spécifique d'un serveur Squid. Vous pouvez donner n'importe quel nom d'hôte à Squid.

Après avoir apporté 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 vous expliquerons comment configurer Squid en tant que proxy HTTP en utilisant uniquement l'adresse IP du client pour l'authentification.

Ajouter des ACL 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 :

acl localnet src XX.XX.XX.XX

XX.XX.XX.XX est l'adresse IP de la machine client. Cette acl doit être ajoutée au début de la section ACL, comme indiqué dans la capture d'écran suivante.

C'est toujours une bonne pratique de définir un commentaire à côté de ACL qui décrira par exemple qui utilise cette adresse IP.

acl localnet src 192.168.0.102  # Boss IP address

Vous devrez redémarrer le service Squid pour prendre en compte les nouvelles modifications.

sudo systemctl restart squid

Ports ouverts dans Squid Proxy

Par défaut, seuls certains ports sont autorisés dans la configuration squid, si vous souhaitez en ajouter d'autres, définissez-les simplement dans le fichier de configuration comme indiqué.

acl Safe_ports port XXX

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 ultérieurement le nom d'utilisateur pour l'authentification. Squid s'exécute avec l'utilisateur « proxy », le fichier doit donc appartenir à cet utilisateur.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Nous allons maintenant 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 ACL 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 pour que les nouvelles modifications prennent 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 sur 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, notamment www.badsite1, subsite.badsite1.com etc.

Ouvrez maintenant le fichier de configuration de Squid.

sudo vim /etc/squid/squid.conf

Juste après les ACL 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 le navigateur Web de votre client local ou les paramètres réseau de votre système d'exploitation pour utiliser votre proxy HTTP Squid nouvellement configuré.

Configurer le client pour utiliser le proxy Squid

Maintenant, pour vérifier que votre serveur proxy fonctionne ou non, vous pouvez ouvrir Firefox et aller dans Modifier -> Préférences -> Avancé -> Réseau -> Paramètres et sélectionner « Configuration manuelle du proxy » et entrez l'adresse IP et le port de votre serveur proxy à utiliser pour toutes les connexions comme indiqué ci-dessous.

Une fois que vous aurez rempli tous les détails du proxy requis, vous pourrez surfer sur le Web en utilisant votre serveur proxy Squid, vous pourrez faire la même chose dans n'importe quel autre navigateur ou programme de votre choix.

Pour vous assurer que vous surfez sur le Web en utilisant 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 votre serveur. Adresse IP.

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 commentaires ci-dessous.