Authentification des usagers
- Auteurs :
- ChristopheDubreuil
Version : 1.0
- Date de création :
27/06/2014
Modification : Pas de modification
Status : En cours d'écriture
- Relectures :
- Relu par :
- Non relu
- Validation :
- Validé par :
- Non validé
Destinataire :
Commentaires :
- Vie du document :
- 1.0 :
Version initiale
27/06/2014
Table des matières
Warning
Les procédures suivantes peuvent casser complètement votre station de travail linux. Il faut donc faire très attention et bien réfléchir à ce que l'on fait.
Warning
Les procédures suivantes sont validées sous DEBIAN WHEEZY. Elles peuvent certainement fonctionner sous d'autre distributions.
1 Principe
On va utiliser le serveur ldap présent dans escolan pour authentifier les stations de travail.
Les "home directory" seront créés automatiquement créés à la connexion
2 Contrôle du DNS
Nous allons utiliser l'entrée DNS "ldap" pour trouver le serveur dans la suite de la configuration.
La configuration est très sensible à ce problème de résolution DNS. Si la résolution ne fonctionne pas correctement, l'authentification ne serra pas possible, et la machine serra très très lente.
Un simple "ls" sur un répertoire peut prendre plusieurs minutes, le système interrogeant le ldap en permanence.
La première chose a faire sur la station est donc de contrôler que la résolution dns fonctionne correctement :
(unknown)(undefu-)(ltsp-ng0377509w)(root)[/home/sysadmin]$ ping ldap
PING RCA-172-19-17-134.ifsi-dubreuil.ef2s.giprecia.org (172.19.17.134) 56(84) bytes of data.
64 bytes from rca-172-19-17-134.ifsi-dubreuil.ef2s.giprecia.org (172.19.17.134): icmp_req=1 ttl=63 time=0.600 ms
Note
Si on veux rendre moins sensible le système à la perte du dns, on peut ajouter l'entrée dans le fichier /etc/hosts, mais cela obligera a modifier toutes les stations une à une s'il y a à l'avenir un changement dans l'adresse du serveur ldap ( ce qui est possible )
Note
Eviter de mettre l'ip en dur dans les configuration qui suivent car sinin, la maintenance devient impossible
3 Contrôle du fonctionnement de l'authentification sur LDAP
On va vérifier que tout est bien calé au niveau LDAP. Pour cela, on va browser le ldap en s'authentifiant dessus. Ce controle permet de valider la partie authentification sur le serveur LDAP, et de controler que le mot de passe est correct.
LOGIN="compte_a_tester"
DN=$(ldapsearch -x uid=$LOGIN -LLL dn -b o=gouv,c=fr -h ldap | tr "\n" " " | sed "s/ou *=/ou=/g" | cut -d " " -f 2)
ldapsearch -x -LLL -b o=gouv,c=fr -h ldap -D $DN -W uid=$LOGIN userPassword
Il doit résulter de ces trois commandes l'affichage d'un champ userPassword. Ce champ n'est visible par un usager que s'il est correctement authentifié sur le LDAP ( Et il ne peut bien entendu voir que son propre userPassword ).
Enter LDAP Password:
dn: uid=xxxxxxxxxx,ou=local,ou=personnels,ou=utilisateurs,ou=0377509w,ou=ef2s,ou
=education,o=gouv,c=fr
userPassword:: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
4 Création d'un compte de test
Il est important de créer un compte de test qui n'est pas dans ldap, afin de pouvoir déterminer, lorsqu'il y a un problème, si ce dernier vient de ldap, de pam sur ldap ou de pam de manière globale
adduser test
su test
La connexion doit fonctionner sans problème.
5 Configuration de nsswitch
nsswitch permet de passer d'une gestion par fichiers locaux des usagers et des groupes à une gestion réseau.
La base de compte peut-etre posée sur nis, ldap, ....
Cette base de compte permet de gérer les droits d'accès au système de fichiers, mais n'autorise pas l'authentification, cette dernière étant géré par pam ( voir chapitre suivant ).
5.1 Eléments de configuration
5.1.1 BASE
C'est le point de départ de l'arborescence pour le parcourt du ldap
exemples
BASE ou=0377509w,ou=ef2s,ou=education,o=gouv,c=fr BASE ou=ac-orleans-tours,ou=education,o=gouv,c=fr
en cas de doute, BASE o=gouv,c=fr fonctionnera
5.1.2 URI
C'est l'adresse du serveur ldap
exemple
URI ldap://ldap
Note
éviter de mettre l'ip. Utilisez le dns ou le fichier /etc/hosts
5.2 Installation des paquets
apt-get install libnss-ldapd libnss-ldap attr nscd acl libpam-mount libpam-ck-connector sshpass fuse fuse-utils cifs-utils sshfs ssh ldap-utils
5.3 Configuration des paquets
/etc/ldap.conf
BASE ou=0377509w,ou=ef2s,ou=education,o=gouv,c=fr URI ldap://ldap ldap_version 3 pam_password crypt
/etc/libnss-ldap.conf
BASE ou=0377509w,ou=ef2s,ou=education,o=gouv,c=fr URI ldap://ldap ldap_version 3
/etc/nsswitch.conf
passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns ...
Ajouter simplement "ldap" derrière les 3 éléments "passwd", "group" et "shadow"
5.4 Contrôle de la configuration
A ce point, il n'est pas encore possible de se connecter via ldap, mais les usagers sont correctement reconnus via ldap.
Pour s'en assurer
getent group
...
classe4:*:1016:stage.prof1,stage.prof2,stage.prof3,stage.prof4,stage.prof12,stage.prof13,stage.prof14,stage.prof15,stage.prof16,stage.prof17,stage.prof18,stage.prof19,stage.eleve41,stage.eleve42,stage.eleve43,stage.eleve44,stage.eleve45
profs-classe4:*:1017:stage.prof1,stage.prof2,stage.prof3,stage.prof4,stage.prof12,stage.prof13,stage.prof14,stage.prof15,stage.prof16,stage.prof17,stage.prof18,stage.prof19
getent passwd
...
stage.eleve44:*:1043:10002:System User:/home/s/stage.eleve44:/bin/bash
stage.eleve45:*:1044:10002:System User:/home/s/stage.eleve45:/bin/bash
xp$:*:10001:515:Computer:/nonexistent:/bin/false
seven$:*:10002:515:Computer:/nonexistent:/bin/false
6 Configuration de pam
Warning
Une erreur dans cette partie peut empêcher les connexion. Bien faire attention à ce que l'on fait
6.1 Backup
Il est essentiel de backuper les fichiers de configuration pam avant de les modifier :
mkdir ~/pam.d
cp /etc/pam.d/common* ~/pam.d
Note
toujours garder une console admin ouvert pour pouvoir re-modifier les fichier en cas de problème
6.2 Modification des fichiers pam.d
/etc/pam.d/common-auth
auth required pam_group.so
auth sufficient pam_unix.so nullok_secure
auth required pam_mount.so
auth sufficient pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
/etc/pam.d/common-password
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
/etc/pam.d/common-account
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_mount.so
session optional pam_ldap.so
session optional pam_ck_connector.so nox11
7 Configuration des groupes par defaut
/etc/security/group.conf
*;*;*;Al0000-2400;floppy,audio,cdrom,video,plugdev,fuse,video,plugdev,scanner,fuse,x2gouser
fuse : permet de monter "Mes espaces" à la connexion
7.1 Controle de la connexion
7.1.1 via su
On va utiliser dans un premier su pour contrôler la connexion. Dans un premier temps, on va controler que l'usager "test" se connecte toujours
su test
La connexion doit fonctionner. Si elle ne fonctionne pas, c'est qu'il y a une erreur au niveau de la configuration de pam. Ne surtout pas fermer la console, et restaurer les fichiers de configuration de pam sauvegardés au début de la manipulation.
Ensuite, on va tester avec un usager du réseau
su gip.prof
La connexion doit fonctionner, et le dossier de l'usager doit être créé.
Si ce n'est pas le cas, controler la configuration de pam.
7.1.2 via ssh
ce contrôle ne se fait que si le contrôle précédent a fonctionné, car la connexion par ssh met en jeu la configuration du serveur ssh.
ssh gip.prof@127.0.0.1
Le résultat doit être le même que précédemment ( sinon, contrôler la configuration ssh de la machine )