ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[tutoriel:comment_ajouter_machine_ubuntu_dans_domaine_active_directory]]

Piste: » comment_ajouter_machine_ubuntu_dans_domaine_active_directory


Comment ajouter une machine Ubuntu dans un domaine Active Directory ?

Logiciels utilisés

FIXME : pertinence ? à mettre à jour ?
Nom Version
Microsoft Windows Server 2003 SP1
Linux Ubuntu 6.06
Winbind 3.0.22-Ubuntu
Samba 3.0.22-Ubuntu
krb5-user Krb5-1.4.3

Termes employés

Terme Signification
10.0.0.1 Adresse IP du CD
10.0.0.2 Adresse IP du serveur de temps
10.0.0.3 Adresse IP du serveur Kerberos
AD Active Directory
Administrateur Utilisateur du domaine ayant des droits administrateur
CD (DC plus comunément) Contrôleur de domaine
FQDN Nom de domaine pleinement qualifié (Fully Qualified Domain Name)
MaMachine Nom de machine de la station Ubuntu
MaMachine.MonDomaine FQDN de la station Ubuntu
MonDomaine Domaine AD
MONDOMAINE Royaume Kerberos
NTP Protocole de temps réseau (Network Time Protocol)
PAM
ServeurCD.MonDomaine FQDN du contrôleur de domaine
ServeurKRB.MonDomaine FQDN du serveur Kerberos
ServeurNTP.MonDomaine FQDN du serveur de temps
Utilisateur Utilisateur du domaine

Réglage de l'heure

Le temps est essentiel pour Kerberos. Le meilleur moyen de s'affranchir de cela est d'utiliser un serveur NTP (Network Time Protocol). Dans « /etc/default/ntpdate » :

# serveur source à vérifier
NTPSERVERS="ServeurNTP.MonDomaine"
# options supplémentaires pour ntpdate
NTPOPTIONS="-u"
/etc/network/if-up.d/ntpdate

Nom de domaine pleinement qualifié

Un FQDN est essentiel afin de faire fonctionner Kerberos. Dans « /etc/hosts » :

127.0.0.1 localhost.localdomain localhost MaMachine

Configurer Kerberos

Programmes requis

Installez le paquet krb5-user.

La configuration de Kerberos (« /etc/krb5.conf ») n'est pas nécessaire, si les enregistrements du service DNS sont correctement configurés pour Kerberos.

Fichier « /etc/krb5.conf » :

[logging]
    default = FILE10000:/var/log/krb5lib.log

[libdefaults]
    ticket_lifetime = 24000
    default_realm = MONDOMAINE
    default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
    default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc

[realms]
    MONDOMAINE = {
        kdc = ServeurKRB.MonDomaine
        admin_server = ServeurCD.MonDomaine
        default_domain = MONDOMAINE
}

[domain_realm]
    .MonDomaine = MONDOMAINE
    MonDomaine = MONDOMAINE

Test

Demander un TGT (Ticket-Granting Ticket, il n'est pas nécessaire d'être administrateur, chaque compte valide du domaine peut être utilisé) :

sudo kinit Utilisateur@MONDOMAINE
Password for Utilisateur@MONDOMAINE: ****

Dans certain cas plusieurs erreurs peuvent apparaitre :

kinit(v5): KDC has no support for encryption type while getting initial credentials

Il faut « rafraichir » votre mot de passe administrateur. Modifiez-le depuis votre contrôleur de domaine. Changez-le ou remettez le même, l'important est de forcer une mise à jour pour le mot de passe de ce compte.

kinit(v5): Clock skew too great while getting initial credentials

Il y a un décalage trop important (> 5min) entre l'heure de la machine et celle du CD. La communication est de ce fait impossible. Réglage de l'heure

Vérification de la validité du ticket

sudo  klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Utilisateur@MONDOMAINE

Valid starting     Expires            Service principal
01/21/05 10:28:51  01/21/05 20:27:43    krbtgt/MONDOMAINE@MONDOMAINE (C'est la partie à vérifier)
        renew until 01/21/05 20:28:51

Joindre un domaine AD

Programme requis

Pour vous connecter à Windows 2003 SP1, la version 3.0.14a de Winbind est nécessaire. Les paquets à installer sont winbind et samba.

Joindre le domaine

Dans « /etc/samba/smb.conf » :

[global]
        security = ADS
        realm = MONDOMAINE
        password server = ServeurCD.MonDomaine
        workgroup = MonDomaine
        winbind separator = +
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        winbind enum users = yes
        winbind enum groups = yes
        template homedir = /home/%D/%U
        template shell = /bin/bash
        client use spnego = yes
        winbind use default domain = yes
        # empêche le client de devenir maitre explorateur
        domain master = no
        local master = no
        preferred master = no
        os level = 0

On redémarre le service pour prendre en compte les nouveaux paramètres.

sudo /etc/init.d/samba restart

Effectuer une requête de TGT Kerberos valide, ce dernier étant autorisé à joindre des machines au domaine AD.

sudo net join -U Administrateur -S ServeurCD.MonDomaine
Using short domain name – MONDOMAINE
Joined 'MaMachine' to realm 'MONDOMAINE'

Si l'authentification Kerberos est valide, aucun mot de passe ne doit vous être demandé (si lors de votre demande ticket kerberos vous vous être connecté en administrateur). Si non, le mot de passe administrateur vous sera demandé.

Démarrer Winbind

sudo /etc/init.d/winbind start

Test

Pour obtenir une liste des utilisateurs du domaine :

wbinfo -u

Et une liste des groupes :

wbinfo -g

Configurer l'authentification

Le fichier « nsswitch.conf »

Dans « /etc/nsswitch.conf » :

passwd:   compat winbind
group:    compat winbind
shadow:   compat

hosts:       files dns
networks:    files dns
 
services:    db files
protocols:   db files
rpc:         db files
ethers:      db files
netmasks:    files
netgroup:    files
bootparams:  files
 
automount:   files
aliases:     files

Test

Tester le module nsswitch Winbind à l'aide de getent :

sudo getent passwd

root:x:0:0:root:/root:/bin/bash
...
LAB+administrator:x:10000:10000:Administrator:/home/LAB/administrator:/bin/bash
LAB+gast:x:10001:10001:Gast:/home/LAB/gast:/bin/bash
...
sudo getent group

root:x:0:
daemon:x:1:
bin:x:2:
...
LAB+organisations-admins:x:10005:administrator
LAB+domänen-admins:x:10006:manuel,administrator
LAB+domänen-benutzer:x:10000:
LAB+domänen-gäste:x:10001:
LAB+linux-admins:x:10004:manuel

PAM

Avec cette configuration, vous pouvez accéder à la machine à l'aide d'un compte local ou un compte du domaine. À la première connexion d'un utilisateur, un répertoire « home » sera créé.

Dans « /etc/pam.d/common-account » :

account sufficient      pam_winbind.so
account sufficient      pam_unix.so

Dans « /etc/pam.d/common-auth » :

auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass

Dans « /etc/pam.d/common-session » :

session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Dans « /etc/pam.d/sudo » :

auth sufficient pam_winbind.so
auth required pam_unix.so use_first_pass

Configuration finale

Chaque domaine a besoin d'un répertoire dans « /home » :

sudo  mkdir /home/MONDOMAINE

Mais il faut attribuer des droits au dossier :

sudo  chmod 777 /home/MONDOMAINE

Utilisation

Connexion avec [Domain] [Winbind separator] [Nom_d_utilisateur] :

login: Utilisateur
Password: *****
...

Pour obtenir :

Utilisateur@MaMachine:~$
En ajoutant le paramètre « winbind use default domain = yes » dans la configuration de Samba, il n'est plus nécessaire de spécifier le domaine lors de la connexion sur le domaine par défaut.

Résolution de problème

Si le module PAM Winbind dans « /var/log/auth.log » dit que l'utilisateur AD n'existe pas, redémarrez Winbind. Il serait probablement préférable de redémarrer complètement la station si on était sous Windows, mais comme on est sous GNU/Linux, c'est inutile.

sudo  /etc/init.d/winbind start

Un petit plus

FIXME : rendre « neutre » cette section + scripts à vérifier

Script réalisé par max-k et moi-même permettant d'enregistrer un poste client Edgy Eft sur un domaine Windows 2000/2003 : joint au wiki, à l'extérieur. Et un poste client Feisty Fawn sur un domaine Windows 2000/2003 (à tester pour être sur que ça fonctionne): à l'extérieur. Et un poste client Gutsy sur un domaine Windows 2000/2003 (testé et à l'air de fonctionner...attente de retour. Testé par Gnieark sur un domaine Win serveur 2003 SP2 et fonctionne): à l'extérieur.

Pour tout retour, merci de nous contacter aux adresses e-mail suivantes :

  • tigermickrs (At) hotmail.com
  • max-k (At) post.com

Il reste le problème de rentrer 2 fois le mot de passe à l'ouverture de session si on monte des dossiers partagés du serveur sur le client Linux avec PAM. Pour cela 2 pistes (attention aux ouvertures de failles sur votre système) :

  • montage avec smb à la place de PAM ;
  • faire un kinit à l'ouverture de session en même temps.

Si vous voulez que l'utilisateur du PC client ait accès à certaines choses comme le lecteur de CD-ROM, l'accélération 3D, etc., n'oubliez pas d'ajouter soit le groupe « Utilisateur du domaine » soit chaque utilisateur spécifique dans « /etc/group » dans les groupes adéquats.

Liens


Contributeurs : fredb, iuchiban, tigermickrs, max-k.


tutoriel/comment_ajouter_machine_ubuntu_dans_domaine_active_directory.txt · Dernière modification: Le 09/03/2008, à 11:12 par 82.245.95.222
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL