L’authentification des utilisateurs avec Squid
Sommaire
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é :
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
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 :
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.
Bonjour Monsieur,
Grand Merci à Vous pour vos tutoriels !!
Cordialement
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)