Synchroniser les SYSVOL entre plusieurs contrôleurs de domaine

Note

Le répertoire SYSVOL est un répertoire spécial sur un contrôleur de domaine Active Directory qui sert à stocker les scripts netlogon et les définitions des GPO.

Aujourd’hui, il n’existe pas de support officiel pour un mécanisme DFS-R dans Samba qui se base sur les spécifications Microsoft.

Les développements pour parvenir à obtenir la fonctionnalité sont identifiés et chiffrés. Si vous êtes intéressé pour financer la fonctionnalités, contactez-nous.

Tranquil IT a développé une méthode qui obtient le même résultat que DFS-R pour synchroniser le SYSVOL entre serveurs Samba-AD d’un même domaine.

SysvolSync est une solution pour synchroniser le répertoire SYSVOL entre deux contrôleurs de domaine Samba Active Directory. Elle n’est pas compatible avec DFS-R.

La méthode présentée ci-après a été testée avec Debian10 / RedHat8 et dérivées.

Présentation de l’utilitaire SysvolSync

Note

SysvolSync est basé sur Syncthing, un outil de synchronisation très efficace. Syncthing peut envoyer des notifications sur une url http. SysvolSync reçoit et traite ces notifications en déclenchant un samba-tool ntacl sysvolreset.

Cette méthode n’a pas pour objectif d’être efficiente car elle réinitialise les ACLs sur tout l’arbre SYSVOL. Des améliorations de performance sont à l’étude.

Licence Copyright : Tranquil IT Systems, GPL v3.0.

Le code est téléchargeable sur l”espace Github de Tranquil IT.

Packager l’utilitaire SysvolSync

Créer le paquet SysvolSync

# for 64-bit Debian10

sudo apt-get install git python-requests python-lxml python-ldap
git clone  https://github.com/tranquilit/tis-sysvolsync
cd tis-sysvolsync/deb
sh createdeb.sh
ls tis-sysvolsync-*.deb

# for 64-bit RedHat8 and derived distributions

yum install rpm-build git python-requests python-lxml python-ldap
git clone  https://github.com/tranquilit/tis-sysvolsync
cd tis-sysvolsync/rpm
sh build.sh
ls *.rpm

Installer SysvolSync

Indication

Pensez à installer le paquet tis-sysvolsync sur tous vos contrôleurs de domaine avant de poursuivre la configuration car Syncthing se connecte aux autres DC pour échanger des clés de chiffrement.

# for 64-bit Debian10

apt-get install python-requests python-lxml python-ldap procps ldb-tools
dpkg -i tis-sysvolsync-*.deb
systemctl restart tis-sysvolsync
systemctl restart tis-sysvolacl

# for 64-bit RedHat8 and derived distributions

yum install tis-sysvolsync-*.el7.redhat.x86_64.rpm
systemctl enable tis-sysvolsync
systemctl enable tis-sysvolacl
systemctl restart tis-sysvolsync
systemctl restart tis-sysvolacl

Configurer l’utilitaire SysvolSync

Une fois SysvolSync déployé sur l’ensemble des contrôleurs du domaine, vous pouvez procéder à la configuration.

La configuration vous demandera une authentification par SSH pour échanger les clés de chiffrement :

/opt/tis-sysvolsync/sysvolsync.py configure

Note

La topologie de réplication pour SysvolSync se base sur celle définie par les objets ntdsconnection du KCC.

Donc si vous avez une topologie de réplication en étoile, alors SysvolSync aura une topologie de réplication en étoile.