Intégration Client Ubuntu sur AD Windows Server 2003 : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Likewise)
(Montage automatique des partages)
 
(40 révisions intermédiaires par le même utilisateur non affichées)
Ligne 8 : Ligne 8 :
 
* Poste client fonctionnant sous Ubuntu 11.04 à jour.
 
* Poste client fonctionnant sous Ubuntu 11.04 à jour.
  
Pour l'exemple, les informations suivantes seront dénies et devront être adapté en fonction de votre propre cas :
+
Pour l'exemple, les informations suivantes seront utilisées et devront être adaptées en fonction des cas :
 
* '''Domaine Active Directory :''' GOULOUXIOU
 
* '''Domaine Active Directory :''' GOULOUXIOU
 
* '''Nom de domaine Active Directory :''' GOULOUXIOU.LAN
 
* '''Nom de domaine Active Directory :''' GOULOUXIOU.LAN
Ligne 22 : Ligne 22 :
 
et en rajouter une seconde en fin de fichier :
 
et en rajouter une seconde en fin de fichier :
 
  10.0.0.36 GOULOUXIOU GOULOUXIOU.LAN ORCADE.GOULOUXIOU.LAN
 
  10.0.0.36 GOULOUXIOU GOULOUXIOU.LAN ORCADE.GOULOUXIOU.LAN
 +
 +
{{Box Remarque | objet=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 ===
 
=== Installation des paquets ===
Ligne 29 : Ligne 33 :
  
 
== Configuration ==
 
== Configuration ==
 
=== Contrôleur de Domaine Active Directory ===
 
 
Par défaut, le login du compte administrateur est Administrateur. Ce dernier devra être modifié en administrator.
 
  
 
=== Likewise ===
 
=== Likewise ===
  
 
Depuis un terminal de commande :
 
Depuis un terminal de commande :
{{ Box Console | objet=sudo domainjoin-cli join GOULOUXIOU.LAN Administrator }}
+
{{ Box Console | objet=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 :
 
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 :
{{ Box Console | objet=Administrator@GOULOUXIOU.LAN's password:<br />
+
{{ Box Console | objet=Administrateur@GOULOUXIOU.LAN's password:<br />
 
Warning: System restart required
 
Warning: System restart required
 
Your system has been configured to authenticate to Active Directory for the
 
Your system has been configured to authenticate to Active Directory for the
Ligne 48 : Ligne 48 :
 
You should reboot this system before attempting GUI logins as a domain user.
 
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.
+
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 :
 
Dans l'arborescence du contrôleur de domaine, cliquez sur le dossier Computers. La machine cliente Ubuntu doit y apparaître :
  
[[Image:AD_Likewise.png]]
+
[[Image:AD_Likewise.png|center|thumb]]
 +
 
 +
=== Kerberos ===
 +
 
 +
Suppression du fichier de configuration initial :
 +
{{ Box Console | objet=sudo rm /etc/krb5.conf }}
 +
Création d'un nouveau fichier vierge:
 +
{{ Box Console | objet=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 :
 +
{{ Box Console | objet=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 :
 +
{{ Box Console | objet=sudo klist }}
 +
qui doit retourner dans ce cas :
 +
{{ Box Console | objet=Ticket cache: FILE:/tmp/krb5cc_0<br />
 +
Default principal: administrateur@GOULOUXIOU.LAN<br /><br />
 +
 
 +
Valid starting    Expires            Service principal<br />
 +
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 :
 +
{{ Box Console | objet=sudo rm /etc/samba/smb.conf }}
 +
Création d'un nouveau fichier vierge :
 +
{{ Box Console | objet=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 :
 +
{{ Box Console | objet=sudo service smbd restart}}
 +
Puis on ajoute la machine au contrôleur de domaine :
 +
{{ Box Console | objet=sudo net join ads -U Administrateur -S ORCADE.GOULOUXIOU.LAN }}
 +
Le terminal de commande doit retourner :
 +
{{ Box Console | objet=Enter administrateur's password:<br />
 +
Using short domain name -- GOULOUXIOU<br />
 +
Joined 'OXTRODEX' to realm 'goulouxiou.lan'
 +
}}
 +
Création du dossier pour le répertoire des utilisateurs du domaine :
 +
{{Box Console | objet=
 +
sudo mkdir /home/GOULOUXIOU<br />
 +
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 :
 +
{{ Box Console | objet=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 :
 +
{{ Box Console | objet=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 :
 +
{{ Box Console | objet=
 +
oxtrode@oxtrodex:~$ sudo getent passwd<br />
 +
[...]<br />
 +
administrator:*:10000:10002:Administrateur:/home/GOULOUXIOU/administrator:/bin/bash<br />
 +
invité:*:10001:10003:Invité:/home/GOULOUXIOU/invité:/bin/bash<br />
 +
support_388945a0:*:10002:10002:SUPPORT_388945a0:/home/GOULOUXIOU/support_388945a0:/bin/bash<br />
 +
krbtgt:*:10003:10002:krbtgt:/home/GOULOUXIOU/krbtgt:/bin/bash<br />
 +
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''' :
 +
{{ Box Console | objet=sudo cp /etc/pam.d/common-account /etc/pam.d/common-account.bak}}
 +
Suppression du fichier '''/etc/pam.d/common-account''' :
 +
{{ Box Console | objet=sudo rm /etc/pam.d/common-account}}
 +
Création d'un fichier vierge '''/etc/pam.d/common-account''' :
 +
{{ Box Console | objet=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''' :
 +
{{ Box Console | objet=sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak}}
 +
Suppression du fichier '''/etc/pam.d/common-auth''' :
 +
{{ Box Console | objet=sudo rm /etc/pam.d/common-auth}}
 +
Création d'un fichier vierge '''/etc/pam.d/common-auth''' :
 +
{{ Box Console | objet=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''' :
 +
{{ Box Console | objet=sudo cp /etc/pam.d/common-session /etc/pam.d/common-session.bak}}
 +
Suppression du fichier '''/etc/pam.d/common-session''' :
 +
{{ Box Console | objet=sudo rm /etc/pam.d/common-session}}
 +
Création d'un fichier vierge '''/etc/pam.d/common-session''' :
 +
{{ Box Console | objet=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''' :
 +
{{ Box Console | objet=sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak}}
 +
Suppression du fichier '''/etc/pam.d/sudo''' :
 +
{{ Box Console | objet=sudo rm /etc/pam.d/sudo}}
 +
Création d'un fichier vierge '''/etc/pam.d/sudo''' :
 +
{{ Box Console | objet=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
 +
 
 +
{{Box Remarque | objet=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 :
 +
{{ Box_Console | objet=sudo apt-get install libpam-mount smbfs }}
 +
Mise à jour des droits du fichier de configuration :
 +
{{ Box_Console | objet=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
 +
 
 +
{{ Box Information | objet=/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 <!-- Volume definitions -->.
 +
 
 +
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 <span style="color:red">fstype="cifs"</span> <span style="color:green">server="10.0.0.36"</span> <span style="color:blue">path="Utilisateurs/%(USER)"</span> <span style="color:purple">mountpoint="/media/%(USER)"</span> <span style="color:cyan">user="*"</span> />
 +
 
 +
Maintenant, nous allons définir le montage du répertoire partagé Ressources :
 +
<volume <span style="color:red">fstype="cifs"</span> <span style="color:green">server="10.0.0.36"</span> <span style="color:blue">path="Ressources"</span> <span style="color:purple">mountpoint="/media/Ressources"</span> <span style="color:cyan">user="*"</span> />
 +
 
 +
Voici la signification des paramètres :
 +
* '''<span style="color:red">type de montage :</span>''' cifs
 +
* '''<span style="color:green">Adresse IP/nom de serveur :</span>''' 10.0.0.36
 +
* '''<span style="color:blue">Adresse du répertoire partagé :</span>''' adresse depuis la racine du partage sur le contrôleur de domaine.
 +
* '''<span style="color:purple">Point de montage sur le client :</span>''' 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.
 +
* '''<span style="color:cyan">Utilisateur :</span>''' 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 ==
 +
 
 +
* Bases de données Ubuntu Francophones : http://doc.ubuntu-fr.org/tutoriel/comment_ajouter_machine_ubuntu_dans_domaine_active_directory
 +
* Communauté Ubuntu : http://forum.ubuntu-fr.org/viewtopic.php?id=143501
 +
* Partage Windows : http://doc.ubuntu-fr.org/installation/monterpartagewindows

Version actuelle en date du 26 juillet 2012 à 15:33

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