Intégration Client Ubuntu sur AD Windows Server 2003

De NCad Wiki
Aller à la navigation Aller à la recherche

Rôles Active Directory

Installation du rôle ADCS | Gestion des certificats | Authentification par cartes à puce

Installation du rôle ADDS | Sécuriser son environnement Active Directory | Windows LAPS


Archives : Contrôleur de domaine Windows Server 2003 | Intégration Client Ubuntu sur AD Windows Server 2003 | Windows Server 2008

Cahier des charges

La machine fonctionnant sous Ubuntu 11.04 (Narty Narwall) doit être en mesure de vérifier l'authentification des utilisateurs via le Contrôleur de Domaine Active Directory installé sur le serveur Windows Server 2003 R2.

Prérequis

  • Serveur Windows Server 2003 pleinement installé et fonctionnel;
  • Poste client fonctionnant sous Ubuntu 11.04 à jour.

Pour l'exemple, les informations suivantes seront utilisées et devront être adaptées en fonction des cas :

  • Domaine Active Directory : GOULOUXIOU
  • Nom de domaine Active Directory : GOULOUXIOU.LAN
  • Serveur Contrôleur de Domaine Active Directory : ORCADE.GOULOUXIOU.LAN qui a pour IP 10.0.0.36
  • Nom du poste client Ubuntu 11.04 : NOMMACHINE

Préliminaires

Résolution des noms

Il est nécessaire que la machine cliente puisse résoudre correctement le nom de domaine Active Directory ainsi que le nom du serveur de Domaine Active Directory. Pour cela, il faut éditer le fichier /etc/hosts et adapter une ligne :

127.0.1.1 NOMMACHINE NOMMACHINE.GOULOUXIOU.LAN

et en rajouter une seconde en fin de fichier :

10.0.0.36 GOULOUXIOU GOULOUXIOU.LAN ORCADE.GOULOUXIOU.LAN
Application des changements immédiats !

Pour vérifier, la requête ping doit répondre sur l'hôte nommachine.goulouxiou.lan ou encore goulouxiou.lan.

Installation des paquets

L'intégration de la machine au contrôleur de domaine nécessite l'installation des paquets likewise-open5 krb5-user winbind et samba :

sudo apt-get install likewise-open5 krb5-user winbind samba

Configuration

Likewise

Depuis un terminal de commande :

sudo domainjoin-cli join GOULOUXIOU.LAN Administrateur

Le mot de passe du compte administrator du serveur Contrôleur de Domaine Active Directory est requis. Une fois le mot de passe renseigné, la machine peut s'identifier via Active directory. Le terminal retourne les information suivantes :

Administrateur@GOULOUXIOU.LAN's password:
Warning: System restart required Your system has been configured to authenticate to Active Directory for the first time. It is recommended that you restart your system to ensure that all applications recognize the new settings.

SUCCESS
You should reboot this system before attempting GUI logins as a domain user.

La machine doit également apparaître sur le Contrôleur de Domaine. Pour le vérifier, identifier vous sur votre serveur Windows Server 2003 puis naviguez dans le menu Démarrer / Tous les programmes / Outils d'administration / Utilisateurs et ordinateurs Active Directory.

Dans l'arborescence du contrôleur de domaine, cliquez sur le dossier Computers. La machine cliente Ubuntu doit y apparaître :

AD Likewise.png

Kerberos

Suppression du fichier de configuration initial :

sudo rm /etc/krb5.conf

Création d'un nouveau fichier vierge:

sudo touch /etc/krb5.conf

On renseigne comme illustré ci-dessous le fichier nouvellement crée :

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

[libdefaults]
   ticket_lifetime = 24000
   default_realm = GOULOUXIOU.LAN
   dns_fallback = no
   default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
   default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5

[realms]
   GOULOUXIOU.LAN = {
       kdc = ORCADE.GOULOUXIOU.LAN:88
       admin_server = ORCADE.GOULOUXIOU.LAN:749
       default_domain = GOULOUXIOU
}

[domain_realm]
   .goulouxiou.lan = GOULOUXIOU.LAN
   goulouxiou.lan = GOULOUXIOU.LAN

Pour tester l'authentification, on tente de se loguer avec le compte administrator du domaine. Pour cela, on tape depuis le terminal :

sudo kinit Administrateur@GOULOUXIOU.LAN

Le terminal doit demander le mot de passe du compte administrateur. Pour vérifier que l'opération s'est déroulée correctement, on saisie la commande :

sudo klist

qui doit retourner dans ce cas :

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrateur@GOULOUXIOU.LAN

Valid starting Expires Service principal
07/14/11 11:51:11 07/14/11 18:31:11 krbtgt/GOULOUXIOU.LAN@GOULOUXIOU.LAN

Intégration de la machine au Contrôleur de Domaine

Configuration de Samba

Suppression du fichier de configuration Samba :

sudo rm /etc/samba/smb.conf

Création d'un nouveau fichier vierge :

sudo touch /etc/samba/smb.conf

On renseigne comme illustré ci-dessous le fichier nouvellement crée:

[global]
       security = ADS
       realm = GOULOUXIOU.LAN
       netbios name = OXTRODEX
       password server = ORCADE.GOULOUXIOU.LAN
       workgroup = GOULOUXIOU
       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 serveur samba :

sudo service smbd restart

Puis on ajoute la machine au contrôleur de domaine :

sudo net join ads -U Administrateur -S ORCADE.GOULOUXIOU.LAN

Le terminal de commande doit retourner :

Enter administrateur's password:
Using short domain name -- GOULOUXIOU
Joined 'OXTRODEX' to realm 'goulouxiou.lan'

Création du dossier pour le répertoire des utilisateurs du domaine :

sudo mkdir /home/GOULOUXIOU
sudo chmod 777 /home/GOULOUXIOU

Authentification

Il s'agit maintenant d'implanter l'authentification via winbind dans le système d'ouverture de session d'Ubuntu. Tout d'abord on redémarre winbind :

sudo /etc/init.d/winbind restart

Configuration de NSSWITCH

Ouverture du fichier /etc/nsswitch.conf.

  • Adaptez les deux lignes suivantes :
passwd:         compat lsass
group:          compat lsass
  • Par :
passwd:         compat lsass winbind
group:          compat lsass winbind

On vérifie le bon fonctionnement du module en tapant la commande :

sudo getent passwd

Où l'on doit remarquer la présence des enregistrement suivants, correspondant aux utilisateurs du domaine Active Directory sur le serveur Windows Server 2003 :

oxtrode@oxtrodex:~$ sudo getent passwd
[...]
administrator:*:10000:10002:Administrateur:/home/GOULOUXIOU/administrator:/bin/bash
invité:*:10001:10003:Invité:/home/GOULOUXIOU/invité:/bin/bash
support_388945a0:*:10002:10002:SUPPORT_388945a0:/home/GOULOUXIOU/support_388945a0:/bin/bash
krbtgt:*:10003:10002:krbtgt:/home/GOULOUXIOU/krbtgt:/bin/bash
cacheln:*:10004:10002:Nicolas CACHELOU:/home/GOULOUXIOU/cacheln:/bin/bash

Configuration de PAM

La configuration suivante permet aux utilisateurs du domaine de s'authentifier sur la machine cliente Ubuntu.

common-account

Sauvegarde du fichier /etc/pam.d/common-account :

sudo cp /etc/pam.d/common-account /etc/pam.d/common-account.bak

Suppression du fichier /etc/pam.d/common-account :

sudo rm /etc/pam.d/common-account

Création d'un fichier vierge /etc/pam.d/common-account :

sudo touch /etc/pam.d/common-account

On renseigne comme illustré ci-dessous le fichier nouvellement crée :

account sufficient      pam_winbind.so
account sufficient      pam_unix.so

common-auth

Sauvegarde du fichier /etc/pam.d/common-auth :

sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak

Suppression du fichier /etc/pam.d/common-auth :

sudo rm /etc/pam.d/common-auth

Création d'un fichier vierge /etc/pam.d/common-auth :

sudo touch /etc/pam.d/common-auth

On renseigne comme illustré ci-dessous le fichier nouvellement crée :

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

common-session

Sauvegarde du fichier /etc/pam.d/common-session :

sudo cp /etc/pam.d/common-session /etc/pam.d/common-session.bak

Suppression du fichier /etc/pam.d/common-session :

sudo rm /etc/pam.d/common-session

Création d'un fichier vierge /etc/pam.d/common-session :

sudo touch /etc/pam.d/common-session

On renseigne comme illustré ci-dessous le fichier nouvellement crée :

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

sudo

Sauvegarde du fichier /etc/pam.d/sudo :

sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak

Suppression du fichier /etc/pam.d/sudo :

sudo rm /etc/pam.d/sudo

Création d'un fichier vierge /etc/pam.d/sudo :

sudo touch /etc/pam.d/sudo

On renseigne comme illustré ci-dessous le fichier nouvellement crée :

auth sufficient pam_winbind.so
auth required pam_unix.so use_first_pass
Redémarrez la machine !

Montage des répertoires utilisateurs

Les utilisateurs disposent de leur répertoire personnel sur le contrôleur de domaine Windows. Ce répertoire est accessible automatiquement depuis un système d'exploitation Windows. Cela peut également être le cas sur Linux/Ubuntu.

Notre contrôleur de domaine a pour adresse IP 10.0.0.45 et dispose de deux partages: \\10.0.0.45\Ressources où sont stockés tous les fichiers partagés publiques; \\10.0.0.45\Utilisateurs\<login> où est stocké le répertoire personnel de l'utilisateurs. Pour ces deux ressources, un identifiant ainsi qu'un mot de passe sont nécessaires pour y avoir accès.

Installation de libpam-mount

Installation des paquets :

sudo apt-get install libpam-mount smbfs

Mise à jour des droits du fichier de configuration :

sudo chmod +s /usr/bin/smbmount

Création du fichier /etc/pam.d/common-pammount :

auth            optional pam_mount.so use_first_pass
session         optional pam_mount.so use_first_pass

On ajoute au début du fichier /etc/pam.d/lightdm la ligne suivante :

@include common-pammount

/etc/pam.d/lightdm pour Unity et /etc/pam.d/gdm pour gnome. A adapter.

Montage automatique des partages

Les montages sont définis dans le fichier /etc/security/pam_mount.conf.xml. Le fichier est au format xml. La déclaration des montages doit se faire après la ligne .

Tous d'abord nous allons définir le montage du répertoire utilisateur qui se trouve sur le contrôleur de domaine windows dans le dossier partagé Utilisateurs :

<volume fstype="cifs" server="10.0.0.36" path="Utilisateurs/%(USER)" mountpoint="/media/%(USER)" user="*" />

Maintenant, nous allons définir le montage du répertoire partagé Ressources :

<volume fstype="cifs" server="10.0.0.36" path="Ressources" mountpoint="/media/Ressources" user="*" />

Voici la signification des paramètres :

  • type de montage : cifs
  • Adresse IP/nom de serveur : 10.0.0.36
  • Adresse du répertoire partagé : adresse depuis la racine du partage sur le contrôleur de domaine.
  • Point de montage sur le client : On le définit dans le répertoire /media. Ainsi l'utilisateur aura un lien directe vers le partage depuis le menu de gauche dans l'explorateur Nautilus.
  • Utilisateur : On utilise les identifiants de l'utilisateur courant.

Configuration de PAM

/etc/pam.d/common-auth

Ajouter à la première ligne :

auth sufficient pam_mount.so use_first_pass

/etc/pam.d/common-account

Ajouter à la première ligne :

account sufficient pam_mount.so use_first_pass

Sources