Proxy SQUID avec authentification par fichier htpasswd.

But recherché

Le proxy SQUID note dans ses logs tout le trafic http qui lui est demandé.

Chaque requete est notée avec l’adresse ip de l’utilisateur comme référence.

Or les adresses ip pouvant être dynamiques, cela n’est pas une information suffisante pour identifier la personne qui a effectué la requête.

Pour faciliter l’usage des statistiques du proxy, il est bien plus simple d’avoir le nom de la personne concernée dans les logs.

Attention, identifier une personne nécessite que celle-ci soit informée de la réalisation de statistiques et ai accepté une charte informatique par sa signature.

Sensibilisez vos utilisateurs au fait qu’ils n’ont pas intérêt de divulguer leur mot de passe.

L’authentification permet une identification, par la saisie d’un login et mot de passe lors de l’ouverture du navigateur.

Mise en oeuvre

Pour activer l’authentification, il suffit d’ajouter les lignes suivantes au fichier /etc/squid/squid.conf.

Pour « clarifier » le fichier, je crée ces lignes juste après les commentaires détaillant la variable utilisée. Cela permet d’avoir les explications à proximité de la variable, cela peut servir…


#-------------------------------------------------------------------
# Ajoutez ces lignes au dessous de l'exemple
# donne dans le fichier d'origine squid.conf
#-------------------------------------------------------------------
#
# Déclaration de l'authentification
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd_squid
#
# On lance 5 processus d'authentificaton afin d'accélérer le traîtement
auth_param basic children 5
#
# Message affiche lors de la demande de mot de passe
#
auth_param basic realm Indiquez un login et un mot de passe
#
# delai de validite du mot de passe
#
# passe ce delai, le mot de passe sera a nouveau demande.
# cela evite l'usage des navigateurs laisses ouverts par les
# utilisateurs durant la pause dejeuner par exemple.
#
# auth_param basic credentialsttl 30 minutes
auth_param basic credentialsttl 2 hours

#-------------------------------------------------------------------
# Ajouter ces lignes avant le premier http_access non commente


acl mo2pass proxy_auth REQUIRED
http_access allow mo2pass
#-------------------------------------------------------------------

Si SQUID est déjà lancé, il faut lui demander de relire la configuration avec la commande squid -k reconfigure

Si SQUID n’est pas lancé, démarrez le service pour vérifier le fonctionnement. Utilisez la commande /etc/init.d/squid start

Création d’un utilisateur

On a indiqué le nom d’un fichier au processus d’authentification.
Il faut donc créer ce fichier lors du premier ajout d’un compte utilisateur.
Pour cela on utilise un paramètre « -c » à la commande htpasswd.

/usr/bin/htpasswd -c /etc/squid/passwd_squid user-id

Le mot de passe vous sera demandé et vous devrez le confirmer.

Pensez a donner l’appartenance de ce fichier à l’utilisateur squid.

pour cela, utilisez la commande chown squid: /etc/squid/passwd_squid

Si ce fichier existe déjà, on utilise directement la commande
/usr/bin/htpasswd /etc/squid/passwd_squid user-id2

Le mot de passe vous sera demandé et vous devrez le confirmer.

Test

Sur un poste client passant par le proxy, ouvrez le navigateur, vous devriez avoir une demande de login et de mot de passe.

A partir de maintenant, les logs de squid indiquent le nom de l’utilisateur en supplément de l’adresse IP de ce poste client.
Les logiciels comme SARG vont classer les sites visités par nom d’utilisateur, ce qui est bien plus pratique pour la lecture des statistiques.

Exemple :

Le nom d’utilisateur est en gras dans le log suivant :

1156334880.066 308 127.0.0.1 TCP_MISS/200 430 GET http://old.citoyendunet.org/spip_background.php3 laurent DIRECT/82.245.220.46 image/gif

Auparavant, cela donnait quelque chose comme cela :

1156318023.162 171 127.0.0.1 TCP_MISS/200 430 GET http://old.citoyendunet.org/spip_background.php3 – DIRECT/82.245.220.46 image/gif

Le nom d’utilisateur n’apparait pas.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.