Dans notre article précédent Comment installer Squid Proxy Server sur Linux, nous vous avons fourni l'introduction de base du serveur Squid et son installation dans le système Linux. Dans cet article, nous ferons un suivi pour configurer le serveur proxy Squid. Nous aborderons les sujets suivants :
- Configurer Squid pour écouter sur un port différent
- Configuration du nom d'hôte pour le serveur proxy Squid
- Configuration de la taille de la mémoire cache Squid
- Spécifier les serveurs de noms DNS à utiliser
- Refuser l'accès à certains sites Web dans le serveur proxy Squid
- Configuration de l'authentification du client Squid Proxy
- Configuration des clients pour se connecter via le serveur proxy Squid
Remarque : Les commandes et procédures décrites dans cet article ont été testées sur Ubuntu 20.04 LTS (Fosse focale). Les mêmes commandes et procédures sont également valables pour la distribution Debian.
Prérequis
- Machine avec Ubuntu ou Debian installé
- Utilisateur Sudo
Configuration du serveur proxy Squid sous Linux
Le fichier de configuration du serveur proxy Squid se trouve dans /etc/squid/squid.conf .liste. Ce fichier contient des directives par lesquelles le serveur proxy Squid est configuré.
Configurer Squid pour écouter sur un port différent
Par défaut, le serveur proxy Squid écoute sur le port 3128 le trafic provenant des machines clientes. Cependant, vous pouvez le configurer pour écouter sur un port différent autre que le port par défaut en utilisant http_port directives.
Modifiez la configuration de squid à l'aide de la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Trouvez maintenant l'entrée ci-dessous dans le fichier de configuration.
Remarque : Vous pouvez utiliser Ctrl+W pour rechercher n'importe quelle ligne. Appuyez sur Ctrl+W, saisissez des mots-clés et appuyez sur Entrée.
http_port 3128
Remplacez maintenant 3128 avec le numéro de port que vous voulez que le serveur proxy Squid écoute, disons 3155 :
http_port 3155
Maintenant, redémarrez le service de serveur proxy squid pour que les modifications prennent effet :
$ sudo service squid restart
Configuration du nom d'hôte pour le serveur proxy Squid
Vous pouvez configurer le nom d'hôte du serveur proxy Squid s'il ne peut pas déterminer lui-même le nom d'hôte de la machine. Pour configurer le nom d'hôte, vous pouvez utiliser le visible_hostname directif. Ce nom est utilisé par Squid dans les messages d'erreur, les URL internes, les listes de répertoires FTP, etc.
Modifiez la configuration de squid à l'aide de la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Ajoutez maintenant l'entrée suivante dans le fichier de configuration en remplaçant
visible_hostname <host_name>
Par exemple, pour définir "linuxways ” comme nom d'hôte du serveur proxy Squid, l'entrée serait :
visible_hostname linuxways
Une fois que vous avez terminé avec les configurations, enregistrez et quittez le fichier de configuration.
Maintenant, redémarrez le service proxy Squid pour que les modifications de configuration prennent effet.
$ sudo service squid restart
Si le client Squid reçoit une page d'erreur, il verra le nom d'hôte indiqué au bas de la page Web.
Configuration de la taille de la mémoire cache Squid
Squid met en cache le contenu fréquemment visité en mémoire. La taille par défaut de la mémoire cache Squid est de 256 Mo. Pour modifier la taille de la mémoire cache de Squid, cache_mem directive est utilisée.
Modifiez le fichier de configuration à l'aide de la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Recherchez ensuite l'entrée suivante dans le fichier de configuration et remplacez 256 par la quantité à définir pour la taille de la mémoire cache.
cache_mem 256 MB
Par exemple, pour définir la taille du cache sur 512 Mo, l'entrée serait remplacée par :
cache_mem 512 MB
Une fois que vous avez terminé avec les configurations, enregistrez et quittez le fichier de configuration.
Maintenant, redémarrez le service squid pour appliquer les modifications :
$ sudo service squid restart
Spécifier les serveurs de noms DNS à utiliser
Par défaut, Squid utilise /etc/resolv.conf pour résoudre les noms de domaine. Si vous souhaitez que Squid utilise un serveur de noms différent, vous pouvez le faire en utilisant les dns_nameservers directif. Modifiez la configuration de squid à l'aide de la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Ajoutez maintenant l'entrée ci-dessous dans le fichier de configuration en remplaçant :
dns_nameservers <IP address of DNS server>
Par exemple, pour définir 8.8.4.4 en tant que serveurs de noms, l'entrée serait :
dns_nameservers 8.8.8.8 8.8.4.4
Une fois que vous avez terminé avec les configurations, enregistrez et quittez le fichier.
Maintenant, redémarrez le service squid pour appliquer les modifications :
$ sudo service squid restart
Contrôler l'accès au serveur proxy
Comment fonctionne Squid ACL
Pour le contrôle d'accès, les ACL sont utilisées en combinaison avec la directive de contrôle d'accès. Les ACL seules ne sont d'aucune utilité, elles aident uniquement à identifier les demandes des utilisateurs en fonction de diverses règles. Afin d'autoriser ou de refuser l'accès, ils sont combinés avec le http_access directives.
Pour définir ACL, la syntaxe est :
acl NAME TYPE value
Exemple : Autoriser le trafic LAN via le serveur proxy Squid
Pour correspondre au trafic provenant du LAN 192.168.5.0/24 , nous devrons créer une règle ACL dans le fichier de configuration de Squid :
acl myacl src 192.168.5.0/24
Une fois l'ACL définie, vous pouvez utiliser le http_access directive pour autoriser/refuser l'accès. Voici la syntaxe pour le http_access instruction :
http_access allow|deny NAME
Où NAME identifie le trafic dont vous souhaitez autoriser/refuser l'accès.
Pour autoriser le trafic identifié dans l'ACL, vous devrez ajouter le http_access suivant directive dans le fichier de configuration de Squid :
http_access allow myacl
Configuration des sources proxy pour accéder à Internet
Tout d'abord, nous allons configurer les sources auxquelles nous voulons autoriser l'accès à Internet via le serveur proxy. Par exemple, vous pouvez autoriser l'accès au serveur proxy uniquement à partir du réseau interne.
1. Pour configurer les sources autorisées, modifiez le fichier de configuration de squid :
$ sudo nano /etc/squid/squid.conf
2. Maintenant, recherchez l'entrée acl localnet src .
Remarque : Pour rechercher une entrée dans l'éditeur Nano, appuyez sur Ctrl+w , puis tapez l'expression que vous souhaitez rechercher. Dans le cas de l'exemple ci-dessus, appuyez sur Ctr+w et tapez acl localnet src comme indiqué dans la capture d'écran suivante.
3. Ici, vous verrez le nombre d'entrées pour différentes plages d'adresses IP. Ici, ajoutez une entrée pour votre réseau comme suit :
acl localnet src subnet_ID/subnet_mask
Par exemple, votre réseau local fonctionne sur le 192.168.72.0/24 sous-réseau. Dans ce cas, l'entrée serait :
acl localnet src 192.168.72.0/255.255.255.0
4. Maintenant, en utilisant le http_access directive, autorise les sources identifiées par l'acl nommée localnet défini ci-dessus. La directive http_access est déjà définie dans le configuré, il vous suffit de la rechercher et de la décommenter.
Recherchez l'entrée #http_access allow localnet puis décommentez-le en supprimant le # caractère.
http_access allow localnet
Maintenant, enregistrez et quittez le fichier de configuration de squid.
3. Maintenant, redémarrez le service squid en utilisant la commande ci-dessous :
$ sudo service squid restart
Refuser l'accès à certains sites Web dans le serveur proxy Squid
Pour refuser l'accès à certains sites Web du serveur proxy Squid, créez un fichier et répertoriez tous les sites Web auxquels vous souhaitez refuser l'accès.
$ sudo nano /etc/squid/deniedsites.acl
Maintenant, répertoriez les sites auxquels vous souhaitez refuser l'accès, puis enregistrez et quittez le fichier.
…
.msn.com
.yahoo.com
.bbc.com
…
Modifiez ensuite le fichier de configuration de squid à l'aide de la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Créez maintenant une règle ACL pour les sites Web refusés et mentionnez le fichier contenant la liste des sites Web refusés.
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
La règle ACL denied_sites correspondra à toutes les requêtes destinées aux sites Web répertoriés dans le fichier "/etc/squid/deniedsites.acl ” fichier.
Vous devez maintenant ajouter le http_access directive pour refuser les sites Web identifiés par la règle ACL ci-dessus nommée denied_sites . Ajoutez la ligne ci-dessous dans le fichier de configuration de Squid :
http_access deny denied_sites
Une fois que vous avez terminé avec les configurations, enregistrez et quittez le fichier.
Maintenant, redémarrez le service squid en utilisant la commande ci-dessous :
$ sudo service squid restart
Configuration de l'authentification du client Squid Proxy
Avec le serveur proxy Squid, nous pouvons ajouter une authentification de base basée sur l'utilisateur pour une certaine sécurité. Pour ce faire, nous utiliserons le htpasswd programme fourni avec le serveur HTTP Apache. Ensuite, nous créerons un fichier qui contiendra les noms d'utilisateur et les mots de passe pour l'authentification.
1. Tout d'abord, nous devrons installer Apache2-utils. Utilisez la commande suivante pour ce faire :
$ apt install -y apache2-utils
2. Créez maintenant le fichier passwd dans /etc/squid répertoire pour stocker les mots de passe :
$ touch /etc/squid/passwd
3. Utilisez la commande ci-dessous pour définir la propriété sur l'utilisateur "proxy":
$ chown proxy: /etc/squid/passwd
4. Ajoutez maintenant un utilisateur dans le /etc/squid/passwd fichier :
htpasswd /etc/squid/passwd tin
Tapez un mot de passe puis confirmez en le ressaisissant. Maintenant, l'utilisateur et son mot de passe crypté seront enregistrés dans /etc/squid/passwd fichier.
5. Modifiez le fichier /etc/squid/squid.conf fichier en utilisant la commande ci-dessous :
$ sudo nano /etc/squid/squid.conf
Ajoutez maintenant les lignes ci-dessous dans le fichier :
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_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
Once you are done with the configurations, save and exit the configuration file.
Configuration des clients pour se connecter via le serveur proxy Squid
Dans cette section, nous allons configurer les clients pour qu'ils se connectent via le serveur proxy Squid.
1. Ouvrez un navigateur Web dans votre système. Ici, nous utiliserons le Firefox navigateur.
2. Allez dans le coin supérieur droit de votre navigateur et cliquez sur l'icône des trois barres horizontales. Cliquez ensuite sur Options .
3. Puis dans la barre de recherche, tapez réseau . Lorsque le résultat de la recherche apparaît, cliquez sur Paramètres comme on peut le voir dans la capture d'écran ci-dessous.
4. Sélectionnez la Configuration manuelle du proxy bouton d'options. Tapez ensuite l'adresse IP du serveur proxy Squid dans le Proxy HTTP champ et numéro de port dans le champ Port domaine. Cochez également la case Utiliser également ce proxy pour FTP et HTTPS case à cocher. Cliquez ensuite sur OK .
Maintenant, pour vérifier si le serveur Squid fonctionne, essayez d'accéder à n'importe quel site Web dans votre navigateur. Vous verrez une boîte de dialogue d'authentification. Entrez le nom d'utilisateur et le mot de passe squid que vous avez créés auparavant et cliquez sur OK .
Vous devriez maintenant pouvoir accéder au site Web demandé.
Essayez maintenant d'accéder à un autre site Web que vous avez bloqué à l'aide de la liste d'accès. Le navigateur affichera la page suivante indiquant "Le serveur proxy refuse les connexions".
C'est tout ce qu'il y a à faire ! Dans cet article, vous avez appris à configurer le serveur proxy Squid sur un système Linux. Nous venons d'aborder les configurations de base. Vous pouvez faire beaucoup plus avec le serveur proxy Squid. Consultez la documentation officielle pour plus d'informations.