Installer, configurer et sécuriser votre serveur Proxy Squid3

Qu’est ce qu’un proxy ?

Un serveur proxy appelé aussi «serveur mandataire» une machine ayant pour fonction de servir d’intermédiaire entre un ordinateurs de votre réseau local et internet. Dans notre cas nous allons utiliser le serveur proxy pour le web, il s’agit donc d’un proxy HTTP. Sachez qu’il existe également des serveurs proxy pour d’autre protocole (FTP, …).

Dans une configuration standard, le proxy vous permettra de gérer l’accès à internet aux utilisateur en fonction des heures, des ports, d’un service, d’adresses ip, etc…

Fonctionnement d’un proxy

Le fonctionnement d’un serveur proxy est simple à comprendre, il s’agit d’un serveur « mandaté » via une application afin d’effectuer une requête sur Internet à la place de celle-ci. De ce fait lorsqu’un utilisateur essaye de se connecter à internet via une application configurée pour utiliser un proxy, l’application va en premier lieu se connecter au serveur proxy et lui donner sa requête. De son coté le serveur proxy lui va alors relayer l’information au serveur que l’application cherche à joindre pour lui transmettre la requête.
Le serveur ayant alors reçu l’information du proxy lui donnera alors une réponse qu’a son tour le proxy relayera à l’application cliente.

De quelle façon nous allons utiliser notre proxy

Si vous avez suivi précédemment l’article sur la mise en place d’un système virtualisé OpenVZ et créer votre premier conteneur pour y installer votre serveur web local, vous avez également pu mettre en place un conteneur dédié à la gestion des domaines locaux de votre réseaux virtuel à travers l’installation d’un serveur DNS – dnsmasq. C’est sur ce conteneur que nous allons installer en parallèle notre serveur squid3.

Une telle installation dans un environnement de développement local, vous permettra alors d’accéder directement via votre navigateur web à l’ensemble vos applications web local ; Que vous soyez connecté sur l’une des machine de votre parc réseaux ou de l’extérieur de celui-ci, et cela comme si ces applications web était installés sur votre propre poste de travail.

Du fait que votre serveur dnsmasq est installé sur le même conteneur que le serveur squid, celui-ci redirigera en premier lieux les requêtes sur vos conteneurs OpenVZ locaux, puis (dans le cas ou le domaine n’y est pas paramétré) il cherchera alors à la relayer sur le web (voir configuration du fichier resolv.conf dans l’article sur dnsmasq)

En combinant cela au plugin Tunnel Switch sur chrome en 1 clic votre nom de domaine www.domaine.com pourra alors vous faire passer de la version local à la version distante de vos développements (cool non ?)

Il vous suffit de configurer Tunnel Switch de la façon suivante :

Astuce : afin d’accéder à votre serveur squid en dehors de votre réseaux local, il convient de rediriger le port 3128 de votre box vers le port 3128 de votre serveur squid. De cette façon vous pourrez alors configurer sur le plugin TunnelSwitch avec une ADDR_IP_SERVEUR_SQUID en local correspondant à l’adresse local de votre serveur squid, ou une ADDR_IP_SERVEUR_SQUID correspondant à l’adresse votre box internet pour une utilisation distante en dehors votre réseaux local.

Note : dans le cas ou votre FAI vous fournis une adresse ip dynamique, il vous faudra également souscrire à un service type dyndns (ou autre) supporté par votre box afin d’avoir un host fixe pour la configuration de ce plugin!

Installation du serveur Proxy Squid3

Ouvrez votre terminal et tappez:

En premier lieu nous allons effectuer un sauvegarde du fichier de configuration de squid.

Puis éditer le fichier de configuration de squid :

Le fichier de configuration est long, …très long!
Il vous faudra cependant ajouter/modifier certain paramères de ce fichier : (Sous vim effectuer une recherche avec avec /cequejerecherche)

Configurer squid pour qu’il écoute le port 3128 :

Ajouter un peu de sécurité à votre serveur squid

Toujours dans le fichier squid.conf nous allons ajouter une authentification sur le serveur squid basé sur NCSA. Qui permet à squid d’effectuer une validation des utilisateurs qui tentent d’accéder au proxy en comparant leurs informations (nom et le password) enregistrés dans le fichier /etc/squid3/users à l’aide de la commande htpasswd, délivrant ainsi à l’utilisateur lors de sa 1er connexion une fenêtre d’authentification HTTP standard.

Pour cela ajouter les lignes suivant aux fichier squid.conf

  • auth_param basic children : Si vous avez beaucoup utilisateurs, il sera nécessaire d’augmenter ce nombre.
  • auth_param basic realm : correspond au texte qui apparaîtra dans la fenêtre de demande de connexion.
    Vous pouvez par la même occasion personnaliser le message d’authentification qui apparaîtra dans la fenêtre de connexion.
  • auth_param basic credentialsttl : correspond à la durée de vie de l’authentification.
  • auth_param basic casesensitive : permet d’ignorer la case (Majuscule/minuscule)

Maintenant que le fichier squid.conf est sécurisé par une authentification basé sur un htpasswd user, il vous faut gérer le fichier utilisateur en question.

Ouvrez votre terminal et tappez:

Puis ajouter y des utilisateur avec la commande :

Cette commande vous demandera alors un password, puis la confirmation de celui-ci pour l’utilisateur nom_utilisateur, puis ajoutera l’utilisateur en question dans le fichier users.

Pour supprimer un utilisateur il suffit de supprimer la ligne correspondante du fichier users.

Surveillez vos utilisateurs

Ajouter cela à votre fichier squid.conf afin d’avoir dans les logs d’accès squid les url complètes des pages que vos utilisateurs visitent!
(HaHAHAAA!!! #riredemoniaque)

Avec la ligne suivante vous pouvez également spécifier le fichier de log qui sera utilisé par squid3 :

Redémarrage

Une fois le fichier squid.conf est correctement configurer, vous allez devoir redémarrer Squid :

ou avec :

Voila c’est fini vous pouvez maintenant activer le plugin Tunnel Switch de votre chrome pour tester votre serveur Proxy, dès lors vous devriez voir apparaître une fenêtre d’authentification HTTP comme configurer ci-dessus.

Laisser un commentaire

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

Partenaires

Cekome Graal Network Panoramaweb