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
utilisateurs:quentin:samba_active_directory_domain_controller [Le 03/03/2014, 14:02]
Qedinux Modification styles, forme, fonds - Deuxième partie
utilisateurs:quentin:samba_active_directory_domain_controller [Le 11/09/2022, 13:12] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 +{{tag>​BROUILLON}}
 ====== Samba - Active Directory Domain Controller (AD DC) ====== ====== Samba - Active Directory Domain Controller (AD DC) ======
  
-Le projet Samba est surtout connu pour le partage ​de fichiers selon le protocol SMB dévellopé par Microsoft. La version 4 de ce logiciel apporte la fonctionnalité supplémentaire ​d'​un ​contrôleur de domaine Active Directory (Active Directory Domain Controller - AD DC). Cette fonctionnalité inclue en natif les services [[:likn wikipédia|DNS]],​ [[:link wikipedia|LDAP]],​ [[http://​fr.wikipedia.org/​wiki/​Kerberos_%28protocole%29|Kerberos]],​ [[http://​fr.wikipedia.org/​wiki/​Remote_procedure_call|RPC]] et [[http://​fr.wikipedia.org/​wiki/​Server_Message_Block|SMB 3.0]] + distribution des GPO.+Brouillon avant de compléter ou créer un nouvelle page concernant l'​authentification ​d'​un ​utilisateur avec Samba AD DC
  
-<note importante>​Une connaissance préalable du AD DC de Microsoft et des fonctionnalités tels que DNS, LDAP, Kerberos, RPC, GPO, SMB, ... est un atout pour la bonne compréhension et mise en oeuvre de Samba AD DC. Cette documentation s'​adresse donc principalement aux administrateurs réseau.</​note>​ +La version actuelle se trouve ici [[:​samba-active-directory|Samba - Active Directory Domain Controller (AD DC)]] 
- +...
-Samba AD DC permet de créer un DC compatible avec les produits de Microsoft allant de Windows Server 2000, 2003, 2008 et 2012Cependant, toutes les fonctionnalitées avancées ne sont pas encore implémentéesSelon les cas, probablement au sein des PME, Samba AD DC pourrait parfaitement remplacer ces produits.+
  
 ===== Versions ===== ===== Versions =====
- +...
-Samba en version 4 fut premièrement disponible via le paquet **samba4**Ce paquet est disponible pour toutes les versions d'​Ubuntu allant de Lucid (10.04) à Trusty (14.04 LTS). Cependant, il s'agit là d'un paquet de transition.qui ne sera pas conservé sur le long terme. Samba en version 4 devient la version de base du paquet **samba** à partir de Trusty (14.04 LTS). Il est donc conseillé aux utilisateurs de Trusty et des versions qui suiveront de ne plus utiliser le paquet //samba4// mais bien le paquet **samba**. Sous Trusty, samba est fourni en version 4.1.3. +
-<​note>​Remarque : Sous Trusty, les paquets samba4 et samba co-existent. Le premier sert de transistion. Son seul rôle est d'​installer par le mécanisme de dépendance le paquet samba.</​note>​ +
- +
-Samba en version 3 et 4 ne devraient pas co-exister sur une même machine. Si Samba est déjà installé, vous pouvez en vérifier sa version en tapant : +
-<​code>​samba -V</​code>​ +
- +
-La documentation qui suit est basée sur Ubuntu Trusty avec samba en version 4.1.3. L'​ensemble des manipulations qui suivent requiert des droits administrateurs (local sur la machine ou domaine).+
 ===== Installation de Samba===== ===== Installation de Samba=====
-==== Pré-requis ==== 
-Le projet Samba recommande d'​installer quelques paquets 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 build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev \ 
-libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev \ 
-dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl</​code>​ 
-<​note>​Ces paquets ne sont pas tous repris dans la liste des dépendances du paquet samba. Quels sont ceux vraiment nécessaires ? Quels sont ceux uniquement nécessaires pour compiler les sources ?</​note>​ 
-=== Test sans les paquets //dev// === 
-<​code>​sudo apt-get install acl attr dnsutils krb5-user</​code>​ 
- 
-Est-ce que krb5-user est vraiment utile sur un DC ? 
- 
-L'​installation de krb5-user va installer via le mécanisme de dépendance krb5-config. Ce paquet va demander d'​introduire premièrement le nom du royaume :  EXAMPLE.COM,​ et deuxièmement,​ si la résolution dns de _kerberos._tcp.example.com ne donne pas de résultat, d'​introduire les informations relatives aux serveurs kerberos du royaume ainsi qu'au serveur d'​administration de kerberos. 
- 
-Le paquet krb5-user va, entre autre, apporter les commandes ***kinit*** et ***klist*** qui permettent d'​interroger et tester le serveur kerberos. Ce paquet n'​installe pas un serveur kerberos. 
- 
-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, user_xattr et barrier=1 aux partitions en question. 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). ​ 
- 
-Exemple d'une partition dans le ficher /etc/fstab 
-<​code>​UUID=8059560e-4a78-445b-a363-b3c197b4c7ea ​     /      ext4      defaults,​acl,​user_xattr,​barrier=1 ​    ​0 ​    ​1</​code>​ 
- 
-Après avoir modifié le fichier /etc/fstab, il faut redémarrer la machine ou remonter la partition pour que la modification soit effective 
-<​code>​sudo reboot</​code>​ 
-ou 
-<​code>​sudo mount -o remount /</​code>​ 
- 
-Le noyau d'​Ubuntu Trusty provenant des dépôts a bien les options 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 pour le système de fichier choisi lors de la compilation du noyau. 
-==== A partir des dépôts ==== 
-Cette solution a l'​avantage d'​être très simple à mettre en oeuvre. 
-<​code>​sudo apt-get install samba</​code>​ 
-==== A 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 à vous reporter à la page suivante : [[https://​wiki.samba.org/​index.php/​Build_Samba]] 
-<​code>​wget http://​www.samba.org/​samba/​stable/​samba-4.1.4.tar.gz 
-tar xvzf samba-4.1.4.tar.gz 
-cd samba-4.1.4 
-./configure 
-make && make install 
-</​code>​ 
-En résumé, ces quelques lignes permettent de télécharger,​ décompresser,​ compiler et installer samba à partir des sources. 
-<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</​note>​ 
- 
-Il peut être utile (voir indispensable) d'​installer les "​samba-tool"​ : 
-<​code>​ sudo apt-get install samba-common-bin </​code>​ 
-ou pour les version avant Trusty : 
-<​code>​ sudo apt-get install samba4-common-bin </​code>​ 
- 
-===== Création du premier DC dans une nouvelle forêt ===== 
-Ceci constitue l'​étape unique qui va créer le premier domaine dans la forêt. 
- 
-Les autres possibilités sont : 
-  * La création de DC alternatifs dans un même domaine. 
-  :: Si vous souhaitez configurer le serveur Samba comme un contrôleur de domaine additionnel dans un domaine existant, référez-vous au guide [[https://​wiki.samba.org/​index.php/​Samba4/​HOWTO/​Join_a_domain_as_a_DC|Joining a Windows Domain Controller as an additional DC in a Domain]]. 
-  * La création d'un DC supportant un nouveau domaine dans la même forêt. 
- 
 ==== Paramètres généraux ==== ==== Paramètres généraux ====
-Le reste de cette documentation se basera sur les paramètres suivants :+Avant toute installation,​ il est nécessaire de définir son environnement. Ainsi, il sera possible de configurer correctement son serveur. ​Le reste de cette documentation se basera sur les paramètres suivants :
  
-|Nom du serveur |ubndc01 | 
 |Nom de domaine |example.com | \\ RFC 2606 |Nom de domaine |example.com | \\ RFC 2606
 |Royaume (realm) |EXAMPLE.COM | |Royaume (realm) |EXAMPLE.COM |
 |Nom de NetBIOS |example | |Nom de NetBIOS |example |
-|Adresse IP |192.168.1.11 |+|Nom du serveur |ubndc01 | 
 +|Adresse IP du serveur ​|192.168.1.11 |
 |Rôle du serveur |DC (contrôleur de domaine) | |Rôle du serveur |DC (contrôleur de domaine) |
 +==== Pré-requis ==== 
 +... 
 +==== Installation à partir des dépôts ==== 
 +... 
 +==== Installation à partir des sources ==== 
 +... 
 +===== Création d'un premier DC dans une nouvelle forêt ===== 
 +...
 ==== Initialisation de Samba ==== ==== Initialisation de Samba ====
-Préalablement à l'​iniatilisation ​de Samba, il faut supprimer ou renommer le fichier smb.conf +... 
-<​code>​sudo mv --backup=t /​etc/​samba/​smb.conf /​etc/​samba/​smb.conf.old</​code>​ +==== Démarrer Samba AD DC ==== 
-Et arrêter le service samba+... 
-<​code>​sudo service samba stop</​code>​ +===== Test de Samba AD DC ===== 
-Vérification +..
-<​code>​sudo service ​samba stop</code> +==== Tests des ACL ==== 
-Si les services ​//nmbd// et //smbd// sont toujours actifs, il faut les arrêter. +... 
-<​code>​sudo service smbd stop +==== Tests des attributs étendus ==== 
-sudo service nmbd stop</code> +..
-L'​initialisation va créer plusieurs fichiers type base de données ainsi que le fichier smb.conf+==== Tests du DNS ==== 
 +... 
 +==== Tests de Kerberos ==== 
 +... 
 +==== Tests de SMB ==== 
 +... 
 +===== Mise à jour depuis un domaine Samba de type NT4 vers un AD===== 
 +... 
 +===== Authentification avec Samba AD DC ===== 
 +Afin de réaliser l'​authentification des utilisateurs d'AD, plusieurs méthodes existent : 
 +  * [[https://​wiki.samba.org/index.php/​Local_user_management_and_authentication/​sssd|sssd et pam_sss]] 
 +  * [[https://wiki.samba.org/index.php/Local_user_management_and_authentication/​nslcd|nslcd ​et pam_ldap]] 
 +  * [[https://wiki.samba.org/index.php/Samba4/​Winbind|winbind et pam_winbind]] 
 +Seule cette dernière méthode est expliquée dans cette documentation.
  
-<​code>​ sudo samba-tool domain provision --use-rfc2307 --interactive<​/code>+==== Authentification des utilisateurs sur le DC avec //winbind// ====
  
-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.+=== Installation et configuration pour utiliser ​//winbind// === 
 +Les paquets suivants sont requis pour la mise en œuvre ​de cette authentification. 
 +<​code>​sudo apt-get install libnss-winbind libpam-winbind winbind</code>
  
-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 +Il faut configurer le Name Service Switch (nsswitch) par l'ajout de winbind comme méthode pour les sections ​//passwd// et //group//
-<​code>​samba-tool domain provision --help ​</​code>​ +Par exemple avec la commande : 
-Si les valeurs satisfont, il ne faut alors que les valider par ENTER +<​code>​sudo sed -i '/​^passwd:​\|^group:/​{ s/$/ winbind/; };' /​etc/​nsswitch.conf</​code>​ 
-<code>Realm [EXAMPLE.COM]: +<file - /​etc/​nsswitch.conf>... 
-Domain [EXAMPLE]+passwdcompat winbind 
-Server Role (dc, member, standalone) [dc]+group ​compat winbind 
-DNS backend (SAMBA_INTERNAL,​ BIND9_FLATFILE,​ BIND9_DLZ, NONE) [SAMBA_INTERNAL]:​ +... 
-DNS forwarder IP address (write '​none'​ to disable forwarding) [192.168.10.1]: +</file>
-Administrator password: +
-Retype password:</code>+
  
-Notes importantes sur cette initialisation : +Ceci permet de chercher et utiliser les utilisateurs,​ leurs mots de passes et les groupes venant de AD au travers de //winbind//. 
-  * Cette initialisation va créer le fichier ​/etc/samba/smb.conf +Par défaut ​sur un DCles commandes ci-dessous retourne la liste de tous les utilisateurs et groupes (y compris ceux d'AD). Ce comportement peut être modifié avec l'option //...// dans la partie global ​du fichier ​de configuration ​de samba (/​etc/​samba/​smb.conf
-  ​* ​Par défaut, ​l'​initialisation propose le serveur DNS interne ​de Samba comme serveur DNS. Il est possible ​d'utiliser Bind comme serveur DNS d'​arrière-plan (backend). Ce choix n'est pas définitifA tout moment, il sera possible de changer de serveur DNS d'​arrière-plan. +<​code>​getent passwd 
-  * 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)+getent group</​code>​
-  * Dans le cas d'une ré-initialisation,​ en plus des mesures déjà décrites ci-dessus, il sera nécessaire de préallablement supprimer les fichiers de base de données privés de Samba +
-<​code>​rm -rf /​var/​lib/​samba/​private/​*</​code>​+
  
-==== Démarrer Samba AD DC ==== +Les UID et GIDs'ils n'​existent pas dans l'ADsont automatiquement généré ​(par winbind / idmapmais ils ne sont pas écrits ​dans AD par winbindCette remarque est importante car d'​autres machines récupérant ces même informations ​de l'AD génèreront d'​autres UID et GID pour un même utilisateur. Ceci crée une incohérance dans le domaine.
-Redémarer la machine. +
-<​code>​sudo reboot</​code>​ +
-<note fixme>Il est certainement possible de redémarrer uniquement les bons services. Lesquels ?</​note>​ +
-Le service Samba se gère via [[:​upstart|Upstart]]. Par exemplepour connaître son status : +
-<​code>​sudo initctl status samba-ad-dc +
-samba-ad-dc start/​running,​ process 1129</​code>​ +
-Pour connaître l'ensemble des services démarrés par samba : +
-<​code>​sudo samba-tool processes +
- ​Service: ​               PID  +
------------------------------ +
-dnsupdate ​               959 +
-nbt_server ​              933 +
-rpc_server ​              932 +
-cldap_server ​            942 +
-winbind_server ​          949 +
-kdc_server ​              943 +
-samba                      0 +
-dreplsrv ​                948 +
-kccsrv ​                  956 +
-ldap_server ​             938</​code>​ +
-On y voit, dans l'ordreles services suivants DNS, NetBIOS, RPC, Connection-less LDAP (CLDAP), WinBind, KDC (Kerberos Distribution Center), Replication (d?), KCC (Knowledge Consistency Checker), LDAP. Tous ces services ​sont configurés soit dans /​etc/​samba/​smb.conf, soit dans les fichiers /​var/​lib/​samba/​private/​*. +
-==== Mise à jour depuis un domaine Samba de type NT4 vers un AD==== +
-Si vous prévoyez la migration depuis un domain Samba NT4 existant vers un domaine ​Samba AD, reportez-vous à Classicupgrade HowTo ([[http://​wiki.samba.org/​index.php/​Samba4/​samba-tool/​domain/​classicupgrade/​HOWTO]])+
  
 +Idmap écrit les données dans le fichier /​var/​lib/​samba/​private/​idmap.ldb. Le range prévu pour la création automatique des id's est définit dans dn: CN=CONFIG avec les valeurs lower et upperBound.
 +<​code>​sudo ldbsearch -H /​var/​lib/​samba/​private/​idmap.ldb '​cn=config'​
 +# record 1
 +dn: CN=CONFIG
 +cn: CONFIG
 +lowerBound: 3000000
 +upperBound: 4000000
 +xidNumber: 3000017
 +distinguishedName:​ CN=CONFIG
 +</​code>​
  
 +Le fichier //​idmap.ldb//​ n'est présent que sur les DC et pas sur les //member server//. Est-il bon de copier les valeurs des xidNumber vers les uidNumber et gidNumber des utilisateurs et groupes d'AD ?
  
-==== Test de connexion a votre contrôleur ​de domaine ​AD Samba==== +En tout cas, afin d'​éviter ce type de problème, il est préférable ​de définir ces valeurs dans AD. Pour ce faire, il faut définir un range d'identifiant réservé uniquement pour AD, par exemple de 100000 à 999999. De plus, afin de garantir ​que seuls les utilisateurs et groupes possèdant un UID et GID dans AD puissent s'​authentifier sur une machine Linux du domaine, il faut ajouter les options suivantes dans la partie globale du fichier ​de configuration de samba. 
-Vérifiez tout d'abord que vous avez la bonne version ​de smbclient en tapant : +<file - /etc/samba/smb.conf
-<code> /usr/local/samba/bin/​smbclient --version</​code+... 
-Cela doit retourner ​un version commençant par "​Version 4.x" +    # Pas nécessaire sur un DC car les valeurs sont prises dans idmap.ldb si elles n'​existent pas dans AD 
-Exécutez ensuite la ligne suivante pour lister ​les partages définis ​sur votre serveur: +    idmap config EXAMPLE:​backend = ad 
-<code> /usr/local/​samba/​bin/​smbclient -L localhost -U%+    idmap config EXAMPLE:​schema_mode = rfc2307 
 +    idmap config EXAMPLE:​range = 100000-999999 
 +    
 +    # A ajouter sur les member servers mais pas sur les DC 
 +    #winbind nss info = rfc2307 
 +... 
 +</file>
  
-       ​Sharename ​      ​Type ​     Comment +== Création du home directory ​de l'utilisateur ==
-       ​--------- ​      ​---- ​     ------- +
-       ​netlogon ​       Disk +
-       ​sysvol ​         Disk +
-       ​IPC$ ​           IPC       IPC Service (Samba 4.x.y)</​code>​ +
-le retour doit être similaire aux informations ci-dessus. Les partages netlogon et sysvol sont par défaut sur un serveur Active Directory et crée dans votre fichier ​de configuration smb.conf lors de la configuration initiale (provisioning) ou mise a jour. +
-Si la commande échoue, redémarrer samba : +
-<​code>​ killall samba +
- /​usr/​local/​samba/​sbin/​samba</​code>​ +
-Pour vérifier que l'authentification fonctionne, vous devez essayer de vous connecter au partage netlogon en utilisant le compte Administrateur crée durant le configuration initial (provisioning). Le retour doit être similaire aux informations ci-dessous:​ +
-<​code>​ smbclient //​localhost/​netlogon -UAdministrator% -c '​ls'​+
  
-Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] +  * Cette première méthode est très générique et s'​applique à tous les utilisateurs de la machine (pas uniquement ceux d'AD) 
-  ​. ​                                  ​D ​       0  Tue Dec 11 20:00:00 2012 +<file - /​usr/​share/​pam-configs/​mkhomedir>​ 
-  ​.. ​                                 D        0  Tue Dec 11 20:00:00 2012 +Defaultno 
-</code>+Priority900 
 +Session-TypeAdditional 
 +Session-Final: 
 +        required ​       pam_mkhomedir.so skel=/​etc/​skel umask=0077 silent 
 +</file>
  
-==== Configuration du serveur DNS==== +  * Alternative en mofdifiant ​le fichier /​usr/​share/​pam-config/​winbind 
-Une configuration fonctionnelle du [[:​dns|DNS]] est essentielle pour assurer ​le bon fonctionnement de Samba et de l'AD. Sans les bons paramètres,​ Kerberos ne fonctionnera pas, entraînant le non-fonctionnement de services de base! Une configuration hâtive, non fonctionnelle,​ vous fera perdre du temps pour définir la cause des dysfonctionnement du DNS. Pour gérer les paramètres DNS, vous pouvez utilisez l'​utilitaire samba-tool (voire l'​outil MMC DNS de Windows). Pour plus d'​information,​ consulter [[https://wiki.samba.org/index.php/​DNS_Administration|DNS Administration ]] et [[https://wiki.samba.org/index.php/​Samba_AD_management_from_windows | administrer Samba AD depuis windows ]]+<​file ​- /usr/share/​pam-configs/​winbind>​... 
 +Session: 
 +        optional ​                       pam_winbind.so mkhomedir 
 +...</file> 
 +Cette alternative crée bien le home directory de l'​utilisateurLes droits sur ce répertoire sont correctement définis (700 avec owner: uidNumber et group: gidNumber)
  
-=== DNS Backends === +  * Un autre alternative consiste à monter le home directory de l'​utilisateur lors du login. Une option du fichier de configuration /​etc/​samba/​smb.conf est //homedir map auto.home//​. Ceci fait référence à autofs. Développement Ult. 
-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 | DNS]]\\ +== Limitation de l'​accès à un ou plusieurs SID == 
-Lors de l'​initialisation,​ il vous est proposé quatre choix comme "DNS Backend" ​SAMBA_INTERNAL (par défaut), BIND9_FLATFILE (obsolète?​),​ BIND9_DLZ (si vous mettez en place un serveur DNS avec BIND), NONE (si, c'est possible!).+Il est possible de limiter la possibilité l'accès à certains utilisateurs ou certains groupes ​sur base de leur SID. Il faut ajouter //​require_membership_of=<​SID>// ​à la fin de la ligne pam_winbind.so de la section //Auth:// du fichier ​/usr/share/​pam-config/​winbind 
 +<file - /​usr/​share/​pam-configs/​winbind>​..
 +Auth: 
 +        [success=end default=ignore] ​   pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass required_membership_of=S-1-5-21-5555555555-555555555-5555555555-512 
 +...</​file>​ 
 +Le RID 512 représente le groupe //Domain Admins//
  
-== Serveur DNS interne à samba (SAMBA_INTERNAL) ​== +== Appliquer les modifications des configurations PAM == 
-Par défaut, Samba utilise son propre serveur DNS interne et aucune configuration supplémentaire n'est nécessaire.\\ +Afin d'appliquer les modifications faites aux différents fichiers ​de configuration de pam (/​usr/​share/​pam-configs/​*)il faut exécuter ​
-Il est souvent nécessaire ​de définir le serveur DNS vers lequel renvoyer les demandes qui ne sont pas du ressort du DNS internepour cela ajouter ​+<​code>​sudo pam-auth-update</​code>​
-<​code> ​dns forwarder = {adresse IP du serveur DNS vers lequel transmettre}</​code> ​dans votre fichier smb.con puis redémarrer Samba.\\ +
-Nota : cette ligne peut avoir été renseignée durant l'​initialisation (provisioning) !+
  
-Pour que le serveur DNS interne puisse fonctionner,​ le port 53 udp/tcp ne doit pas être utilisé par d'autres programmes (tel qu'un autre serveur DNS, Dnsmasq, etc...). Vous aurez des erreurs dans le logfile si Samba ne peut utiliser le port 53, telle que : +==== Générer les uidNumber et gidNumber dans l'AD ==== 
-<codeFailed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED ​</code> +Le script suivant permet ​d'ajouter les uidNumber et gidNumber pour chaque utilisateur et chaque groupe de l'AD
-Pour vérifier quel programme est sur le port 53, exécuter avec les droit d'​administrateur : +<note important>Ce script nécessite des droits élevés permettant d'​écrite dans l'AD (p.ex. : root via la commande //sudo//). Une mauvaise exécution de ce script pourrait endommager AD ou faire perdre des données.</note
-<code> netstat ​-tunpe | grep ":​53"​ </code>+<file bash uid-gid_master.sh> 
 +#!/bin/bash
  
-== Interfaçage avec un serveur BIND (BIND9_DLZ) == +Vérifier si ces valeurs existent dans smb.conf 
-Si vous choisissez [[http://​bind-dlz.sourceforge.net/​|BIND9_DLZ]] lors de votre initialisation (provisioning),​ référez-vous au wiki [[http://​wiki.samba.org/​index.php/​Samba_AD_DC_HOWTO#BIND_as_DNS_backend|the Bind as DNS backend HowTo]] pour connaître les instructions à suivre. Vous trouverez aussi plus d'​informations sur le wiki pour la configuration de BIND en général et comment le configurer pour l'​utiliser avec Samba AD. Si vous avez initialiser avec le DNS interne, vous pouvez [[http://​wiki.samba.org/​index.php/​DNS#​Changing_from_Internal_DNS_to_BIND|basculer vers BIND]] lorsque cela est nécessaire.  +# idmap config REALM:range = min-max 
-=== Configuration du fichier /etc/resolv.conf === +rangeMin=100000 
-Pour résoudre les recherches local de DNS, il est nécessaire de modifier le fichier /​etc/​resolv.conf. L'​exemple suivant doit être suffisant pour résoudre le DNS correctement (adapter au domaine et adresse IP dans votre environnement):  +rangeMax=999999
-<​code>​domain samdom.example.com +
-nameserver 192.168.1.1</​code>​ +
-=== Tests du serveur DNS ===+
  
-==== Configuration de Kerberos ==== +sam=/var/lib/samba/private/sam.ldb
-Si vous ne connaissez pas le fonctionnement de Kerberos, voici un lien pour vous éclairer :\\ [[http://irp.nain-t.net/​doku.php/​320kerberos:​start]]\\ +
-La configuration de Kerberos se trouve dans le fichier krb5.conf. Ce fichier doit être déposé dans le répertoire /etc\\ +
-Lors de l'​initialisation,​ ce fichier est créé et déposé dans /usr/loca/samba/share/setup/krb5.conf. Son contenu par défaut est : +
-<​code>​[libdefaults] +
-        default_realm = ${REALM} +
-        dns_lookup_realm = false +
-        dns_lookup_kdc = true +
-</​code> ​        +
-Note : si vous avez oublié votre nom de "​royaume",​ exécutez  +
-<​code>/​usr/​local/​samba/​bin/​samba-tool testparm --suppress-prompt | grep realm</​code>​ +
-=== Tests de Kerberos === +
-Le test le plus simple est d'​utiliser la commande //kinit// comme cela:+
  
-<​code>​ kinit administrateur@SAMDOM.EXAMPLE.COM </code>+createTmpDir() { 
 +  tmpDir=$(mktemp -d --tmpdir addGid.XXXXXX) || exit 1 
 +  tmpRecord=$tmpDir/​record_ 
 +  tmpLdif=$tmpDir/​ldif 
 +
 +cleanTmpDir() { 
 +  rm $tmpDir/* 
 +
 +removeTmpDir() { 
 +  rm -r $tmpDir 
 +
 +                                                                                                                                                                                               
 +findMaxId() { 
 +  ldbsearch -H $sam "​$regexp"​ $field | sed '/^# Referral/ { :loop; N; $! b loop; d; }; s/​^\([a-zA-Z0-9]*\):​ \(.*\)$/\1="​\2"/​g;​ /​^$/​d;'​ | awk '/^# record/​{n++}{print > f n}' f=$tmpRecord ​     
 +                                                                                                                                                                                               
 +  maxID=$rangeMin ​                                                                                                                                                                             
 +  for file in `grep -l -E "​^$field="​ ${tmpRecord}*` ​                                                                                                                                           
 +  do                                                                                                                                                                                           
 +    source $file                                                                                                                                                                               
 +    if [ ${!field} -gt $rangeMax ] 
 +    then 
 +      echo "​Warning:​ $field ${!field} for $dn is bigger than max id $rangeMax"​ 1>&​2 
 +    elif [ ${!field} -lt $rangeMin ] 
 +    then 
 +      echo "​Warning:​ $field ${!field} for $dn is lower than min id $rangeMin"​ 1>&2 
 +    else 
 +      [ ${!field} -gt $maxID ] && maxID=${!field} 
 +    fi 
 +  done
  
-Note: vous devez saisir le nom de "royaume" ​en **lettres majuscules !**+  echo "Max ID found for $field: $maxID" 
 +}
  
-Note: selon la distribution,​ kinit peut juste retourner un prompt, mais sous certaines distributions le retour est du type  +addIdNumber() { 
-<​code>​Warning:​ Your password will expire ​in x days on ...  </​code>​(Attention: votre mot de passe expirera dans x jours, le... )+  for file in `grep -L -E "​^$field="​ ${tmpRecord}*` 
 +  do 
 +    ​((maxID++)
 +    source $file 
 +    echo "​Adding $field: $maxID for dn: $dn" 
 +    echo "dn: $dn 
 +changetype: modify 
 +add: $field 
 +$field: $maxID"​ > $tmpLdif 
 +    ldbmodify -H $sam $tmpLdif 
 +  done 
 +}
  
-Pour vérifier quelle version de Kerberos est utilisée, et qu'​elle vous retourne un ticket, taper :+umask 0077 
 +createTmpDir
  
-<​code>​klist +field=uidNumber 
-Ticket cache: FILE:/​tmp/​krb5cc_1000 +regexp="​(&​(objectclass=user)(!(objectclass=computer)))"​ 
-Default principal: administrator@SAMDOM.EXAMPLE.COM +findMaxId 
-  +addIdNumber 
-Valid starting ​    ​Expires ​           Service principal +cleanTmpDir
-02/10/13 19:​39:​48 ​ 02/11/13 19:​39:​46 ​ krbtgt/​SAMDOM.EXAMPLE.COM@SAMDOM.EXAMPLE.COM +
-</​code>​ +
-Si ni //kinit// ni //klist// n'​existe sur votre système, référez-vous à la page [[http://​wiki.samba.org/​index.php/​Samba_4_OS_Requirements|Samba_4_OS_Requirements]] ou au début de ce document.+
  
-Vous pouvez aussi tester Kerberos à partir d'un poste client, mais vous devez tout d'​abord configurer le fichier krb5.conf and resolve.conf du poste client comme illustré ci-dessus.+field=gidNumber 
 +regexp="​(objectclass=group)"​ 
 +findMaxId 
 +addIdNumber 
 +cleanTmpDir
  
-Note: Si vous utilisez un poste client derrière un serveur NAT vous devez ajoter la ligne suivante dans le fichier krb5.conf de controleur de domaine: ​+removeTmpDir
  
-<​code>​[kdc] +exit 0 
-        ​check-ticket-addresses = false<code>+</file>
  
-Note: Si l'​initialisation (provisionning) génère un mot de passe et que vous le perdez, vous pouvez utilisez samba-tool user setpassword administrator en administrateur pour le réinitialiser. 
-==== Configuration NTP ==== 
  
 ===== Informations optionnelles et complémentaires ===== ===== Informations optionnelles et complémentaires =====
- +...
-===== Remonter vos succès/​échecs ===== +
 ===== Références ===== ===== Références =====
-  * wiki Samba : [[http://​wiki.samba.org/index.php/​Samba_AD_DC_HOWTO]] +... 
-  * articles dans linux pratique n°79 de sept/oct 2013 (pages 68 à 73) et linux pratique n°80 de nov/déc (pages 70 à 76) +//Contributeurs principaux ​: [[utilisateurs:​bcag2|bcag2]], [[:​utilisateurs:​Qedinux|Qedinux]]//​
- +
- +
- +
-//​Contributeur principal ​:// [[utilisateurs:​bcag2|bcag2]]+
  • utilisateurs/quentin/samba_active_directory_domain_controller.1393851729.txt.gz
  • Dernière modification: Le 03/03/2014, 14:02
  • par Qedinux