Installing and configuring a secondary Samba-AD on Debian

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.

Préparer la machine virtuelle

  • Sur une base Debian10 64 bits, préparer la configuration réseau de la machine en suivant la même documentation que celle pour un nouveau contrôleur de domaine.

  • Pour le fichier /etc/hosts, le modifier pour qu’il contienne la résolution DNS du FQDN de la machine sur son IP (i.e. pas la ligne localohst 127.0.0.1), en précisant bien le nom long puis le nom court :

127.0.0.1      localhost
192.168.1.12   srvads2.mydomain.lan srvads2

Récupérer les paquets nécessaires

Tranquil IT’s DEBs are currently validated for Debian 10 & 11.

Les paquets de la dernière version validés par l’équipe d’ingénieurs Tranquil IT peuvent être téléchargés depuis l’url https://samba.tranquil.it/debian/samba-4.14/.

Quand il faudra migrer vers la version suivante de Samba, il suffira de changer l’url du dépôt comme par exemple https://samba.tranquil.it/debian/samba-4.14/.

Pour plus de confort, vous pouvez définir un dépôt apt et rajouter notre clé publique GPG :

wget -O tissamba-pubkey.gpg  http://samba.tranquil.it/tissamba-pubkey.gpg
sha256sum tissamba-pubkey.gpg
   bd0f7140edd098031fcb36106b24a6837b067f1c847f72cf262fa012f14ce2dd  tissamba-pubkey.gpg
apt-key add tissamba-pubkey.gpg
echo "deb https://samba.tranquil.it/debian/samba-4.14/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/tissamba.list

Installer les paquets

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install samba winbind libnss-winbind krb5-user smbclient ldb-tools python3-crypto
unset DEBIAN_FRONTEND

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 le contrôleur de domain comme membre du domaine. Remplacer les valeurs mydomain.lan, MYDOMAIN.LAN et MYDOMAIN avec les valeurs de votre 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 /etc/samba/smb.conf :

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

    systemctl unmask samba-ad-dc
    systemctl enable samba-ad-dc
    systemctl disable winbind nmbd smbd
    systemctl mask winbind nmbd smbd
    
  • 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 certanins effets de bord.

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

    pkill -9 smbd
    pkill -9 nmbd
    pkill -9 winbindd
    systemctl restart samba-ad-dc
    
  • Vérifier que les champs DNS sont bien créés :

    samba_dnsupdate --verbose --use-samba-tool
    

Configurer le SYSVOL

  • Récupérer le contenu de \srvads\sysvol et le copier sur le nouveau serveur AD depuis un poste windows en tant qu’Administrateur du domaine. Sur le contrôleur de domaine secondaire, 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’outil tis-sysvolsync pour synchroniser les partages SYSVOL entre des contrôleurs de domaine Samba.

Valider la nouvelle installation

  • Vérifier l’état des réplications avec la commande samba-tool drs showrepl. Les réplications peuvent mettre quelques minutes à se mettre en place. Une fois que les réplications sont correctes (5 réplications Inbound et 5 réplications Outbound, vous pouvez passer aux vérifications suivantes.

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

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

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 se passe bien et que vous avez un nouveau contrôleur de domaine secondaire opérationnel.