Intégration Client Ubuntu sur AD Windows Server 2003

De Wiki NCad
Révision de 26 juillet 2012 à 15:33 par Cacheln (discuter | contributions) (Montage automatique des partages)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

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
ICON Light.png
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 :

ICON Terminal.png

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

Configuration

Likewise

Depuis un terminal de commande :

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

sudo rm /etc/krb5.conf

Création d'un nouveau fichier vierge:

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

sudo klist

qui doit retourner dans ce cas :

ICON Terminal.png

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 :

ICON Terminal.png

sudo rm /etc/samba/smb.conf

Création d'un nouveau fichier vierge :

ICON Terminal.png

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 :

ICON Terminal.png

sudo service smbd restart

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

ICON Terminal.png

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

Le terminal de commande doit retourner :

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

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 :

ICON Terminal.png

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

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

ICON Terminal.png

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

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

ICON Terminal.png

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 :

ICON Terminal.png

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

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

ICON Terminal.png

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

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

ICON Terminal.png

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 :

ICON Terminal.png

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

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

ICON Terminal.png

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

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

ICON Terminal.png

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 :

ICON Terminal.png

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

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

ICON Terminal.png

sudo rm /etc/pam.d/sudo

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

ICON Terminal.png

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
ICON Light.png
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 :

ICON Terminal.png

sudo apt-get install libpam-mount smbfs

Mise à jour des droits du fichier de configuration :

ICON Terminal.png

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
ICON Information.png

/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