15/11/2024

Services

L’authentification des utilisateurs avec Squid

I. Présentation

Dans ce tutoriel, nous allons apprendre à mettre en place un système d'authentification des utilisateurs lorsque ceux-ci souhaitent accéder à Intenet Pour cela, il est nécessaire d'avoir un serveur Squid opérationnel et non transparent.

II. L'authentification de l'utilisateur

Pour mettre en place une authentification, il est nécessaire que votre proxy ne soit pas transparent (une demande d'authentification alors que le serveur est censé être invisible est un peu contre-productive). Abandonnez donc l'idée de l'authentification des utilisateurs si votre proxy est transparent.

Il existe différents types d'authentification des utilisateurs avec SQUID, voici une petit liste des modes d'authentification que nous pouvons utiliser : yp_auth, smb_auth (samba), sasl_auth, ncsa_auth, msnt_auth, squid_ldap_auth (LDAP), ntlm_auth, ... Ce n'est pas une liste exhaustive et nous ne traiterons dans ce tutoriel que de l'authentification la plus basique : ncsa_auth.

Cette méthode d'authentification utilise des fichiers de type .htpasswd ou les mots de passe ne sont pas en clair mais hashés dans un fichier à part.

III. Le fichier utilisateurs

Dans ce fichier nous allons inscrire nos utilisateurs et leurs mots de passe (hashés) :

touch /etc/squid3/utilisateurs # Le nom du fichier vous est libre
htpasswd -c /etc/squid3/utilisateurs [Utilisateur]

Si la commande htpasswd n'est pas disponible, procédez à l'installation du package qui le contient :

apt-get install apache2-utils

Puis entrez le mot de passe de l'utilisateur.

Pour les curieux, si vous regardez dans votre fichier "utilisateurs" vous verrez votre utilisateur et son mot de passe hashé :

squidauth1

Vous pouvez aussi vérifier la présence de votre utilisateur en lançant le module d'authentification avec pour cible votre fichier "utilisateurs"

/usr/lib/squid3/ncsa_auth /etc/squid3/utilisateurs

squidauth2

Nous voyons que pour un utilisateur correct, le retour est "OK" et pour un utilisateur incorrecte, le retour est "ERR - *".

IV. La configuration Squid

Il faut maintenant modifier la configuration du serveur proxy squid afin que celui ci laisse les utilisateurs s'identifier et agisse en conséquence

Les lignes de configuration permettant l'authentification sont les suivantes :

# Chemin vers le module ncsa_auth et vers le fichier utilisateurs
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/utilisateurs
# Nombre d'authentification simultanées possibles
auth_param basic children 10
# Contenu texte qui apparaitra sur la fenêtre d'identification
auth_param basic realm Merci de vous identifier sur notre proxy
# Temps de vie de l'authentification, s'éteind prématurément si le navigateur est fermé
auth_param basic credentialsttl 3 hours

Maintenant, il faut créer l'ACL qui forcera l'authentification :

acl utilisateurs proxy_auth REQUIRED

Puis n'autoriser que les utilisateurs authentifié à passer le proxy :

http_access allow localnet utilisateurs

Vous pouvez maintenant redémarrer et tester cette configuration :

service squid3 restart

Voilà ce que vous devriez avoir au redémarrage de votre navigateur :

squidauth3

L'authentification ncsa permet simplement d'identifier les utilisateurs et de bloquer l'accès aux autres. Avec d'autres modes d'identification tel que l'utilisation d'un annuaire LDAP, il est possible d'affecter tel ou tel droits à un groupe d'utilisateurs.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “L’authentification des utilisateurs avec Squid

  • Bonjour Monsieur,
    Grand Merci à Vous pour vos tutoriels !!
    Cordialement

    Répondre
  • Bonjour! Bon tutoriel comme d’hab. Je voudrais savoir: comment faire pour que lorsqu’on se connecte a un wifi on soit automatiquement redirigé vers une page web ou on l’on devra renseigner login et mot de passe. Comme dans les gares (hot spot)

    Répondre

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.