Installer et configurer un Samba-AD secondaire sur RedHat et dérivées

Note

Dans cette documentation, on suppose :

  • Que le contrôleur de domaine principal s’appelle srvads1.

  • Que le contrôleur de domaine secondaire s’appelle srvads2.

  • Que le domaine s’appelle mydomain.lan.

Dans les instructions décrites ci-dessous, vous remplacerez mydomain.lan avec votre propre nom de domaine et srvads1 et srvads2 avec les noms de machines de votre choix.

  • Sur une base CentOS7 64 bits, préparer une configuration réseau propre en suivant cette documentation.

Les paquets de la dernière version 4.14 validés par l’équipe de Tranquil IT peuvent être téléchargés à partir de l’url https://samba.tranquil.it/redhat8/samba-4.19/. Lorsqu’il sera nécessaire de mettre à niveau vers Samba-4.14, il suffira de changer l’url du dépôt à https://samba.tranquil.it/redhat8/samba-4.19/ et de suivre les notes de mise à niveau.

  • Récupérer la clé de signature RPM et configurer un dépôt YUM :

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-7
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7

echo "[tis-samba]
name=tis-samba
baseurl=https://samba.tranquil.it/redhat7/samba-4.19/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /etc/yum.repos.d/tissamba.repo
  • Vérifier l’empreinte de la clé avec sha256sum :

    # For RHEL7 / RHEL8 :
    sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
        b3cd8395e3d211a8760e95b9bc239513e9384d6c954d17515ae29c18d32a4a11 /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
    
    # For RHEL9 :
    sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9
        05f21f368bdeb01453e37c3af2b8fcabba8986e2ce2b0d0298df6456a0bef60a /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
    
  • Installez les paquets Samba-AD pour RedHat8 et ses distributions dérivées :

    yum install -y samba samba-dc samba-winbind samba-winbind-clients krb5-workstation ldb-tools bind chrony bind-utils samba-client
    

Configuration de base

  • Modifier le fichier /etc/hostname pour qu’il contienne le nom FQDN de la machine :

    srvads2.mydomain.lan
    
  • Modifier /etc/hosts pour qu’il contienne la résolution DNS du FQDN de la machine sur son IP (i.e. pas 127.0.0.1), avec le nom long puis le nom court :

    127.0.0.1      localhost
    192.168.1.12   srvads2.mydomain.lan srvads2
    
  • Redémarrer la machine pour qu’elle prenne en compte son nouveau nom en faisant un reboot.

    Note

    un hostname -F /etc/hostname n’a pas l’air de suffire pour le script samba qui récupère toujours l’ancien nom …

Joindre le contrôleur secondaire au domaine

  • Configurer le DNS pour pointer sur un contrôleur de domaine Windows ou Samba dans /etc/resolv.conf :

    search mydomain.lan
    nameserver 192.168.1.11
    

Configurer le Kerberos

  • Ouvrir /etc/krb5.conf, supprimer son contenu et rajouter :

    [libdefaults]
      default_realm = MYDOMAIN.LAN
      dns_lookup_kdc = false
      dns_lookup_realm=false
    [realms]
      MYDOMAIN.LAN = {
      kdc = 127.0.0.1
      kdc = 192.168.1.12
      }
    

    Attention

    Il faut respecter les majuscules et remplacer les 2 IP par :

    • L’IP de votre nouveau serveur AD en premier, on peut utiliser localhost 127.0.0.1.

    • L’IP du serveur AD existant en deuxième (ex· 192.168.1.12).

  • Redémarrer la machine :

    reboot
    
  • Après redémarrage, tester que le kerberos est bien configuré et que vous obtenez bien un TGT :

    Attention

    L’administrateur par défaut est administrator en anglais (taper le mot de passe du compte administrator, si ça ne renvoie rien ou que vous obtenez un message concernant l’expiration du mot de passe, c’est que c’est bon).

    kinit administrator
    klist
    

Configurer Samba comme contrôleur de domaine secondaire

  • Supprimer le fichier de configuration /etc/samba/smb.conf qui a été généré automatiquement lors de l’installation des paquets :

    rm -f /etc/samba/smb.conf
    
  • Joindre srvads2 comme membre du domaine :

    samba-tool domain join mydomain.lan DC -U administrator --realm=MYDOMAIN.LAN -W MYDOMAIN
    
  • Modifier le DNS pour qu’il pointe sur lui-même dans /etc/resolv.conf :

    nameserver 127.0.0.1
    
  • Rajouter un forwarder DNS au fichier smb.conf :

    [global]
       ...
       dns forwarder = 8.8.8.8
       ...
    
  • Activer le démarrage automatique du service AD :

    systemctl enable samba
    systemctl disable winbind nmb smb
    systemctl mask winbind nmb smb
    
  • Faire pointer votre Kerberos vers le bon fichier de configuration :

    Indication

    Par défaut le provisioning Samba-AD crée un fichier d’exemple krb5.conf dans le répertoire /var/lib/samba/private.

    Ce fichier est utilisé par défaut par certains appels Samba.

    Il est préférable de le remplacer par un lien symbolique vers /etc/kbr5.conf pour éviter certains effets de bord.

    rm /var/lib/samba/private/krb5.conf
    ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf
    
  • Relancer Samba :

    systemctl restart samba
    
  • Vérifier que les champs DNS sont bien créés :

    samba_dnsupdate --verbose
    
  • S’il subsiste des failed, utiliser cette méthode qui permet d’outre passer kerberos :

    samba_dnsupdate --use-samba-tool
    

Configurer le SYSVOL

  • Récupérer le contenu de \srvadssysvol de srvads1 et le copier sur srvads2 depuis un poste windows en tant qu’Administrateur du domaine. Sur srvads2, lancer la commande :

    rsync -aP root@srvads1:/var/lib/samba/sysvol/ /var/lib/samba/sysvol/
    
  • Ensuite vérifier les ACL sur le SYSVOL, et le cas échéant réinitialiser les ACLs :

    samba-tool ntacl sysvolreset
    samba-tool ntacl sysvolcheck
    

Indication

En attendant le développement d’un DFS-R officiellement supporté par la Samba-team, Tranquil IT propose l’utilitaire tis-sysvolsync pour synchroniser les partages SYSVOL entre des contrôleurs de domaine Samba.

Valider la nouvelle installation

  • Tester la connexion au DNS à partir de la console DNS Active Directory.

  • Tester la connexion à partir de la console Utilisateurs et Ordinateurs Active Directory.

  • Vérifier l’état des réplications :

    samba-tool drs showrepl
    

Configurer le NTP signé

Configurer le Bind-DLZ

Avant de passer en production, il faut remplacer le DNS interne Samba par le module Bind-DLZ. Pour cela suivre la documentation pour intégrer Samba avec Bind9.

Super, si vous êtes parvenu jusqu’à cette étape, c’est que tout s’est bien passé et que vous avez un nouveau contrôleur de domaine secondaire opérationnel.