Transformer un module Scribe en module ScribeAD
L'ajout du paquet scribe-ad
permet de transformer un module Scribe existant en contrôleur de domaine Active Directory[1] tout en conservant toutes les fonctionnalités du module Scribe : la gestion des utilisateurs et des groupes, EAD, applications web…
Grâce à LXC[2] tous les services seront installés sur une seule machine mais séparés grâce à l'usage de conteneurs.
Un conteneur est une zone isolée à l'intérieur du système et qui a un espace spécifique du système de fichiers, un réseau, des processus, des allocations mémoires et processeurs. Cette technique permet de faire fonctionner de multiples environnements GNU/Linux isolés les uns des autres sur un seul et même système hôte.
Contrairement à d'autres techniques de virtualisation, il n'y qu'une seule instance du noyau présente pour l'ensemble des conteneurs et du maître.
LXC limite le nombre de serveurs nécessaires, tout en continuant à séparer les environnements et en conservant un haut degré de sécurité.
Remarque
Attention
La transformation du module Scribe en module ScribeAD est irréversible.
Attention
Le client Scribe n'est actuellement pas compatible avec le contrôleur de domaine Active Directory.
Pré-requis
Il faut disposer d'un serveur Scribe fonctionnel ou partir d'une nouvelle installation du module Scribe, la procédure est la même.
Sur un serveur existant, il faut procéder à une ré-instanciation du serveur tandis que pour une nouvelle installation, il faut installer le paquet et effectuer l'instanciation.
Installation
L'installation du paquet scribe-ad
sur un module Scribe à jour active automatiquement la fonctionnalité AD :
# Maj-Auto
# apt-eole install scribe-ad
Configuration du module Scribe devenu ScribeAD
Adresse du service Active Directory
Par rapport à un module standard, une seule nouvelle variable est à renseigner pour ajouter la fonctionnalité Active Directory :
La valeur à saisir est une adresse IP disponible sur le réseau, elle permet d'exposer le service Active Directory.
Choix du nom de domaine et configuration DNS
Attention
La mise en place d'un service Active Directory dans une infrastructure impose des contraintes fortes en terme de configuration DNS.
Si le domaine Active Directory est une sous-zone d'un domaine géré par un serveur DNS externe (le module Amon, par exemple), ce dernier doit lui déléguer la gestion de cette sous-zone.
Remarque
Une fois instancié, le serveur d'origine utilise en tant que serveur DNS le serveur Active Directory qu’il héberge tandis que ce dernier se sert du premier DNS déclaré dans la variable Adresse IP du serveur DNS
comme DNS de forward[7].
Remarque
Le nom du serveur Active Directory qui est également celui du conteneur LXC est addc
. Cette valeur n'est pas modifiable.
Instanciation
Une fois configuré, il faut instancier ou ré-instancier le serveur à l'aide de la commande instance
.
Génération du conteneur addc
Lors de la première instance, le conteneur LXC, nommé addc
est généré puis configuré. Cette opération dure plusieurs minutes.
run-parts: executing /usr/share/eole/preservice/05-eolead instance
Génération du conteneur addc
Checking cache download in /var/cache/lxc/xenial/rootfs-amd64 ...
Installing packages in template: apt-transport-https,ssh,vim,language-pack-en,language-pack-fr
Downloading ubuntu xenial minimal ...
I: Retrieving InRelease
I: Checking Release signature
I: Valid Release signature (key id 790BC7277767219C42C86F933B4FE6ACC0B21F32)
I: Retrieving Packages
I: Validating Packages
[...]
Une fois le conteneur fonctionnel, l'initialisation du contrôleur de domaine débute.
Deux utilisateurs Active Directory sont créés, il faut leur attribuer un mot de passe :
Administrator
: compte avec tous les pouvoirs (administrateur du domaine AD) à privilégier pour toutes les opérations d'administration du serveur :
Initialisation DC
Generation de la clef SSH pour les echanges entre DC
Création du mot de passe "Administrator" Active Directory :
Confirmation du mot de passe :
admin
: compte d'administration à privilégier pour la jonction des clients au domaine et les opérations courantes.
Creation utilisateur 'admin'
Création du mot de passe "admin" Active Directory :
Confirmation du mot de passe :
Attention
Le mot de passe de l'utilisateur admin de l'Active Directory est écrasé par celui de l'utilisateur admin de l'annuaire Scribe lorsque ce dernier est modifié ou que la synchronisation des mots de passe est forcée.
Intégration au domaine et synchronisation de l'annuaire
Dans l'infrastructure ScribeAD, le serveur Samba[8] du module Scribe initial devient membre du nouveau domaine Active Directory.
Cette modification n'est pas entièrement automatisée, il est nécessaire de saisir à nouveau le mot de passe du compte Administrator
créé précédemment.
run-parts: executing /usr/share/eole/posttemplate/05-eolead instance
Intégration au domaine Active Directory
Mot de passe de l'utilisateur Administrator pour le domaine ETB1.LAN :
Using short domain name -- ETB1
Joined 'SCRIBE' to dns domain 'etb1.lan'
Mise à jour du mot de passe dans les fichiers de configuration
Synchronisation ldap
[...]
Une fois cette opération réalisée, la synchronisation initiale entre l'annuaire OpenLDAP du module Scribe et l'annuaire Active Directory est exécutée.
Celle-ci est plus ou moins longue et verbeuse selon que l'annuaire du module Scribe est déjà peuplé ou non.
La synchronisation des annuaires via LSC ne permet pas la synchronisation des mots de passe.
Celle-ci fait l'objet d'une procédure dédiée qui peut être exécutée à l'instance :
run-parts: executing /usr/share/eole/posttemplate/05-eolead-pwd instance
Voulez-vous (re)synchroniser les mots de passe des utilisateurs ? [oui/non]
[oui] :
Synchronisation en cours (1 mots de passe)...
Si l'annuaire contient beaucoup de comptes, cette opération peut durer plusieurs minutes.
Remarque
Dans le cadre d'une nouvelle installation, seul le mot de passe du compte admin
est synchronisé.
Trucs & astuces
La commande diagnose permet de connaître l'état du service :
*** Serveur de fichiers
Test du fichier de configuration :
. Syntaxe => Ok
Partages :
. Partage (SMB/TCP) => Ok
. Partage (NMB/UDP) => Ok
. Connexions samba => 0
. Ticket kerberos => Ok
. Synchronisation LSC => Ok
Synchronisation
Forcer la synchronisation manuelle des comptes depuis le maître :
# /usr/bin/lsc -f /etc/lsc -s all -c all -t 1
Changement de mot de passe
Forcer le changement de mot de passe d'un utilisateur (exemple avec l'utilisateur admin
) depuis le maître :
# changepasswordeole.pl admin Eole123$
Si la commande échoue avec le message suivant, vérifier que le mot de passe proposé respecte la politique de sécurité mise en place sur le serveur AD :
Unable to modify unicodePwd for CN=user11,CN=Users,DC=domaine,DC=lan (0000052D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0)
Relancer le service samba-ad-dc
Le service samba-ad-dc est dans le conteneur addc, pour relancer le service :
# ssh addc "service samba-ad-dc restart"
Liste d'utilisateurs
Lister tous les utilisateurs depuis le maître :
# ssh addc "ldbsearch -H /var/lib/samba/private/sam.ldb -S '(objectclass=user)' cn | grep ^cn:"
Attributs utilisateur
Chercher un utilisateur depuis le maître :
# ssh addc "ldbsearch -H /var/lib/samba/private/sam.ldb -S cn=p.nom"
Journaux
Les journaux de l'outil LSC sont disponibles dans :
-
/var/log/lsc/
pour les synchronisations manuelles ; -
/var/log/rsyslog/local/lsc/
pour les opérations réalisées par le démon.
Les journaux du service Active Directory sont disponibles sur le maître dans le répertoire /var/log/samba-ad-dc/
.