En tant que contrôleur de domaine

Bien qu'il ne puisse pas agir comme un contrôleur de domaine principal Active Directory (PDC), un serveur Samba peut être configuré pour apparaître comme contrôleur de domaine de type Windows NT4. Un des avantages majeurs de cette configuration est la centralisation authentifiants pour les machines et les utilisateurs. Samba peut également stocker les informations utilisateurs de différentes manières.

Contrôleur principal de domaine

Cette section aborde la configuration de Samba en contrôleur de domaine principal (PDC) en utilisant le gestionnaire de mot de passe par défaut smbpasswd.

  1. First, install Samba, and libpam-winbind to sync the user accounts, by entering the following in a terminal prompt:

    sudo apt install samba libpam-winbind
    
  2. Ensuite, configurez Samba en modifiant /etc/samba/smb.conf. Le mode de security doit être réglé sur user, et le workgroup doit correspondre à votre organisation :

       workgroup = EXAMPLE
       …
       security = user
    
  3. Dans la section commentée « Domains » (Domaines) ajoutez ou supprimez les éléments suivants (la dernière ligne a été divisée pour s'adapter au format de ce document) :

       domain logons = yes
       logon path = \\%N\%U\profile
       logon drive = H:
       logon home = \\%N\%U
       logon script = logon.cmd
       add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d
             /var/lib/samba -s /bin/false %u
    

    Si vous ne voulez pas utiliser les profils itinérants laissez commentées les options logon home et logon path.

    • domain logons : permet à Samba d'agir comme un contrôleur de domaine

    • logon path : place le profil des utilisateurs Windows dans leur répertoire personnel. Il est également possible de configurer un partage [profiles] pour placer tous les profils dans un seul et même répertoire.

    • logon drive : spécifie l'emplacement du répertoire personnel local.

    • logon home : spécifie l'emplacement du répertoire personnel.

    • logon script : indique le script à exécuter localement une fois l'utilisateur connecté. Le script doit être placé dans le partage [netlogon].

    • add machine script : un script qui créera automatiquement un compte de machine approuvé, requis pour qu'une station de travail puisse joindre le domaine.

      Dans cet exemple le groupe machines devra être créé en utilisant la commande addgroup, consultez Ajout et suppression d'utilisateurs pour plus de détails.

  4. Décommentez le partage [homes] pour permettre au logon home d'être monté en lecteur réseau :

    [homes]
       comment = Home Directories
       browseable = no
       read only = no
       create mask = 0700
       directory mask = 0700
       valid users = %S
    
  5. Dans le cas d'une configuration en contrôleur de domaine, un partage [netlogon] doit être configuré. Pour activer le partage, décommenter :

    [netlogon]
       comment = Network Logon Service
       path = /srv/samba/netlogon
       guest ok = yes
       read only = yes
       share modes = no
    

    Le chemin par défaut du partage netlogon est /home/samba/netlogon. Cependant, d'après le standard FHS (Filesystem Hierarchy Standard), /srv est l'emplacement correct pour des données spécifiques à un site fournies par le système.

  6. Créez maintenant le dossier netlogon et le fichier de script logon.cmd vide (pour l'instant) :

    sudo mkdir -p /srv/samba/netlogon
    sudo touch /srv/samba/netlogon/logon.cmd
    

    Vous pouvez utiliser les commandes de script de connexion normales Windows dans logon.cmd pour personnaliser l'environnement du client.

  7. Redémarrez Samba pour activer le nouveau contrôleur de domaine:

    sudo systemctl restart smbd.service nmbd.service
    
  8. Enfin, il y a quelques commandes supplémentaires nécessaires pour configurer les droits d'accès appropriés.

    Comme root est désactivé par défaut, il est nécessaire de faire correspondre un groupe système au groupe Windows Domain Admins pour pouvoir joindre une machine au domaine. Saisissez la commande suivante dans un terminal (utilisation de net) :

    sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
    

    Remplacez sysadmin par le groupe que vous préférez. De même, l'utilisateur qui joindra les machines au domaine doit être membre du groupe sysadmin mais aussi du groupe admin. Le groupe admin permet l'utilisation de sudo.

    Si l'utilisateur ne dispose pas encore d'identifiants Samba, vous pouvez les ajouter avec l'utilitaire smbpasswd, changer l'identifiant sysadmin de manière appropriée :

    sudo smbpasswd -a sysadmin
    

    De plus, les droits d'accès doivent être fournis explicitement au groupe des Administrateurs domaine pour permettre l'exécution du script ajouter une machine (et autres fonctions administrateur). Ceci peut être accompli en exécutant :

    net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" SeMachineAccountPrivilege \ SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \ SeRemoteShutdownPrivilege
    
  9. Vous devriez maintenant être capable de connecter les clients Windows au domaine de la même manière que vous les connectez à un domaine NT4 fonctionnant sur un Serveur Windows.

Contrôleur secondaire de domaine

Avec un contrôleur principal de domaine (PDC) opérationnel, il est préférable d'avoir également un contrôleur de domaine secondaire (BDC). Cela permettra aux clients de pouvoir toujours s'authentifier en cas d'indisponibilité du contrôleur principal de domaine.

Lorsque vous paramétrez Samba en tant que BDC, vous avez besoin de synchroniser les informations de comptes avec le PDC. Ceci peut être fait avec divers outils tels que scp, rsync ou en utilisant LDAP en tant que passdb backend.

L'utilisation de LDAP est la façon la plus efficace de synchroniser des informations relatives aux comptes, car les deux contrôleurs de domaine peuvent utiliser les mêmes informations en temps réel. Cependant, configurer un serveur LDAP peut s'avérer trop complexe pour un petit nombre d'utilisateurs et de comptes d'ordinateurs. Voir Samba et LDAP pour plus de détails.

  1. First, install samba and libpam-winbind. From a terminal enter:

    sudo apt install samba libpam-winbind
    
  2. Modifiez maintenant /etc/samba/smb.conf et décommentez ce qui suit dans la section [global] :

       workgroup = EXAMPLE
       …
       security = user
    
  3. Dans la section commentée Domains décommentez ou ajoutez :

       domain logons = yes
       domain master = no
    
  4. Assurez-vous qu'un utilisateur a le droit de lire les fichiers dans /var/lib/samba. Ainsi, pour permettre à un utilisateur du groupe admin d'effectuer un scp sur les fichiers, saisissez :

    sudo chgrp -R admin /var/lib/samba
    
  5. Il faut ensuite synchroniser les comptes utilisateurs en se servant de scp pour copier le répertoire /var/lib/samba depuis le PDC :

    sudo scp -r identifiant@pdc:/var/lib/samba /var/lib
    

    Remplacez username par un identifiant correct et pdc par le nom d'hôte ou par l'adresse IP du PDC.

  6. Pour finir, redémarrez samba :

    sudo systemctl restart smbd.service nmbd.service
    

You pouvez tester le bon fonctionnement de votre BDC en arrêtant le démon Samba du PDC puis en essayant de vous identifier sur le domaine à partir d'un client Windows préalablement joint au domaine.

Une autre chose à conserver à l'esprit est que si vous avez configuré l'option logon home comme répertoire sur le PDC, et que le PDC devient indisponible, l'accès pour l'utilisateur au lecteur Home sera également impossible. Pour cette raison, il est préférable de configurer le logon home afin qu'il réside sur un serveur de fichiers séparé du PDC et du BDC.

Ressources