Proxy SQUID avec authentification via PAM

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.

Ici, on va utiliser le système d’authentification Linux PAM, qui va utiliser la base de comptes locales du serveur Linux.
Pam étant par définition modulaire, vous pourriez par la suite gràce à ses fonctions, utiliser une base de données, un serveur ldap, ou autre…

Mise en oeuvre

Si squid n’est pas installé, ce qui est peu probable sur CentOS, utilisez la commande yum -y install squid

Modifiez ensuite le fichier /etc/squid/squid.conf comme ceci :


#-------------------------------------------------------------------
# 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/pam_auth
#
# 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
#-------------------------------------------------------------------

Pour « clarifier » le fichier, je crée les 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…

Il faut maintenant indiquer à Squid de relire sa configuration.

Si SQUID est déjà lancé, il faut lui envoyer 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

La gestion d’un compte utilisateur sort du cadre de cet article, mais pour tester, voici les commandes pour en créer un…

useradd test Ceci crée un utilisateur nommé test.
passwd test Cette commande affecte un mot de passe à l’utilisateur test, il faudra le taper, puis le confirmer.

Paramétrez votre navigateur pour utiliser une connexion proxy, en indiquant l’adresse ip de votre serveur et le port 3128 ( port standard squid, indiqué par la variable http_port ).

Quand vous lancez votre navigateur, un login vous est demandé. Entrez donc test comme nom d’utilisateur et le mot de passe que vous avez indiqué.

Si vous ne donnez pas un mot de passe correct, vous aurez un message d’erreur.

A partir de maintenant, les logs de squid situés dans le fichier /var/squid/access.log, mentionnent le nom d’utilisateur saisi dans le navigateur.

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.