Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
tutoriel:comment_ajouter_machine_ubuntu_dans_domaine_active_directory [Le 02/02/2018, 20:10] – tag L'Africain | tutoriel:comment_ajouter_machine_ubuntu_dans_domaine_active_directory [Le 15/10/2020, 16:57] (Version actuelle) – 31.29.123.2 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Comment ajouter une machine Ubuntu dans un domaine Active Directory ? ====== | ||
+ | |||
+ | |||
+ | ===== Logiciels utilisés ===== | ||
+ | |||
+ | ^ Nom ^ Version | ||
+ | | Microsoft Windows Server | ||
+ | | Linux | Ubuntu 16.04 LTS | | ||
+ | | Winbind | ||
+ | | Samba | 3.0.22-Ubuntu ou supérieur | | ||
+ | | krb5-user | ||
+ | |||
+ | | 10.0.0.3 | Adresse IP du serveur Kerberos | | ||
+ | |||
+ | ===== Termes employés ===== | ||
+ | |||
+ | ^ Terme ^ Signification ^ | ||
+ | | AD | Active Directory | | ||
+ | | Administrateur | Utilisateur du domaine ayant des droits administrateur | | ||
+ | | CD (DC plus communément) | Contrôleur de domaine | | ||
+ | | FQDN | Nom de domaine pleinement qualifié //(Fully Qualified Domain Name)// | | ||
+ | | SLINUX3001 | Nom de machine de la station Ubuntu | | ||
+ | | SLINUX3001.DHYDRONIC.DCIAT.FR | FQDN de la station Ubuntu | | ||
+ | | DHYDRONIC.DCIAT.FR | Domaine AD | | ||
+ | | DHYDRONIC | Royaume Kerberos | | ||
+ | | NTP | Protocole de temps réseau //(Network Time Protocol)// | ||
+ | | PAM | Modules d\' | ||
+ | | 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 | | ||
+ | | 172.20.20.20 | Adresse IP du contrôleur de domaine | | ||
+ | | 10.0.0.2 | Adresse IP du serveur de temps | | ||
+ | |||
+ | |||
+ | <note tip>Un problème existe avec Likewise dans Ubuntu 10.04. Un script d' | ||
+ | |||
+ | ===== Réglage de l' | ||
+ | |||
+ | Le temps est essentiel pour Kerberos. Le meilleur moyen de s' | ||
+ | < | ||
+ | # serveur source à vérifier | ||
+ | NTPSERVERS=" | ||
+ | # options supplémentaires pour ntpdate | ||
+ | NTPOPTIONS=" | ||
+ | </ | ||
+ | |||
+ | Pour synchroniser l' | ||
+ | sudo / | ||
+ | |||
+ | Comme toute horloge, il y aura des dérives au fil du temps. Il faut donc synchroniser régulièrement l' | ||
+ | sudo crontab -e | ||
+ | et insérez | ||
+ | < | ||
+ | # m h dom mon dow | ||
+ | |||
+ | # SYNCHRO NTP | ||
+ | 18 1 | ||
+ | @reboot | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Remarque 1 :** par défaut, le client ntpdate se lance avec comme paramètre le serveur sur lequel synchroniser exemple : ntpdate serveur.mondomaine.tld. Dans l' | ||
+ | |||
+ | **Remarque 2 :** La deuxième ligne permet de synchroniser le poste sur le serveur au démarrage de la machine. Cela évite ainsi le message "No logon server" | ||
+ | |||
+ | ===== Nom de domaine pleinement qualifié ===== | ||
+ | |||
+ | Un FQDN est essentiel afin de faire fonctionner Kerberos. Dans « /etc/hosts » : | ||
+ | < | ||
+ | |||
+ | ===== Configurer Likewise ===== | ||
+ | |||
+ | ==== Methode simplifiée ==== | ||
+ | |||
+ | sudo apt-get update | ||
+ | sudo apt-get install likewise-open | ||
+ | sudo domainjoin-cli join fqdn.of.your.domain Administrator | ||
+ | sudo update-rc.d likewise-open defaults | ||
+ | sudo / | ||
+ | |||
+ | |||
+ | vous pouvez maintenant vous identifier en utilisant DOMAIN\user | ||
+ | |||
+ | |||
+ | vous pouvez ajouter cette ligne : | ||
+ | |||
+ | winbind use default domain = yes | ||
+ | |||
+ | dans le fichier : | ||
+ | |||
+ | / | ||
+ | |||
+ | afin de ne plus devoir préciser DOMAIN\ à chaque fois que vous vous identifiez | ||
+ | |||
+ | |||
+ | source : http:// | ||
+ | |||
+ | ==== Programmes requis ==== | ||
+ | |||
+ | [[: | ||
+ | |||
+ | Configurer Kerberos (//via// le fichier « / | ||
+ | |||
+ | * MONDOMAINE = Correspond au nom NETBIOS: EXAMPLE.COM | ||
+ | * MonDomaine = Correspond au suffixe DNS: exemple.com | ||
+ | |||
+ | |||
+ | Fichier « / | ||
+ | < | ||
+ | [logging] | ||
+ | default = FILE10000:/ | ||
+ | |||
+ | [libdefaults] | ||
+ | ticket_lifetime = 24000 | ||
+ | default_realm = MONDOMAINE | ||
+ | dns_fallback = no | ||
+ | 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 (// | ||
+ | |||
+ | < | ||
+ | sudo kinit Utilisateur@MONDOMAINE | ||
+ | Password for Utilisateur@MONDOMAINE: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | Je propose de modifier le fichier / | ||
+ | |||
+ | à la ligne " hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 " | ||
+ | remplacer par : " hosts: dns ". | ||
+ | |||
+ | |||
+ | Cette info me vient de launchpad : [[https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | Dans certains 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' | ||
+ | |||
+ | < | ||
+ | kinit(v5): Clock skew too great while getting initial credentials | ||
+ | </ | ||
+ | Il y a un décalage trop important (> 5min) entre l' | ||
+ | |||
+ | ==== Vérification de la validité du ticket ==== | ||
+ | |||
+ | < | ||
+ | sudo klist | ||
+ | Ticket cache: FILE:/ | ||
+ | Default principal: Utilisateur@MONDOMAINE | ||
+ | |||
+ | Valid starting | ||
+ | 01/21/05 10: | ||
+ | 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 [[: | ||
+ | |||
+ | |||
+ | ==== Joindre le domaine ==== | ||
+ | |||
+ | Dans « / | ||
+ | < | ||
+ | [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 service smbd restart | ||
+ | |||
+ | |||
+ | Effectuer une requête de TGT Kerberos valide, ce dernier étant autorisé à joindre des machines au domaine AD. | ||
+ | |||
+ | < | ||
+ | sudo net ads join -U Administrateur -S ServeurCD.MonDomaine | ||
+ | Using short domain name – MONDOMAINE | ||
+ | Joined ' | ||
+ | </ | ||
+ | |||
+ | Si l' | ||
+ | |||
+ | Si vous recevez une erreur du genre: | ||
+ | |||
+ | < | ||
+ | Failed to join domain: failed to find DC for domain mondomaine.LOCAL | ||
+ | </ | ||
+ | |||
+ | Avahi-deamon est probablement la cause du problème. Pour le désactiver veuillez inscrire la commande ci-dessous. | ||
+ | |||
+ | < | ||
+ | sudo update-rc.d -f avahi-daemon remove | ||
+ | </ | ||
+ | |||
+ | ou encore | ||
+ | < | ||
+ | sudo / | ||
+ | </ | ||
+ | |||
+ | plus de détail sur l' | ||
+ | < | ||
+ | sudo net join ads -U Administrateur -S ServeurCD.MonDomaine -d 3 | ||
+ | </ | ||
+ | |||
+ | ==== Redémarrer Winbind ==== | ||
+ | |||
+ | sudo / | ||
+ | |||
+ | Souvent, winbind est démarré automatiquement après l' | ||
+ | S'il n' | ||
+ | |||
+ | ==== Test ==== | ||
+ | |||
+ | Pour obtenir une liste des utilisateurs du domaine : | ||
+ | |||
+ | wbinfo -u | ||
+ | |||
+ | Et une liste des groupes : | ||
+ | |||
+ | wbinfo -g | ||
+ | |||
+ | |||
+ | ===== Configurer l' | ||
+ | |||
+ | ==== Le fichier « nsswitch.conf » ==== | ||
+ | |||
+ | Dans « / | ||
+ | < | ||
+ | passwd: | ||
+ | group: | ||
+ | shadow: | ||
+ | |||
+ | hosts: | ||
+ | networks: | ||
+ | |||
+ | services: | ||
+ | protocols: | ||
+ | rpc: db files | ||
+ | ethers: | ||
+ | netmasks: | ||
+ | netgroup: | ||
+ | bootparams: | ||
+ | |||
+ | automount: | ||
+ | aliases: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Test ==== | ||
+ | |||
+ | Tester le module ' | ||
+ | < | ||
+ | sudo getent passwd | ||
+ | |||
+ | root: | ||
+ | ... | ||
+ | LAB+administrator: | ||
+ | LAB+gast: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | sudo getent group | ||
+ | |||
+ | root:x:0: | ||
+ | daemon:x:1: | ||
+ | bin:x:2: | ||
+ | ... | ||
+ | LAB+organisations-admins: | ||
+ | LAB+domänen-admins: | ||
+ | LAB+domänen-benutzer: | ||
+ | LAB+domänen-gäste: | ||
+ | LAB+linux-admins: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== PAM ==== | ||
+ | |||
+ | Avec cette configuration, | ||
+ | |||
+ | Dans « / | ||
+ | < | ||
+ | account sufficient | ||
+ | account sufficient | ||
+ | </ | ||
+ | |||
+ | Dans « / | ||
+ | < | ||
+ | auth sufficient pam_winbind.so | ||
+ | auth sufficient pam_unix.so nullok_secure use_first_pass | ||
+ | auth required pam_deny.so | ||
+ | </ | ||
+ | |||
+ | Dans « / | ||
+ | < | ||
+ | session required pam_unix.so | ||
+ | session required pam_mkhomedir.so umask=0022 skel=/ | ||
+ | </ | ||
+ | <note tip>Si vous voulez que les utilisateurs n' | ||
+ | < | ||
+ | |||
+ | ===== Configuration finale ===== | ||
+ | |||
+ | Chaque domaine a besoin d'un répertoire dans « /home » : | ||
+ | |||
+ | sudo mkdir / | ||
+ | |||
+ | Mais il faut attribuer des droits au dossier : | ||
+ | |||
+ | sudo chmod 755 / | ||
+ | ===== Utilisation ===== | ||
+ | |||
+ | Connexion avec [Domain] [Winbind separator] [Nom_d_utilisateur] : | ||
+ | < | ||
+ | login: Utilisateur | ||
+ | Password: ***** | ||
+ | ... | ||
+ | </ | ||
+ | Pour obtenir : | ||
+ | Utilisateur@MaMachine: | ||
+ | |||
+ | |||
+ | <note tip>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.</ | ||
+ | |||
+ | Penser a autoriser les sessions de domaine dans LightDM (http:// | ||
+ | par l' | ||
+ | [SeatDefaults] | ||
+ | greeter-show-manual-login=true | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Résolution de problème ===== | ||
+ | |||
+ | Si le module PAM Winbind dans « / | ||
+ | |||
+ | sudo / | ||
+ | |||
+ | Il est possible aussi que le linux perde la connectivité lors de la mise en veille et ne retrouve pas le compte de l' | ||
+ | Pour résoudre le problème : | ||
+ | |||
+ | Passer en root : | ||
+ | |||
+ | sudo su | ||
+ | |||
+ | Interroger la base de compte : | ||
+ | |||
+ | sudo getent passwd | ||
+ | |||
+ | Puis taper : | ||
+ | |||
+ | login {USERNAME} | ||
+ | |||
+ | Fermer la session et vous devriez voir le nom de l' | ||
+ | ===== Utiliser le compte utilisateur AD en mode hors connexion ===== | ||
+ | |||
+ | Pour que le compte utilisateur puisse se connecter sans accéder à l' | ||
+ | |||
+ | [[: | ||
+ | |||
+ | < | ||
+ | winbind offline logon = yes | ||
+ | </ | ||
+ | |||
+ | [[: | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # Fichier de configuration pam_winbind | ||
+ | # | ||
+ | # / | ||
+ | # | ||
+ | [global] | ||
+ | # (nécessite " | ||
+ | cached_login = yes | ||
+ | </ | ||
+ | |||
+ | Il faut ouvrir une session en étant connecté à l' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |