Authentification SQUID avec les utilisateurs Active Directory

Prérequis

Samba 3 et Squid 2.5 qui s’installent avec la commande yum install squid samba.

Dans cet exemple, le domaine AD se nomme MONDOMAINE.FR et le contrôleur de domaine AD se nomme pdc.mondomaine.fr.

Paramétrage Kerberos

Kerberos est le système de jetons de sécurité utilisé par Windows dans active directory. Ce jeton est envoyé par le poste Windows auprès du serveur Squid pour s’identifier.

Pour avoir la possibilité d’utiliser kerberos, on doit configurer le fichier /etc/krb5.conf.

Je modifie le fichier de conf d’origine comme suit (les blocs non indiqués restent inchangés) :


[libdefaults]
default_realm = MONDOMAINE.FR
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
MONDOMAINE.FR =
kdc = pdc.mondomaine.fr:88
admin_server = pdc.mondomaine.fr:749
default_domain = mondomaine.fr

[domain_realm]
.mondomaine.fr = MONDOMAINE.FR
mondomaine.fr = MONDOMAINE.FR

On peut tester la connexion au kerberos de l’AD avec la commande :


[root@monserveur ~]# kinit administrateur@MONDOMAINE.FR
Password for administrateur@MONDOMAINE.FR:
[root@monserveur ~]#

Il n’y a pas de message d’erreur, donc tout va bien…

Configuration de Samba

Samba sert de lien avec le contrôleur de domaine AD gràce à son outil winbind.

On modiife le fichier /etc/samba/smb.conf comme ceci :


[global]
workgroup = MONDOMAINE
netbios name = monserveur
realm = MONDOMAINE.FR
security = ads
encrypt passwords = yes
password server = pdc.mondomaine.fr
local master = no
os level = 17
preferred master = no
winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/false

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# all log information in one file
log file = /var/log/samba/smbd.log
# Put a capping on the size of the log files (in Kb).
max log size = 50

Une fois ces modifications enregistrées, on crée un compte pour notre serveur dans l’AD:


net ads join -U administrateur

Le mot de passe administrateur est demandé et un message comme celui-ci doit s’afficher :


Using short domain name -- MONDOMAINE
Joined 'MONSERVEUR' to realm 'MONDOMAINE.FR'

Il ne reste qu’à activer Samba lors du boot et de démarrer les services correspondants avec les séquences sivantes :


chkconfig smb on
chkconfig winbind on
service smb start
service winbind start

Configuration de Squid

On modifie, ou on ajoute les paramètres suivants dans le fichier /etc/squid/squid.conf :


auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

Puis, plus loin :


acl password proxy_auth REQUIRED

Et enfin, :


#http_access allow localhost
http_access allow password
http_access deny all

Une fois le fichier enregistré, on démarre Squid avec la commande : service squid start.

On active Squid au démarrage avec la commande : chkconfig squid on.

Configuration du poste client

On doit modifier la configuration des navigateurs Ienternet Explorer des postes clients comme ceci :

« Démarrer », « Panneau de Configuration », « Options Internet ». Dans l’onglet « Connexions », on clique sur « Paramètres Réseau », puis on coche « utiliser un serveur proxy ».

Entrez l’adresse IP de votre proxy SQUID et donnez le numéro de port 3128 si vous n’avez pas touché les paramètres par défaut.

Comme ce paramètre doit être fait sur tous les postes clients, il peut être utile de faire la modification via des stratégies de groupe AD.

Ouvrez l’outil « Gestion des stratégies de groupe », créeez une nouvelle stratégie « Paramètres IE » et modifiez la configuration de :
« Configuration Utilisateur », « Paramètres Windows », « Maintenance Internet Explorer », « Connexion ».

Double cliquez sur « Paramètres de connexion », cliquez sur « Importer les paramètres actuels » et cochez « Supprimer les paramètres de connexion existants ». Cliquez sur le bouton « Modifier les paramètres », puis « Paramètres Réseau ». La fin de la configuration est la même que celle de l’Internet explorer d’un poste classique.

Validez les modification, et appliquez cette stratégie au domaine complet ou à une OU spécifique, comme cela vous va le mieux.

Un « gpupdate /force » ou un reboot des postes clients devrait leur modifier les paramètres Internet Explorer comme vous l’avez spécifié.

Test du fonctionnement

En ligne de commande sur le serveur, la commande suivante doit vous donner quelque chose comme ceci :

[root@monserveur ~]# /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
administrateur motdepasse
OK
[root@monserveur ~]#

C’est CTRL+D qui ferme la connexion à l’outil ntlm_auth.

Sur le poste client Windows paramétré avec le proxy, vous devriez pouvoir lancer le navigateur sans avoir de modification apparente du fonctionnement. Mais sur le serveur Squid, les logs du service vous indiquent que l’utilisateur est bien reconnu :

[root@monserveur ~]# tail -f /var/log/squid/access.log
1194450816.240 1657 127.0.0.1 TCP_MISS/200 52338 GET http://old.citoyendunet.org/ecrire/articles_edit.php3? Administrateur DIRECT/82.245.220.46 text/html
1194450816.354 486 127.0.0.1 TCP_MISS/304 274 GET http://old.citoyendunet.org/ecrire/js_menu_rubriques.php? Administrateur DIRECT/82.245.220.46 -
1194450816.560 205 127.0.0.1 TCP_MISS/200 1125 GET http://old.citoyendunet.org/ecrire/img_pack/doc-24.gif Administrateur DIRECT/82.245.220.46 image/gif
1194450816.881 321 127.0.0.1 TCP_MISS/200 387 GET http://old.citoyendunet.org/spip_background.php3 Administrateur DIRECT/82.245.220.46 image/gif
....
Ci dessus, le compte Administrateur est bien reconnu.
.....
Ici, l'utilisateur n'a pas fourni de nom de connexion valable ou n'a pas de session ouverte sur l'AD. Le refus est immédiat.
.....
1194451716.129 1 127.0.0.1 TCP_DENIED/407 1807 POST http://old.citoyendunet.org/ecrire/articles.php3? - NONE/- text/html
1194451716.138 2 127.0.0.1 TCP_DENIED/407 1811 POST http://old.citoyendunet.org/ecrire/articles.php3? - NONE/- text/html
1194451716.204 41 127.0.0.1 TCP_DENIED/407 1807 POST http://old.citoyendunet.org/ecrire/articles.php3? - NONE/- text/html
1194451727.085 3 127.0.0.1 TCP_DENIED/407 1811 POST http://old.citoyendunet.org/ecrire/articles.php3? - NONE/- text/html
....

Si un utilisateur n’a pas ouvert de session AD, le POP UP classique demandant un login/password est affiché.

L’utilisateur devra écrire en nom d’utilisateur : MONDOMAINE\MonNomUtilisateur, puis entrer son mot de passe pour pouvoir surfer sans autre restriction.

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.