Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
applications:active_directory_add [Le 24/11/2006, 12:53] ostaquet Déplacée vers tutoriel/comment_ajouter_machine_ubuntu_dans_domaine_active_directory |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>hoary breezy dapper windows authentification tutoriel}} | ||
- | |||
- | ====== 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'' :<file> | ||
- | # serveur source à vérifier | ||
- | NTPSERVERS="ServeurNTP.MonDomaine" | ||
- | # options supplémentaires pour ntpdate | ||
- | NTPOPTIONS="-u"</file> | ||
- | |||
- | sudo /etc/init.d/ntpdate restart | ||
- | |||
- | |||
- | ===== Nom de Domaine Pleinement Qualifié (FQDN) ===== | ||
- | |||
- | Un FQDN est essentiel afin de faire fonctionner Kerberos. Dans ''/etc/hosts'' : | ||
- | <file>127.0.0.1 localhost.localdomain localhost MaMachine</file> | ||
- | |||
- | ===== Configurer Kerberos ===== | ||
- | |||
- | ==== Programmes requis ==== | ||
- | |||
- | Il faut décommenter les urls dans le fichier ''/etc/apt/sources.list'' : | ||
- | <code> | ||
- | sudo apt-get update | ||
- | sudo apt-get install krb5-user | ||
- | </code> | ||
- | |||
- | 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'' :<file> | ||
- | [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 | ||
- | </file> | ||
- | |||
- | ==== Test ==== | ||
- | |||
- | Demander un TGT (//Ticket-Granting Ticket//, il n'est pas nécessaire d'être administrateur, chaque compte valide du domaine peut être utilisé) : | ||
- | <code> | ||
- | sudo kinit Utilisateur | ||
- | Password for Utilisateur@MONDOMAINE: **** | ||
- | </code> | ||
- | ==== Vérification de la validité du ticket ==== | ||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | ===== 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'' : | ||
- | <file> | ||
- | [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 | ||
- | </file> | ||
- | |||
- | Effectuer une requête de TGT Kerberos valide, ce dernier étant autorisé à joindre des machines au domaine AD. | ||
- | |||
- | <code> | ||
- | sudo net join -U Administrateur -S ServeurCD.MonDomaine | ||
- | Using short domain name – MONDOMAINE | ||
- | Joined 'MaMachine' to realm 'MONDOMAINE' | ||
- | </code> | ||
- | |||
- | 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'' : | ||
- | <file> | ||
- | 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 | ||
- | </file> | ||
- | |||
- | ==== Test ==== | ||
- | |||
- | Tester le module nsswitch Winbind à l'aide de **getent** : | ||
- | <code> | ||
- | 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 | ||
- | ... | ||
- | </code> | ||
- | |||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | ===== 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'' : | ||
- | <file> | ||
- | account sufficient pam_winbind.so | ||
- | account sufficient pam_unix.so | ||
- | </file> | ||
- | Dans ''/etc/pam.d/common-auth'' : | ||
- | <file> | ||
- | auth sufficient pam_winbind.so | ||
- | auth sufficient pam_unix.so nullok_secure use_first_pass | ||
- | </file> | ||
- | Dans ''/etc/pam.d/common-session'' : | ||
- | <file> | ||
- | session required pam_unix.so | ||
- | session required pam_mkhomedir.so umask=0022 skel=/etc/skel | ||
- | </file> | ||
- | Dans ''/etc/pam.d/sudo'' : | ||
- | <file> | ||
- | auth sufficient pam_winbind.so | ||
- | auth required pam_unix.so use_first_pass | ||
- | </file> | ||
- | |||
- | ===== 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] : | ||
- | <code> | ||
- | login: Utilisateur | ||
- | Password: ***** | ||
- | ... | ||
- | </code> | ||
- | Pour obtenir : | ||
- | Utilisateur@MaMachine:~$ | ||
- | |||
- | ==== Astuce ==== | ||
- | En ajoutant le paramètre <code>winbind use default domain = yes</code> 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'' : | ||
- | |||
- | <file> | ||
- | account sufficient /lib/security/pam_winbind.so | ||
- | </file> | ||
- | |||
- | Pour ''/etc/pam.d/common-auth'' : | ||
- | |||
- | <file> | ||
- | auth required pam_securetty.so | ||
- | auth sufficient pam_winbind.so | ||
- | auth sufficient pam_unix.so use_first_pass | ||
- | auth required pam_nologin.so | ||
- | </file> | ||
- | |||
- | Pour ''/etc/pam.d/common-session'' : | ||
- | |||
- | <file> | ||
- | session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022 | ||
- | session optional /lib/security/pam_console.so | ||
- | </file> | ||
- | |||
- | Pour ''/etc/pam.d/common-password'' : | ||
- | |||
- | <file> | ||
- | password required pam_unix.so nullok obscure min=4 max=8 md5 | ||
- | </file> | ||
- | |||
- | 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 :<file> | ||
- | "Failed to run users-admin as user root: | ||
- | Child terminated with 1 status" | ||
- | </file> | ||
- | |||
- | //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 : [[utilisateurs:fredb | FredB]], [[:utilisateurs:iuchiban]] // | ||
- | // Article original : [[https://wiki.ubuntu.com/ActiveDirectoryWinbindHowto | Active Directory Winbind Howto]] | ||