Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
utilisateurs:quentin:samba_active_directory_domain_controller [Le 26/02/2014, 15:35]
Qedinux Brouillon de bcag2
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:
-====== ​samba4 ​le  contrôleur de domaine ​Active Directory ====== +{{tag>​BROUILLON}} 
-ce documents est en cours de rédaction, à partir de plusieurs sources parmi : +====== ​Samba - Active Directory ​Domain Controller (AD DC) ======
-  * 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)+
  
-===== Introduction ===== +Brouillon avant de compléter ou créer un nouvelle page concernant ​l'authentification ​d'​un ​utilisateur avec Samba AD DC 
-Le projet Samba est surtout connut pour le partage ​de fichier.\\ + 
-Samba 4 est une ré-écriture complète initiée en 2003 dans l'objectif de créer, en plus du partage de fichier, ​d'​un ​contrôle de domaine libre.\\ Il est agrémenté,​ en natif, d'un serveur ​[[:dns|DNS]], [[:openldap-server|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]].  +La version actuelle se trouve ici [[:samba-active-directory|Samba ​Active Directory ​Domain Controller ​(AD DC)]] 
-<note importante>​Cette documentation s'​adresse principalement à des administrateurs réseau pour la mise en place d'un serveur de contrôle de domaine et requiert notamment de bonnes notions sur le DNS</​note>​ +...
-Ce document explique comment configurer ​Samba comme contrôleur de domaine (DC) compatible avec l'Active Directory (AD) de Microsoft (c), notamment pour l'​utilisation de connexion de domaine de machines clientes tournants sous Microsoft Windows. En abréviation,​ nous utiliserons ​AD DC (Active Directory Domain Controler+
-Si vous réalisez une mise à niveau de votre AD DC, merci de consulter la procédure de mise à niveau de votre distribution ou reportez vous au guide mise à niveau d'une version source.+
  
 ===== Versions ===== ===== Versions =====
-Samba 4, depuis sa version 4.1 sortie fin 2013, est la version stable actuelle. +...
-Retrouver la liste des versions est leur support sur [[https://​wiki.samba.org/​index.php/​Samba_Release_Planning#​Current_Stable_Release|Planing (roadmap) Versions Stables]]\\ +
-Samba est développé en continu. Ce guide est fréquemment mis à jour pour correspondre aux évolutions. Merci de vous référer [[http://​www.samba.org/​samba/​history/​|à l'​historique des versions stables de Samba]] pour plus d'​informations. +
-Prenez connaissance de la release notes de la version que vous avez installée. Elle peut contenir des informations importantes non contenues dans ce guide. +
-Vous pouvez vérifier d'​éventuelle installation précédente de samba en tapant : +
-<​code>​ +
-dpkg -l samba +
-</​code>​ se reporter à la page [[:​dpkg|dpkg]] pour plus d'​informations +
 ===== Installation de Samba===== ===== Installation de Samba=====
-==== Différentes possibilités d'​installation==== +==== Paramètres généraux ​==== 
-Avant d'​installer Samba 4, il est nécessaire de disposer d'​autres paquets. +Avant toute installation, il est nécessaire de définir son environnementAinsi, il sera possible de configurer correctement son serveur. Le reste de cette documentation se basera sur les paramètres suivants ​:
-Voici la ligne proposée sur [[https://​wiki.samba.org/​index.php/​Samba_4/​OS_Requirements#​Debian_or_Ubuntu|wiki.samba.org/​index.php/​Samba_4/​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>​ +
-Par ailleurs, il est nécessaire d'​activer ​les [[:acl|ACL]] et les attributs étendus (usr_xattr),​ exemple de [[:​mount_fstab|fstab]] : +
-<​code>​ +
-UUID=243eb5b....... / ext4 default,​acl,​user_xattr,​barrier=1 ​  ​0 ​  1 +
-</​code>​+
  
-Vous disposez ​de deux possibilités pour installer Samba : +|Nom de domaine |example.com | \\ RFC 2606 
-=== Installation ​avec votre gestionnaire de paquet ​=== +|Royaume (realm) |EXAMPLE.COM | 
-Cette solution, si elle a l'​avantage ​d'être très simple, a l'​inconvénient d'​installer ​une version qui peut être ancienne, ce qui peut être gênant alors que le logiciel évolue rapidementAinsi, pour Precise (LTS 12.04), seule une version alpha est proposée pour test et pour Trusty (LTS 14.04), c'est la version 4.0.3 ! +|Nom de NetBIOS |example | 
-=== Compiler ​Samba vous-même à partir ​des sources ​=== +|Nom du serveur |ubndc01 | 
-C'est la solution préconisée pour disposer ​de la dernière version ​de Samba4, utilisable en "​production"​+|Adresse IP du serveur |192.168.1.11 | 
-N'​hésitez pas à vous reporter à la page suivante ​: [[https://​wiki.samba.org/​index.php/​Build_Samba]] +|Rôle du serveur |DC (contrôleur de domaine) | 
-<​code>​wget http://www.samba.org/samba/stable/samba-4.1.4.tar.gz +==== Pré-requis ==== 
-tar xvzf samba-4.1.4.tar.gz +... 
-cd samba-4.1.4 +==== Installation ​à partir des dépôts ==== 
-./configure +... 
-make && make install+==== Installation à partir des sources ==== 
 +... 
 +===== Création ​d'un premier DC dans une nouvelle forêt ===== 
 +... 
 +==== Initialisation de Samba ==== 
 +... 
 +==== Démarrer ​Samba AD DC ==== 
 +... 
 +===== Test de Samba AD DC ===== 
 +... 
 +==== Tests des ACL ==== 
 +... 
 +==== Tests des attributs étendus ==== 
 +... 
 +==== 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> +==== Authentification des utilisateurs sur le DC avec //winbind// ====
-en résumé, les lignes ci-dessus permettent de télécharger,​ décompresser,​ compiler puis lancer l'​installation.\\ +
-Nota : utiliser la dernière version si correction de sécurité, sinon, n'​hésitez pas à prendre la version n-1 si la dernière version est trop fraîche ! +
-\\ +
-Il peut être utile (voir indispensable) d'​installer les "​samba-tool"​ : +
-<​code>​ sudo apt-get install samba4-common-bin </code>+
  
-==== Chemins (path)==== +=== Installation ​et configuration pour utiliser ​//winbind// === 
-Soyez prudent quand vous exécutez une commande Samba si vous avez déjà une version antérieure de Samba installée. Pour éviter d'​exécuter une mauvaise version, vous devez définir les chemins des répertoires /​usr/​local/​samba/​bin/ ​et /usr/local/samba/sbin/ au tout début de votre [[:​variables_d_environnement|variable]] $PATH !\\ +Les paquets suivants sont requis pour la mise en œuvre ​de cette authentification. 
-<​code>​ export PATH=/​usr/​local/​samba/​bin:/​usr/​local/​samba/​sbin:​$PATH</​code>​ +<​code>​sudo apt-get install libnss-winbind libpam-winbind winbind</​code>​
-Vous pouvez voir la version ​de Samba que vous utilisez en exécutant : +
-<​code> ​samba -V</​code>​+
  
-==== Informations du serveur==== +Il faut configurer ​le Name Service Switch (nsswitch) par l'​ajout ​de winbind comme méthode pour les sections //passwd// et //group//. 
-Pour le reste de ce guide, nous utiliserons ​les paramètres suivants pour le serveur\\ +Par exemple avec la commande ​
-répertoire d'​installation: ​/usr/local/samba\\ +<​code>​sudo sed -i '/​^passwd:\|^group:/{ s/$/ winbind/; };' /​etc/​nsswitch.conf</​code>​ 
-nom du serveur       DC1 \\ +<file - /​etc/​nsswitch.conf>​... 
-nom de domaine DNS       ​samdom.example.com (Ce sera aussi le nom de "​royaume"​ ou realm) \\ +passwdcompat winbind 
-nom de domaine NT4       samdom \\ +group ​compat winbind 
-adresse IP             192.168.1.1 \\ +... 
-rôle du serveur :            DC (contrôleur de domaine) \\+</​file>​
  
-==== Initialisation ​de Samba (configurer un nouveau domaine)==== +Ceci permet ​de chercher et utiliser les utilisateurs,​ leurs mots de passes et les groupes venant ​de AD au travers ​de //winbind//. 
-Cette initialisation crée une base de donnée. Cette opération est nécessaire lors de la configuration d'un nouveau contrôleur ​de 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]].\\ +Par défaut sur un DC, les 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
-Cette étape doit être réalisée par un utilisateur ayant les droits d'​écriture sur le répertoire d'​installation. Dans le cas contraire, cela générera des erreurs de permissions. +<​code>​getent passwd 
-Pour lancer cette configuration,​ exécuter : +getent group</​code>​
-<​code>​ sudo /​usr/​local/​samba/​bin/​ samba-tool domain provision --use-rfc2307 --interactive</​code>​ +
-Cela lance l'​outil ​de configuration qui est interactif. Cette interactivité n'​étant pas vrai pour certain paramètres,​ il est recommandé d'​exécuter <​code>​samba-tool domain provision --help </​code>​afin d'​avoir un aperçu des options complémentaires. +
-L'​option --use-rfc2307 active ​les attributs posix de l'AD de Samba. Cela crée aussi les informations NIS dans l'AD, ce qui vous permet d'​administrer les UIDs/​GIDs ​et autres paramètres UNIX (dans la table "Unix attributes"​ de l'ADUC...Active Directory Users and Computers). Il est plus simple de l'activer durant cette initialisation (Provisioning),​ plutôt que par la suiteDe plus, même si vous n'en avez pas (encore) besoin, ça n'​impacte pas votre installation. +
-Notes importantes sur cette initialisation : +
-  * La commande d'​initialisation utilise le serveur DNS interne de Samba par défautSi vous souhaitez utiliser Bind comme serveur DNS d'​arrière-plan,​ ajouter --dns-backend=BIND9_DLZ ​dans les options ​de commande. Cette décision est réversible. Vous pouvez changer ​de serveur arrière-plan à tout moment. +
-  * Si vous ré-exécutez cette initialisation ​(provisioning),​ il est nécessaire de supprimer le fichier : <​code>​/usr/local/samba/etc/smb.conf </code> et éventuellement la base si elle a été généré, par : <​code>​rm -rf /​usr/​local/​samba/​private/​*</​code> +
-  * Le mot de passe d'​administration doit correspondre aux règles établies, à savoir : au moins une majuscule, un chiffre et 8 caractères de long. Si vous ne spécifiez pas un mot de passe correspondant à ces critères, le script de configuration échouera et vous devrez recommencer avec un mot de passe correcte après avoir supprimé le contenu des répertoires suivants: <​code>​remove /​usr/​local/​samba/​private/​ et /​usr/​local/​samba/​etc/​</​code>​ +
-  * Si votre site web est exemple.fr, le domaine de votre AD devrait être un sous-domaine,​ tel que sousdomain.exemple.fr (ou ad.exemple.fr...). Évitez d'​utiliser exemple.fr en interne.+
  
-==== Mise à jour depuis un domaine Samba de type NT4 vers un AD==== +Les UID et GID, s'ils n'​existent pas dans l'AD, sont automatiquement généré ​(par winbind ​idmap) mais 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 utilisateurCeci crée une incohérance dans le domaine.
-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]])+
  
-==== Démarrer votre AD DC Samba==== +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 dnCN=CONFIG ​avec les valeurs lower et upperBound
-Note: si vous des services smbd, nmbd ou winbind d'une précédente installation,​ il est nécessaire de les arrêter avant de démarrer samba +<​code>​sudo ldbsearch ​-/var/lib/samba/private/idmap.ldb '​cn=config'​ 
-Si vous prévoyez d'​utiliser samba comme serveur de production, tapez simplement : +# record 1 
-<​code> ​/usr/local/samba/sbin/samba</​code>​ +dn: CN=CONFIG 
-Cela démarre samba en mode '​standard',​ ce qui est préconise en mode production.\\ +cn: CONFIG 
-Pour le démarrage automatique au démarrage du serveur, Samba ne dispose pas encore de scripts d'​initialisation ​pour ubuntu, mais il y a des exemples de scripts sur la [[https://​wiki.samba.org/​index.php/​Samba4/​InitScript | page Init-Script]] de Samba4. +lowerBound: 3000000 
-Si vous exécutez samba a des fin de développement,​ exécuter ​: +upperBound: 4000000 
-<​code>​ /​usr/​local/​samba/​sbin/​samba -i -M single</​code>​ +xidNumber: 3000017 
-Cela démarrera Samba avec tous les messages log vers stdout, limite a un seul processusCe mode permet un débogage de Samba avec gdb : +distinguishedName:​ CN=CONFIG 
-<​code> ​gdb --args /usr/local/samba/sbin/samba -i -M single</​code>​+</​code>​
  
-==== Test de connexion a votre contrôleur de domaine AD Samba==== +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 ?
-Vérifiez tout d'​abord que vous avez la bonne version de smbclient en tapant : +
-<​code> ​/usr/local/samba/bin/​smbclient --version</​code>​ +
-Cela doit retourner un version commençant par "​Version 4.x" +
-Exécutez ensuite la ligne suivante pour lister ​les partages définis ​sur votre serveur: +
-<​code> ​/usr/local/samba/bin/​smbclient ​-L localhost -U%+
  
-       ​Sharename ​      ​Type ​     Comment +En tout cas, afin d'​éviter ce type de problème, il est préférable de définir ces valeurs dans ADPour ce faire, il faut définir un range d'​identifiant réservé uniquement pour AD, par exemple de 100000 à 999999De 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
-       ​--------- ​      ​---- ​     ------- +<file - /etc/samba/smb.conf
-       ​netlogon ​       Disk +... 
-       ​sysvol ​         Disk +    # Pas nécessaire sur un DC car les valeurs sont prises dans idmap.ldb si elles n'existent pas dans AD 
-       ​IPC$ ​           IPC       IPC Service (Samba 4.x.y)</​code>​ +    idmap config EXAMPLE:backend = ad 
-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. +    idmap config EXAMPLE:​schema_mode = rfc2307 
-Si la commande échoue, redémarrer samba : +    idmap config EXAMPLE:​range = 100000-999999 
-<code> killall samba +    
- /usr/local/samba/sbin/​samba</​code+    # A ajouter sur les member servers mais pas sur les DC 
-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+    #winbind nss info = rfc2307 
-<code> smbclient ​//​localhost/​netlogon -UAdministrator% -c '​ls'​+... 
 +</file>
  
-Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] +== Création du home directory de l'​utilisateur ==
-  .                                   ​D ​       0  Tue Dec 11 20:00:00 2012 +
-  ..                                  D        0  Tue Dec 11 20:00:00 2012 +
-</​code>​+
  
-==== Configuration du serveur DNS==== +  * 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) 
-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/mkhomedir>​ 
 +Defaultno 
 +Priority: 900 
 +Session-Type:​ Additional 
 +Session-Final:​ 
 +        required ​       pam_mkhomedir.so skel=/etc/skel umask=0077 silent 
 +</file>
  
-=== DNS Backends === +  * Alternative en mofdifiant le fichier /​usr/​share/​pam-config/​winbind 
-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]]\\ +<file - /usr/share/pam-configs/winbind>... 
-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!).+Session: 
 +        optional ​                       pam_winbind.so mkhomedir 
 +...</​file>​ 
 +Cette alternative crée bien le home directory ​de l'utilisateur. Les droits sur ce répertoire sont correctement définis ​(700 avec owner: uidNumber et group: gidNumber)
  
-== Serveur DNS interne ​à samba (SAMBA_INTERNAL) ​== +  * 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. 
-Par défaut, Samba utilise son propre serveur DNS interne et aucune configuration supplémentaire n'est nécessaire.\\ +== Limitation de l'​accès ​à un ou plusieurs SID == 
-Il est souvent nécessaire ​de définir le serveur DNS vers lequel renvoyer les demandes qui ne sont pas du ressort du DNS interne, pour cela ajouter ​+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 
-<codedns forwarder = {adresse IP du serveur DNS vers lequel transmettre}</codedans votre fichier smb.con puis redémarrer Samba.\\ +<file - /​usr/​share/​pam-configs/winbind>... 
-Nota cette ligne peut avoir été renseignée durant l'​initialisation (provisioning) !+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//
  
-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 : +== Appliquer les modifications des configurations PAM == 
-<​code>​ Failed to bind to 0.0.0.0:53 TCP NT_STATUS_ADDRESS_ALREADY_ASSOCIATED </code> +Afin d'appliquer les modifications faites aux différents fichiers de configuration de pam (/​usr/​share/​pam-configs/*)il faut exécuter : 
-Pour vérifier quel programme est sur le port 53, exécuter ​avec les droit d'​administrateur ​+<​code>​sudo pam-auth-update</​code>​
-<​code> ​netstat ​-tunpe | grep ":​53" ​</​code>​+
  
-== Interfaçage avec un serveur BIND (BIND9_DLZ) ​== +==== Générer ​les uidNumber ​et gidNumber dans l'AD ==== 
-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.  +Le script suivant permet d'​ajouter ​les uidNumber et gidNumber pour chaque utilisateur et chaque groupe ​de l'AD
-=== Configuration du fichier /​etc/​resolv.conf ​=== +<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
-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): ​ +<file bash uid-gid_master.sh>​ 
-<code>domain samdom.example.com +#!/bin/bash
-nameserver 192.168.1.1</code+
-=== Tests du serveur DNS ===+
  
-==== Configuration de Kerberos ==== +# Vérifier si ces valeurs existent ​dans smb.conf 
-Si vous ne connaissez pas le fonctionnement de Kerberos, voici un lien pour vous éclairer :\\ [[http://​irp.nain-t.net/​doku.php/​320kerberos:​start]]\\ +# idmap config REALM:range min-max 
-La configuration de Kerberos se trouve ​dans le fichier krb5.conf. Ce fichier doit être déposé dans le répertoire /etc\\ +rangeMin=100000 
-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 : +rangeMax=999999
-<​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>+sam=/var/​lib/​samba/​private/​sam.ldb
  
-Note: vous devez saisir le nom de "royaume" ​en **lettres majuscules ​!**+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
  
-Noteselon la distribution,​ kinit peut juste retourner un prompt, mais sous certaines distributions le retour est du type  +  echo "Max ID found for $field$maxID"​ 
-<​code>​Warning:​ Your password will expire in x days on ...  </​code>​(Attention:​ votre mot de passe expirera dans x jours, le... )+}
  
-Pour vérifier quelle version de Kerberos est utilisée, et qu'​elle vous retourne un ticket, taper :+addIdNumber() { 
 +  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 
 +}
  
-<​code>​klist +umask 0077 
-Ticket cache: FILE:/​tmp/​krb5cc_1000 +createTmpDir
-Default principal: administrator@SAMDOM.EXAMPLE.COM +
-  +
-Valid starting ​    ​Expires ​           Service principal +
-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=uidNumber 
 +regexp="​(&​(objectclass=user)(!(objectclass=computer)))"​ 
 +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: ​+field=gidNumber 
 +regexp="​(objectclass=group)"​ 
 +findMaxId 
 +addIdNumber 
 +cleanTmpDir
  
-<​code>​[kdc] +removeTmpDir 
-        ​check-ticket-addresses = false<code>+ 
 +exit 0 
 +</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 ​===== 
- +... 
- +//Contributeurs principaux ​: [[utilisateurs:​bcag2|bcag2]], [[:​utilisateurs:​Qedinux|Qedinux]]//​
-//Contributeur principal ​:// [[utilisateurs:​bcag2|bcag2]]+
  • utilisateurs/quentin/samba_active_directory_domain_controller.1393425317.txt.gz
  • Dernière modification: Le 26/02/2014, 15:35
  • par Qedinux