Authentification de comptes Solaris sur un Active Directory
Contents
1 Introduction
Mise en place d’une authentification sur Solaris à partir d’un Active Directory (AD).
Ce que permet cette mise en place pour la gestion des utilisateurs sur une machine :
- les comptes solaris sont à créer avec un identifiant identique à celui de l’AD, avec un espace disque.
- la vérification du mot de passe se fait via l’AD.
Ce document s’appuie sur un scénario de mise en place de ce type d’authentification sur une Solaris 9.
Les concepts décrits ici s’appliquent à tous les systèmes d’exploitation UNIX prenant en charge le protocole Kerberos version 5.
Environnement :
- serveur_ad.domaine.fr est le serveur Active Directory,
- domaine.fr est le domaine géré par serveur_ad.
2 Prérequis
Les prérequis :
- Kerberos version 5 (dans le produit Sun Enterprise Authentication Mechanism (SEAM) 1.0.1),
- s’assurer que le DNS est bien configuré sur le domaine qui est géré par l’Active Directory,
- s’assurer que la date est bien synchrone avec le serveur AD (ntpdate).
3 Configuration
Les fichiers à configurer pour permettre une authentification sur la station solaris via l’AD sont :
- /etc/pam.conf pour indiquer que Kerberos doit être utilisé pour l’authentification,
- /etc/krb5/krb5.conf pour l’utilisation du KDC (Key Distribution Center) du domaine de l’AD.
3.1 krb5.conf
Nouveau fichier de configuration /etc/krb5/krb5.conf :
# Configuration de PAM # Le 13/03/2007 - Yann Le Thieis # # Authentification # other auth sufficient pam_krb5.so.1 other auth sufficient pam_unix.so.1 try_first_pass # # Password # other password sufficient pam_krb5.so.1 other password sufficient pam_unix.so.1 # # Account # other account optional pam_krb5.so.1 other account optional pam_unix.so.1 # # Session # other session optional pam_krb5.so.1 other session optional pam_unix.so.1
3.2 pam.conf
Tout d’abords sauvegarde de la version originale de krb5.conf :
bash-2.05# cp -p /etc/krb5/krb5.conf /etc/krb5/krb5.conf.old
La configuration :
# krb5.conf configuration pour le domaine domaine.fr # Le 13/03/2007 par Yann Le Thieis # [libdefaults] default_realm = DOMAINE.FR verify_ap_req_nofail = false [realms] domaine.fr = { kdc = serveur_ad.domaine.fr:88 admin_server = serveur_ad.domaine.fr:749 default_domain = domaine.fr } [domain_realm] .domaine.fr = DOMAINE.FR domaine.fr = DOMAINE.FR [logging] default = FILE:/var/krb5/kdc.log kdc = FILE:/var/krb5/kdc.log kdc_rotate = { # How often to rotate kdc.log. Logs will get rotated no more # often than the period, and less often if the KDC is not used # frequently. period = 1d # how many versions of kdc.log to keep around (kdc.log.0, kdc.log.1, ...) versions = 10 } [appdefaults] kinit = { renewable = true forwardable= true } gkadmin = { help_url = http://docs.sun.com:80/ab2/coll.384.1/SEAM/@AB2PageView/1195 }
La ligne “verify_ap_req_nofail = false” est extrèmement importante si le fichier /etc/krb5/krb5.keytab n’est pas renseigné avec une ligne pour votre domaine (enfin une clé qui valide le KDC, voir le manuel man krb5.conf).
4 Essai de cette configuration
Le compte de l’AD qui est utilisé pour le test est ylethieis, qui n’existe pas sur le poste solaris en local. Mais dans un premier temps, essai avec un compte bidon qui n’existe nulle part.
bash-2.05# kinit bidon Mot de passe de bidon@domaine.fr : kinit: Client introuvable dans la base de données Kerberos lors de l'obtention des références initiales bash-2.05#
remarque: kinit – obtain and cache Kerberos ticket-granting ticket.
Essai avec le compte ylethieis mais en entrant un mauvais mot de passe :
bash-2.05# kinit ylethieis Mot de passe de ylethieis@domaine.fr : kinit: La pré-authentification a échoué lors de l'obtention des références initiales bash-2.05#
Essai avec le compte ylethieis et le bon mot de passe pour l’AD :
bash-2.05# kinit ylethieis Mot de passe de ylethieis@domaine.fr : bash-2.05#
Le service client de Kerberos sur la machine solaris interroge correctement l’AD.
Les tickets en cache :
bash-2.05# klist Cache ticket : /tmp/krb5cc_0 Personne par défaut : ylethieis@domaine.fr Valide à partir de expire principal de service mardi 13 mars 2007, 11:03:14 GMT mardi 13 mars 2007, 21:03:14 GMT krbtgt/domaine.fr@domaine.fr renouvellement jusqu'à mardi 13 mars 2007, 21:03:14 GMT
5 Création d’un environnement de comptes AD sur la machine solaris
Création de l’espace des comptes authentifiés via l’AD, et d’un groupe utilisateur ad afin de les distinguer des autres (non obligatoire!) :
bash-2.05# mkdir /export/home/ad bash-2.05# groupadd ad
Ajout d’un compte ylethieis :
bash-2.05# useradd -g ad -m -d /export/home/ylethieis ylethieis UX: useradd: ylethieis name too long. 64 blocs
Ce compte a pour groupe principal le groupe ad.
Le nom de login est indiqué comme trop long mais le compte a bien été créé!
A cette étape, sur le système Solaris, l’utilisateur ylethieis :
- n’a pas de mot de passe,
- a pour groupe principal ad,
- est juste renseigné dans /etc/passwd.
Connexion au système Solaris avec le compte ylethieis :
yann@yuluth:~$ telnet serveur_solaris Trying 192.168.0.120... Connected to 192.168.0.120. Escape character is '^]'. SunOS 5.9 login: ylethieis Enter Kerberos password for ylethieis: Last login: Tue Mar 13 14:27:52 from yuluth Sun Microsystems Inc. SunOS 5.9 Generic January 2003 $
Nous pouvons constater que l’authentification via l’Active Directory a réussi sur le compte ylethieis.