Installer et configurer un Samba-AD secondaire sur 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 Debian 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
Les DEB de Tranquil IT sont actuellement validés pour Debian 11 & 12.
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.20/.
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.20/.
Pour plus de confort, vous pouvez définir un dépôt apt et rajouter notre clé publique GPG :
wget -qO- https://samba.tranquil.it/tissamba-pubkey.gpg | tee /usr/share/keyrings/tissamba.gpg > /dev/null
sha256sum /usr/share/keyrings/tissamba.gpg
bd0f7140edd098031fcb36106b24a6837b067f1c847f72cf262fa012f14ce2dd /usr/share/keyrings/tissamba.gpg
echo "deb [signed-by=/usr/share/keyrings/tissamba.gpg] https://samba.tranquil.it/debian/samba-4.20/ $(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-cryptography
unset DEBIAN_FRONTEND
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 disable winbind nmbd smbd systemctl mask winbind nmbd smbd systemctl unmask samba-ad-dc systemctl enable samba-ad-dc
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
Graphiquement, vous pouver récuperer les fichiers de
\srvads\sysvol
depuis srvads1 et les copier vers srvads2 depuis une machine Windows en tant qu’admin du domaine. Ou en ligne de commande, sur srvads2, faire :rsync -aP root@srvads1:/var/lib/samba/sysvol/ /var/lib/samba/sysvol/
Puis renitialiser les ACL du SYSVOL, et reverifier les ACLs (ça ne devrait rien retourner si c’est OK) :
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 NTP en suivant la documentation de configuration du service NTP avec Samba.
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.