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


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 )


System Message: ERROR/3 (<string>, line 335)

Document may not end with a transition.

AdminDocs: linux/Authentification des usagers (last edited 27/06/2014 12:21:35 by ChristopheDubreuil)