Apportez votre aide…
Ceci est une ancienne révision du document !
Comment ajouter une machine Ubuntu dans un domaine Active Directory ?
Logiciels utilisés
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 |
---|---|
AD | Active Directory |
CD | Contrôleur de Domaine |
ServeurCD.MonDomaine | FQDN du Contrôleur de Domaine |
10.0.0.1 | IP du CD |
NTP | Network Time Protocol (Protocole de Temps Réseau) |
ServeurNTP.MonDomaine | FQDN du serveur de temps |
10.0.0.2 | IP du serveur de temps |
ServeurKRB.MonDomaine | FQDN du serveur Kerberos |
10.0.0.3 | IP du serveur Kerberos |
FQDN | Nom de Domaine Pleinement Qualifié (Fully Qualified Domain Name) |
MonDomaine | Domaine Active Directory |
MONDOMAINE | Royaume Kerberos |
MaMachine | nom de machine de la station Ubuntu |
MaMachine.MonDomaine | FQDN de la station Ubuntu |
Utilisateur | utilisateur du domaine |
Administrateur | utilisateur du domaine ayant des droits administrateur |
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"
sudo /etc/init.d/ntpdate restart
Nom de Domaine Pleinement Qualifié (FQDN)
Un FQDN est essentiel afin de faire fonctionner Kerberos. Dans /etc/hosts
:
127.0.0.1 localhost.localdomain localhost MaMachine
Configurer Kerberos
Programmes requis
Il faut décommenter les urls dans le fichier /etc/apt/sources.list
:
sudo apt-get update sudo apt-get install 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 Password for Utilisateur@MONDOMAINE: ****
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. Dans Hoary, seule la version 3.0.10 est disponible. Vous pouvez toutefois trouver la version 3.0.14a dans Breezy.
sudo apt-get install winbind 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
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é.
Test
Pour obtenir une liste des utilisateurs du domaine :
wbinfo -u
Et une liste des groupes :
wbinfo -g
Configurer l'authentification
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:~$
Astuce
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
Problème possible à rencontrer
Bonjour,
Je vais répondre moi même au post que j'avais édité ici même et qui concernait mes problèmes rencontrés sur l'ajout d'une machine linux/ubuntu dans l'AD d'un serveur de domaine windows 2000. Tout d'abord j'ai eu besoin du mot de passe administrateur pour joindre ma machine au serveur (cela ne voulais pas dire pour autant que ma config n'étais pas bonne).
Ensuite, pour la configuration de PAM voici comment j'ai dû la mettre en place :
Pour /etc/pam.d/common-account
:
account sufficient /lib/security/pam_winbind.so
Pour /etc/pam.d/common-auth
:
auth required pam_securetty.so auth sufficient pam_winbind.so auth sufficient pam_unix.so use_first_pass auth required pam_nologin.so
Pour /etc/pam.d/common-session
:
session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022 session optional /lib/security/pam_console.so
Pour /etc/pam.d/common-password
:
password required pam_unix.so nullok obscure min=4 max=8 md5
Si je configure PAM comme il est dis plus haut dans ce wiki, quand j'essaie de me connecter via GDM à mon compte Active Directory, lors de l'entrée de mon login le message d'erreur "l'authentification a échoué" apparaît sans même me laisser taper un mot de passe.
Voilà pour les personnes qui rencontrent le même problème vous savez ce qu'ils vous restent à faire ; cela dit je ne sais pas à quoi cela est dû exactement mais je poste ici si j'ai des informations supplémentaires.
Deux chtits problèmes subsistent tout de même auxquels je n'est pas de solutions :
- Un gnome complétement en anglais alors que j'ai désinstallé tout les pack "en" pour gnome
- Et qd je demarre une appli en graphique qui nécessite les droits super-utilisateur je rentre mon mot de passe et j'ai le message d'erreur :
"Failed to run users-admin as user root: Child terminated with 1 status"
edit : le problème des applications qui utilisent gksudo est résolu dans dapper drake ; cela doit être dû à une nouvelle version de pam.
Contributeurs : FredB, iuchiban Article original : Active Directory Winbind Howto