Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
samba-active-directory [Le 17/07/2018, 20:37]
Qedinux [Versions]
samba-active-directory [Le 17/07/2018, 22:27]
Qedinux [Gestion des rôles FSMO] Mise à jour 18.04
Ligne 28: Ligne 28:
  
 ==== Pré-requis ==== ==== Pré-requis ====
-Afin de bénéficier de l'​ensemble des fonctionnalités de Samba, il est nécessaire d'​activer les [[:​acl|ACL]] et les attributs étendus (user_xattr) sur les partitions concernées par Samba. Pour ce faire, il faut ajouter dans le fichier /etc/fstab les options acl et user_xattr aux partitions en question. L'​ajout de l'​option barrier=1 protège les transactions tdb contre la corruption des fichiers (notamment sam.ldb) lors les coupure d'​électricité ​(ou autre crash système). Celle-ci est fortement recommandée sur un DC.+Afin de bénéficier de l'​ensemble des fonctionnalités de Samba, il est nécessaire d'​activer les [[:​acl|ACL]] et les attributs étendus (user_xattr) sur les partitions concernées par Samba. Pour ce faire, il faut ajouter dans le fichier /etc/fstab les options ​//acl// et //user_xattr// aux partitions en question. L'​ajout de l'​option ​//barrier=1// protège les transactions tdb contre la corruption des fichiers (notamment sam.ldb) lors d'​une ​coupure d'​électricité ou tout autre crash système. Celle-ci est fortement recommandée sur un DC.
  
 Exemple d'une partition dans le ficher /etc/fstab Exemple d'une partition dans le ficher /etc/fstab
Ligne 38: Ligne 38:
 Le noyau d'​Ubuntu provenant des dépôts a bien les options(([[/​kernel#​configuration_du_noyau_utilise|cf. configuration du noyau utilisé]])) XATTR, SECURITY et POSIX_ACL pour les systèmes de fichier ext3 et ext4. Toute autre situation nécessitera de vérifier que ces options aient bien été activées lors de la compilation du noyau pour le système de fichier choisi. Le noyau d'​Ubuntu provenant des dépôts a bien les options(([[/​kernel#​configuration_du_noyau_utilise|cf. configuration du noyau utilisé]])) XATTR, SECURITY et POSIX_ACL pour les systèmes de fichier ext3 et ext4. Toute autre situation nécessitera de vérifier que ces options aient bien été activées lors de la compilation du noyau pour le système de fichier choisi.
  
-Afin de vérifier le bon fonctionnement des ACL et des attributs étendus, il faut se reporter aux sections [[#Tests des ACL|Tests des ACL]] et [[#Tests des attributs étendus|Tests des attributs étendus]].+Afin de vérifier le bon fonctionnement des ACL et des attributs étendus, il faut se reporter aux sections [[#Test des ACL|Test des ACL]] et [[#Test des attributs étendus|Test des attributs étendus]].
  
-Active Directory nécessite une synchronisation de temps précise entre les postes clients et le(s) DC(s). Il est vivement recommandé de mettre en œuvre le protocole [[:​ntp|NTP]] ou tout autre solution de synchronisation. La page [[https://​wiki.samba.org/​index.php/​Configure_NTP|Configure NTP]] donne les indications de configuration du NTP avec la stratégie (policy[[wpfr>​SELinux|SELinux]]+Active Directory nécessite une synchronisation de temps précise entre les postes clients et le(s) DC(s). Il est vivement recommandé de mettre en œuvre le protocole [[:​ntp|NTP]] ou tout autre solution de synchronisation ​du temps ([[https://​wiki.samba.org/​index.php/​Time_Synchronisation|Time Synchronisation]]).
  
 A titre d'​exemple,​ voici un fichier de configuration simplifiée de //ntp// qui conviendra sur le DC A titre d'​exemple,​ voici un fichier de configuration simplifiée de //ntp// qui conviendra sur le DC
Ligne 63: Ligne 63:
 ==== Installation à partir des sources ==== ==== Installation à partir des sources ====
 Cette solution s'​adresse aux personnes qui connaissent déjà bien le sujet et qui savent ce qu'​apporte une version plus récente que celle disponible dans les dépôts. N'​hésitez pas à consulter la page [[https://​wiki.samba.org/​index.php/​Build_Samba|Build Samba]] Cette solution s'​adresse aux personnes qui connaissent déjà bien le sujet et qui savent ce qu'​apporte une version plus récente que celle disponible dans les dépôts. N'​hésitez pas à consulter la page [[https://​wiki.samba.org/​index.php/​Build_Samba|Build Samba]]
- 
-Le projet Samba recommande d'​installer les paquets suivants avant d'​installer Samba 4 (cfr [[https://​wiki.samba.org/​index.php/​Samba_4/​OS_Requirements#​Debian_or_Ubuntu|OS Requirements]]) : 
-<​code>​sudo apt-get install acl attr autoconf bison build-essential debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev libcap-dev libcups2-dev libgnutls-dev libjson-perl libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpopt-dev libreadline-dev perl perl-modules pkg-config python-all-dev python-dev python-dnspython python-crypto xsltproc zlib1g-dev</​code>​ 
-Ensuite, il faut télécharger,​ décompresser,​ compiler et installer samba à partir des sources. 
-<​code>​wget https://​download.samba.org/​pub/​samba/​stable/​samba-4.4.2.tar.gz 
-tar xvzf samba-4.4.2.tar.gz 
-cd samba-4.4.2 
-./configure 
-make && make install 
-</​code>​ 
-<note important>​Si vous installez Samba à partir des sources, les chemins pour accéder aux différents fichiers seront certainement différents de ceux utilisés par la distribution. 
- 
-Il sera également nécessaire d'​installer //​samba-tool//​ à partir des dépôts (cfr **[[apt>​samba-common-bin]]** ou **[[apt>​samba4-common-bin]]**) ou à partir des sources</​note>​ 
  
 ===== Création d'un premier DC dans une nouvelle forêt ===== ===== Création d'un premier DC dans une nouvelle forêt =====
Ligne 84: Ligne 71:
 <​code>​sudo mv --backup=t /​etc/​samba/​smb.conf /​etc/​samba/​smb.conf.old</​code>​ <​code>​sudo mv --backup=t /​etc/​samba/​smb.conf /​etc/​samba/​smb.conf.old</​code>​
  
-L'​initialisation va créer plusieurs fichiers type base de données stockés dans /​var/​lib/​samba/​private/​ ainsi que le fichier /​etc/​samba/​smb.conf+L'​initialisation va créer plusieurs fichiers type base de données stockés dans /​var/​lib/​samba/​private/​ ainsi que le fichier /​etc/​samba/​smb.conf. Pour connaître, l'​ensemble des options relatives à l'​initialisation,​ il est recommandé d'​exécuter 
 +<​code>​samba-tool domain provision --help </​code>​ 
 +Parmi celles-ci, il est recommandé d'​utiliser au moins les deux options suivantes 
 +  * L'​option //​--use-rfc2307//​ active les attributs Posix et crée les informations NIS dans l'AD. Ceci permet d'​administrer les UIDs/GIDs et autres paramètres UNIX (visibles sous l'​onglet "Unix attributes"​ de l'​[[http://​technet.microsoft.com/​en-us/​library/​cc754217.aspx|ADUC]]). Il est plus simple de l'​activer durant l'​initialisation plutôt que par la suite. De plus, même si vous n'en avez pas (encore) besoin, ceci n'​impacte pas les performances de votre installation. 
 +  * L'​option //​--interactive//​ rend le processus d'​initialisation interactif. L'​utilisateur devra répondre à quelques questions pour paramétrer la création du domaine. Sans cette option, le processus d'​initialisation se base sur les valeurs existantes dans le fichier /​etc/​samba/​smb.conf et sur les valeurs par défaut.
  
 <​code>​ sudo samba-tool domain provision --use-rfc2307 --interactive</​code>​ <​code>​ sudo samba-tool domain provision --use-rfc2307 --interactive</​code>​
  
-L'​option //​--use-rfc2307//​ active les attributs Posix et crée les informations NIS dans l'AD. Ceci permet d'​administrer les UIDs/GIDs et autres paramètres UNIX (visibles sous l'​onglet "Unix attributes"​ de l'​[[http://​technet.microsoft.com/​en-us/​library/​cc754217.aspx|ADUC]]). Il est plus simple de l'​activer durant l'​initialisation plutôt que par la suite. De plus, même si vous n'en avez pas (encore) besoin, ceci n'​impacte pas votre installation. 
- 
-L'​option //​--interactive//​ va poser quelques questions pour la création du domaine. Pour connaître, l'​ensemble des options relatives à l'​initialisation,​ il est recommandé d'​exécuter 
-<​code>​samba-tool domain provision --help </​code>​ 
 Si les valeurs satisfont, il ne faut alors que les valider par ENTER Si les valeurs satisfont, il ne faut alors que les valider par ENTER
 <​code>​Realm [EXAMPLE.COM]:​ <​code>​Realm [EXAMPLE.COM]:​
Ligne 101: Ligne 88:
 Retype password:</​code>​ Retype password:</​code>​
  
-  * Par défaut, l'​initialisation propose le serveur DNS interne de Samba (SAMBA_INTERNAL) comme serveur DNS. Il est possible d'​utiliser Bind comme serveur DNS d'​arrière-plan (backend). Si vous choisissez [[http://​bind-dlz.sourceforge.net/​|BIND9_DLZ]] lors de l'​initialisation,​ référez-vous au wiki [[http://​wiki.samba.org/​index.php/​Samba_AD_DC_HOWTO#​BIND_as_DNS_backend|Bind as DNS backend]]. A tout moment, il est possible de changer de serveur DNS d'​arrière-plan (([[http://​wiki.samba.org/​index.php/​DNS#​Changing_from_Internal_DNS_to_BIND|Basculer de Internal ​DNS vers BIND]])). Pour plus d'​information sur la configuration du serveur DNS et trouver celle qui répond à vos besoins, consultez la page [[https://​wiki.samba.org/​index.php/​DNS#​Which_DNS_backend_should_I_choose.3F|Which DNS backend should I choose]]+  * Par défaut, l'​initialisation propose le serveur DNS interne de Samba (SAMBA_INTERNAL) comme serveur DNS. Il est possible d'​utiliser Bind comme serveur DNS d'​arrière-plan (backend). Si vous choisissez [[http://​bind-dlz.sourceforge.net/​|BIND9_DLZ]] lors de l'​initialisation,​ référez-vous au wiki [[https://​wiki.samba.org/​index.php/​BIND9_DLZ_DNS_Back_End|BIND9 DLZ DNS Back End]]. A tout moment, il est possible de changer de serveur DNS d'​arrière-plan (([[https://​wiki.samba.org/​index.php/​Changing_the_DNS_Back_End_of_a_Samba_AD_DC|Changing the DNS Back End of a Samba AD DC]])). Pour plus d'​information sur la configuration du serveur DNS et trouver celle qui répond à vos besoins, consultez la page [[https://​wiki.samba.org/​index.php/​The_Samba_AD_DNS_Back_Ends|Samba AD DNS Back Ends]]
   * Le mot de passe du compte Administrator du domaine doit respecter les règles de complexité,​ à savoir : au moins une majuscule, un chiffre et 8 caractères de long (par exemple : P@ssw0rd).   * Le mot de passe du compte Administrator du domaine doit respecter les règles de complexité,​ à savoir : au moins une majuscule, un chiffre et 8 caractères de long (par exemple : P@ssw0rd).
   * Dans le cas d'une ré-initialisation,​ en plus des mesures déjà décrites ci-dessus, il sera nécessaire de préalablement supprimer les fichiers de base de données privés de Samba   * Dans le cas d'une ré-initialisation,​ en plus des mesures déjà décrites ci-dessus, il sera nécessaire de préalablement supprimer les fichiers de base de données privés de Samba
Ligne 125: Ligne 112:
 <​code>​sudo samba-tool domain join example.com DC -U administrator --realm=EXAMPLE.COM</​code>​ <​code>​sudo samba-tool domain join example.com DC -U administrator --realm=EXAMPLE.COM</​code>​
  
-<note important>​Après cette commande, **il faut vérifier** si certains enregistrements dans le DNS sont bien présents ! L'​absence de ceux-ci empêchera le fonctionnement du contrôleur de domaine additionnel(cfr [[https://​wiki.samba.org/​index.php/​Check_and_fix_DNS_entries_on_DC_joins|Check and fix DNS entries on DC joins]] et [[https://​bugzilla.samba.org/​show_bug.cgi?​id=10928|Bug 10928]])+<note important>​Après cette commande, **il faut vérifier** si certains enregistrements dans le DNS sont bien présents ! L'​absence de ceux-ci empêchera le fonctionnement du contrôleur de domaine additionnel (cfr [[https://​wiki.samba.org/​index.php/​Check_and_fix_DNS_entries_on_DC_joins|Check and fix DNS entries on DC joins]] et [[https://​bugzilla.samba.org/​show_bug.cgi?​id=10928|Bug 10928]] ​résolu avec Samba 4.7).
  
 Vérification de la résolution du nom '​ubndc02.example.com'​ Vérification de la résolution du nom '​ubndc02.example.com'​
Ligne 161: Ligne 148:
 <file - /​etc/​resolv.conf>​search example.com <file - /​etc/​resolv.conf>​search example.com
 nameserver 127.0.0.1</​file>​ nameserver 127.0.0.1</​file>​
-Si ce fichier est géré par //​resolvconf//,​ il faut le configurer correctement,​ par exemple, en ajoutant ou modifiant l'​option //​dns-nameservers 127.0.0.1// dans le fichier /​etc/​network/​interfaces. ​ 
-<file - /​etc/​network/​interfaces>​... 
-iface eth0 inet static 
-    ... 
-    dns-nameservers 127.0.0.1 
-    ...</​file>​ 
-Après avoir modifié ce fichier, il faut exécuter la commande suivante pour prendre en compte cette modification. 
-<​code>​sudo service networking restart</​code>​ 
  
-Une alternative serait ​de supprimer le paquet //​resolvconf// ​et de configurer manuellement le fichier /​etc/​resolv.conf.+En fonction ​de la configuration réseau utilisée, ces paramètres peuvent être statiques ou gérer par un autre sous-système (se référer à [[tutoriel:​comment_configurer_son_reseau_local|Comment configurer son réseau local ?]], [[dns#​configuration_d_un_dns_alternatif|Configuration d'un DNS alternatif]] ​et [[utilisateurs:​ool:​netplan|netplan]])
  
-Le service Samba se gère via [[:​upstart|Upstart]] et la commande //​service//​. Avant de démarrer Samba AD DC, il faut d'​abord arrêter les services //smbd// et //nmbd//.  +Le service Samba se gère de préférence via [[:​systemd|systemd]] et la commande //​systemctl//​ mais peut également se gérer ​via [[:​upstart|Upstart]] et la commande //​service//​. Avant de démarrer Samba AD DC, il faut d'​abord arrêter les services //smbd// et //​nmbd// ​(//​samba.service//​).  
-<​code>​sudo ​service smbd stop +<​code>​sudo ​systemctl ​stop samba.service 
-sudo service ​nmbd stop +sudo systemctl start samba-ad-dc.service</​code>​
-sudo service ​samba-ad-dc ​start</​code>​+
  
 Pour connaître l'​ensemble des services démarrés par samba : Pour connaître l'​ensemble des services démarrés par samba :
Ligne 360: Ligne 338:
   * Primary Domain Controller Emulator ((PDC Emulator)) : 1 par domaine   * Primary Domain Controller Emulator ((PDC Emulator)) : 1 par domaine
   * Infrastructure Master: 1 par domaine   * Infrastructure Master: 1 par domaine
-Le projet Samba a ajouté à ceux-ci 2 rôles supplémentaires (([[https://​wiki.samba.org/​index.php/​Flexible_Single-Master_Operations_%28FSMO%29_roles|Samba FSMO roles]]))+Le projet Samba a ajouté à ceux-ci 2 rôles supplémentaires (([[https://​wiki.samba.org/​index.php/​Flexible_Single-Master_Operations_(FSMO)_Roles|Samba FSMO roles]]))
   * Forest DNS Zones Master: 1 par forêt   * Forest DNS Zones Master: 1 par forêt
   * Domain DNS Zones Master: 1 par domaine   * Domain DNS Zones Master: 1 par domaine
-Bien que non visible avec les outils samba 4.2 et antérieurs,​ ceux-ci existent bien dans l'​Active Directory (([[https://​wiki.samba.org/​index.php/​Transfering_/​_seizing_FSMO_roles#​Show_current_FSMO_role_owners|Samba - Show current FSMO role owners]])). 
 === Voir les propriétaires des rôles FSMO === === Voir les propriétaires des rôles FSMO ===
 La commande //​samba-tool//​ permet de voir les propriétaires de chaque rôle FSMO. L'​exécution doit se faire sur un contrôleur de domaine. La commande //​samba-tool//​ permet de voir les propriétaires de chaque rôle FSMO. L'​exécution doit se faire sur un contrôleur de domaine.
Ligne 377: Ligne 354:
 Dans l'​exemple ci-dessus, on voit que le contrôleur de domaine //ubndc01// possède tous les rôles. Dans l'​exemple ci-dessus, on voit que le contrôleur de domaine //ubndc01// possède tous les rôles.
 === Transfert des rôles FSMO === === Transfert des rôles FSMO ===
-La commande //​samba-tool//​ permet de transférer les rôles FSMO d'un contrôleur de domaine à l'​autre. L'​exécution doit se faire sur le contrôleur de domaine qui reprend le(s) rôle(s).+La commande //​samba-tool//​ permet de transférer les rôles FSMO d'un contrôleur de domaine à l'​autre(([[https://​wiki.samba.org/​index.php/​Transferring_and_Seizing_FSMO_Roles|Transferring and Seizing FSMO roles]])). L'​exécution doit se faire sur le contrôleur de domaine qui reprend le(s) rôle(s).
 <​code>​sudo samba-tool fsmo transfer --role=all -U administrator <​code>​sudo samba-tool fsmo transfer --role=all -U administrator
 FSMO transfer of '​rid'​ role successful FSMO transfer of '​rid'​ role successful
Ligne 386: Ligne 363:
 ERROR: ... ERROR: ...
 </​code>​ </​code>​
-Il est possible de transférer tous les rôles en même temps avec l'​argument //all// (comme dans l'​exemple ci-dessus) ou de transférer un rôle à la fois. +Il est possible de transférer tous les rôles en même temps avec l'​argument //all// (comme dans l'​exemple ci-dessus) ou de transférer un rôle à la fois. Il est possible de recevoir des messages d'​erreurs lors de l'​exécution. Il faut réessayer et patienter. Après un certains temps (5 à 10 minutes, le temps d'une réplication), ça devrait être en ordre et visible avec la commande //​samba-tool fsmo show//.
- +
-Il est possible de recevoir des messages d'​erreurs lors de l'​exécution. Il faut réessayer et patienter. Après un certains temps (5 à 10 minutes), ça devrait être en ordre et visible avec la commande //​samba-tool fsmo show//. Cependant, le projet Samba annonce qu'il existe un bug connu pour cette opération (([[https://​wiki.samba.org/​index.php/​Transfering_/​_seizing_FSMO_roles#​Transferring_a_FSMO_role|Transferring a FSMO role]] - [[https://​bugzilla.samba.org/​show_bug.cgi?​id=10734|Bug 10734]])). Un patch existe mais n'​aurait peut-être pas encore été approuvé et appliqué (depuis 2015-10-28).+
  
 === Retrait d'un contrôleur de domaine === === Retrait d'un contrôleur de domaine ===
  • samba-active-directory.txt
  • Dernière modification: Le 31/01/2024, 21:48
  • par Amiralgaby