Onglet Active Directory
À partir de la version 2.6.1 d'EOLE, le module Seth utilise la version 4.5 de Samba.
Cette version de samba permet notamment la prise en compte de plusieurs DNS Forwarders[2] :
Ainsi, la liste complète des serveurs DNS renseignés dans l'interface de configuration du module est prise en compte (et plus seulement le premier de la liste).
Nom du serveur dans le domaine AD
ComplémentCaractères autorisés et non autorisés
Les noms d'ordinateur au format NetBIOS[4] peuvent contenir tous les caractères alphanumériques à l'exception des caractères étendus suivants :
- la barre oblique inverse (\) ;
- marque de barre oblique (/) ;
- signe deux-points (:) ;
- astérisque (*) ;
- point d'interrogation (?) ;
- guillemet (") ;
- inférieur à (<) signe ;
- signe supérieur à (>) ;
- barre verticale (|).
Attention, les noms peuvent contenir un point, mais ne peuvent pas commencer par un point.
Pour en savoir plus sur les conventions de nommage dans un domaine, vous pouvez consulter la page :
Rôle du serveur Active Directory
Cette variable permet de choisir le Rôle du serveur :
- contrôleur de domaine ;
- serveur membre d'un domaine existant.
Dans le cas où le serveur à mettre en place a le rôle de contrôleur de domaine, il faut définir si celui-ci est le contrôleur de domaine principal ou si il s'agit d'un contrôleur additionnel.
Imposer le SID du domaine AD à son initialisation
Forcer le SID s'effectue en deux temps :
- en passant la variable
Imposer le SID du domaine AD à son initialisation
àoui
; - en renseignant la variable
SID du domaine AD
.
Après sauvegarde et instance, ces deux variables sont verrouillées et ne peuvent plus être modifiées.
Attention
La prise en compte du SID forcé est réalisée lors de l'initialisation de l'annuaire Active Directory.
Cette variable n'a plus d'utilité une fois le module instancié.
Attention
Le SID n’est pas validé au moment de la saisie. Il est nécessaire de s’assurer qu’il est correct avant de sauvegarder.
Contrôleur de domaine en lecture seule
Forcer le positionnement dans un site AD à l'initialisation
À partir de la version 2.6.2, il est possible de demander à ce qu'un contrôleur de domaine additionnel soit rattaché à un site Active Directory particulier.
Cette demande s'effectue en deux temps :
- en passant la variable
Forcer le positionnement de ce contrôleur de domaine dans un site existant
à
oui
; - en renseignant la variable
Site de destination de ce contrôleur de domaine
.
Après sauvegarde et instance, ces deux variables sont verrouillées et ne peuvent plus être modifiées.
Attention
La prise en compte du domaine de rattachement est réalisée lors de l'initialisation de l'annuaire Active Directory.
Cette variable n'a plus d'utilité une fois le module instancié.
Attention
Le site doit impérativement avoir été déclaré au préalable sur le contrôleur de domaine principal.
Truc & astuce
Si le contrôleur de domaine principal est un module Seth, la déclaration d'un site s'effectue facilement grâce à la fonction bash samba_update_site
:
. /usr/lib/eole/samba4.sh
samba_update_site monsite 10.1.1.0/24
Méthode de calcul des uid-gid
Dans le cas d'un serveur membre d'un domaine existant, il est possible de personnaliser la méthode de calcul des UID / GID (IDMAP[6]) en passant la variable Utiliser la méthode par défaut de calcul des uid-gid
à non
.
Plusieurs domaines cibles avec des limites haute et basse d'adresse IP et des méthodes de calcul différentes (rid, autorid, ad, ldpa, tdb, nss) peuvent être déclarés.
Remarque
Depuis la version 4.4.6 de Samba, la personnalisation du calcul des identifiants pose problème sur un contrôleur de domaine.
Mise en œuvre du service DNS
Choix du composant
Le choix du composant à utiliser s'effectue à l'aide de la variable : Utiliser le service DNS interne de Samba
.
À partir d'EOLE 2.7.1, Bind9 est utilisé par défaut (choix non
).
Il est possible de forcer l'utilisation du composant interne de Samba en passant la variable à oui
.
La commande reconfigure
permet de passer d'un composant à l'autre de façon transparente.
Le comportement des deux services est similaire. L’utilisation de Bind9 ne change pas la manière d’ajouter les machines à la base de données DNS de Samba qui en garde la gestion. Bind9 interroge cette base via un greffon.
Attention
Dans une infrastructure mettant en œuvre plusieurs contrôleurs de domaine et la synchronisation des données de l’AD, il est impératif de mettre en œuvre le même type de service DNS pour tous les contrôleurs de domaine.
Dans le cas contraire, la réplication avec la commande samba-tool drs provoquera une erreur.
Transfert de zone
Dans le cas où le service DNS est délégué à Bind, il est possible de restreindre les machines autorisées à demander un transfert de zone[9] auprès du serveur DNS.
Attention
Le paramètre dns zone transfer clients
est issu d'une contribution qui n'était pas intégrée nativement dans Samba :
https://gitlab.com/samba-team/samba/-/merge_requests/169.
La contribution a finalement été intégrée dans Samba 4.15 sous la forme de deux nouveaux paramètres :
dns zone transfer clients allow
dns zone transfer clients deny
Empreintes de mot de passe supplémentaires
A partir de la version samba 4.7, il est possible de générer des Hash de mot de passe supplémentaires qui seront stockés dans l'attribut Active Directory : SupplementalCredentials
.
L'interface permet d'activer la génération d'empreintes aux formats CryptSHA256
et CryptSHA512
.
Pour chaque format sélectionné, il faut préciser le nombre d'itérations à utiliser.
Remarque
Après activation, les empreintes supplémentaires ne seront générées qu'à partir du prochain changement de mot de passe.
Remarque
Ces variables agissent sur le paramètre Samba : password hash userPassword schemes
.
Attention
Sur Seth >= 2.8.0, ces deux paramètres semblent dysfonctionnels et sont susceptibles d'empêcher l'instanciation du module.
Environnement réseau
Adresse des contrôleurs du même domaine
Si plusieurs contrôleurs de domaine doivent être mis en place, il est impératif qu'ils se connaissent les uns les autres.
La variable Adresse IP des contrôleurs de domaine en relation avec ce contrôleur de domaine Active Directory
permet de déclarer les adresses IP des autres contrôleurs du domaine.
Pour chacun des contrôleurs déclarés, il est possible de préciser si il a le rôle de serveur KDC[10] et/ou DNS[7].
Contrôleur de référence pour le volume SYSVOL
Dans le cas de la mise en œuvre d'un contrôleur de domaine additionnel, il est recommandé de déclarer le contrôleur de domaine principal en tant référence pour le volume SYSVOL.
Remarque
Dans le monde Microsoft, les contrôleurs de domaine sont habituellement tous au même niveau. Ceci est possible grâce à la réplication de l'annuaire Active Directory et à l'utilisation d'un système de fichiers distribué (DFS[11]).
À l'heure actuelle, la réplication du partage SYSVOL[12] n'est pas supportée par Samba. De ce fait, la mise en œuvre d'une architecture multi-DC[13] avec le module Seth nécessite de définir un contrôleur de domaine principal qui héberge les fichiers SYSVOL de référence et des contrôleurs de domaine additionnels sur lesquels ces fichiers sont synchronisés à intervalle régulier via rsync[14].
Résolutions DNS Inversées
À partir d'EOLE 2.7.2, la variable Créer les zones de résolutions DNS Inversées
, permet de déclarer des zones de recherche inverse (PTR[15]).
La variable Créer les zones de résolutions DNS Inversées d'après la configuration réseau
permet de créer automatiquement la zone associée au réseau local déclaré dans l'onglet Interface-0
.
La variable Liste des zones à créer
permet de déclarer des zones supplémentaires. Cela est nécessaire si les clients sont situés sur un réseau différent de celui du serveur.
AttentionFormat de saisie
Pour déclarer une zone, il faut saisir les 3 premiers octets IP du sous-réseau dans l'ordre inverse.
Exemple, pour déclarer le réseau 192.168.0.0/24
, il faudra saisir : 0.168.192
.
Type du contrôleur de référence
En mode expert, toujours dans le cas de la mise en œuvre d'un contrôleur de domaine additionnel, il est possible de préciser le type du serveur de référence.
Cette variable est particulièrement utile dans le cas où le contrôleur de domaine de référence n'est pas un module Seth.
#FIXME
Restrictions d'accès réseau
Le bon fonctionnement d’une infrastructure basée sur un serveur Active Directory nécessite un certain nombre d’interactions avec d’autres serveurs et les postes clients.
Les ports suivants sont concernés par ces interactions :
53 (DNS)
5353 (broadcast DNS)
123 (NTP)
88 (Kerberos)
445 (SMB CIFS)
135 (MSRPC)
3268 (Global Catalog)
3269 (Global Catalog)
464 (kpasswd)
389 (ldap)
636 (ldaps)
Les ports suivants peuvent être ouverts si nécessaire mais concernent un protocole obsolète :
137 (NetBIOS)
138 (NetBIOS)
139 (NetBIOS)
Sur un module Seth, l'accès aux services Samba et LDAP est ouvert à toutes les sources par défaut.
En mode expert, il est possible de restreindre l'accès réseau sur les services Samba et LDAP à des sources spécifiques.
Personnalisation des ports
Ports NetBIOS
En mode expert, il est possible d'autoriser ou non l'accès au serveur via les ports NetBIOS.
Remarque
Personnalisation des ports RPC
Remarque
Ces variables agissent sur le paramètre Samba : rpc server port
.
Si ils ne sont pas configurés explicitement, le comportement antérieur, à savoir l'utilisation du premier port libre dans la plage 1024-5000, est conservé.
Partage de fichiers
Attributs étendus
Samba permet d’utiliser le module acl_xattr
pour stocker les règles d’accès au contenu des partages sous la forme d’attributs étendus compatibles avec le système de fichiers du serveur.
Cette fonctionnalité permet d'utiliser des utilitaires du système pour gérer les règles d'accès aux fichiers et dossiers.
Il est possible de désactiver ce type de stockage dans le cas très particulier où les attributs étendus posent des problèmes pour la gestion des droits.
Cependant, son utilisation reste vivement recommandée sur les serveurs de fichiers :
Activation du module de prise en charge des corbeilles
Par défaut lorsque l'on supprime un fichier depuis un partage Samba, il est directement supprimé.
L'option Charger le module recycle pour la prise en charge des corbeilles
paramètre Samba afin que les fichiers supprimés soient déplacés dans un répertoire tampon avant la suppression définitive.
Le nom proposé par défaut, .corbeille
, définit un répertoire qui sera masqué pour les utilisateurs.
Il est possible de rendre ce répertoire accessible en supprimant le . dans le nom du répertoire.
La durée de conservation des fichiers supprimés est paramétrable.
Remarque
Les fichiers déplacés dans la corbeille sont inclus dans le calcul de l'espace disque occupé par l'utilisateur. Pour limiter les dépassements de quota disque, il est conseillé de paramétrer une durée de conservation assez courte.
Attention
L'activation du module Samba recycle, n'active pas automatiquement la corbeille sur les répertoires partagés.
Pour activer la corbeille sur les répertoires personnels des utilisateurs, il faut passer la variable Activer la corbeille pour le partage "homes"
à oui
.
Il est également possible de l'activer sur les répertoires partagés, mais cela s'effectue au cas par cas.
Partages utilisateur
Les partages utilisateur et les autres répertoires partagés peuvent être locaux et/ou hébergés sur d'autres serveurs Active Directory.
Sur le serveur local, il est possible d'activer ou non l'hébergement des partages « homes » et « profiles » des utilisateurs.
Dans le cas où l'on ne souhaite pas héberger ces répertoires localement, il est possible d'indiquer le nom d'hôte d'une machine du domaine (un serveur membre par exemple) sur lesquels ils seront stockés.
En mode expert, si les partages et/ou les profils sont gérés localement, il est possible de personnaliser le répertoire dans lequel ils seront stockés sur le serveur.
Si le module recycle
est activé, il est également possible d'activer la corbeille Samba pour les répertoires personnels des utilisateurs
Répertoires partagés
Passer la variable Configurer des répertoires partagés
à oui
permet de déclarer un ou plusieurs partages additionnels. Pour ajouter un ou plusieurs partages il faut cliquer sur le bouton + Nom du répertoire partagé
.
Les options à renseigner pour chaque partage supplémentaire sont :
- le
Nom du répertoire partagé
; - le
Chemin du partage
: le chemin Unix du répertoire à partager ; - la
Description du partage
; Le partage peut être écrit
: le partage peut être défini en lecture/écriture ou en lecture seule (optionwriteable
) ;Le partage peut être parcouru
: le partage est visible dans le voisinage réseau ou non (optionbrowseable
) ;- le
Masque de permissions pour les fichiers
(optionnel) : masque par défaut des fichiers créés (optioncreate mask
) ; - le
Masque de permissions pour les répertoires
(optionnel) : masque par défaut des répertoires créés (optiondirectory mask
) ; - la possibilité d'
Activer la corbeille pour le partage
(proposé uniquement si le modulerecycle
est activé).
Remarque
Les répertoires déclarés sont pris en compte et créés sur le disque lors de l'instanciation ou la reconfiguration du module.
Truc & astucePartages manuels
Le fichier de configuration /etc/samba/smb.conf
est re-généré à chaque reconfiguration du serveur (commande reconfigure
).
Il est possible de déclarer des partages supplémentaires manuellement en plaçant un fichier (possédant l'extension .conf
) décrivant le partage dans le répertoire /etc/samba/conf.d/
.
Sa prise en compte nécessite un reconfigure
.
Options de journalisation
Depuis la version samba 4.9 la journalisation des événements est beaucoup plus complète.
Deux catégories d’événements peuvent produire des entrées dans le journal :
les événements des sous-services de Samba  ;
les événements de Samba VFS.
Événements des sous-services de Samba (log level)
Pour la journalisation des événements des sous-services Samba, il est possible de paramétrer le niveau globalement mais également d'en spécifier un propre pour un ou plusieurs événements samba.
La liste des événements est fixe.
Attention
Le nom des variables EOLE associées aux catégories d'événements à journaliser contient des mots clés qui sont susceptibles d'être détectés par les bloqueurs de publicité des navigateurs.
En cas d'erreur lors de l'édition de ces variables, vérifier que les bloqueurs sont bien désactivés pour ce formulaire.
Remarque
Ces variables agissent sur le paramètre Samba : log level
.
Truc & astuce
Pour une modification temporaire du niveau de journalisation, il est préférable d'utiliser la commande smbcontrol
:
root@dc1:~# smbcontrol smbd debuglevel
PID 860: all:0 tdb:0 printdrivers:0 lanman:0 smb:0 rpc_parse:0 rpc_srv:0 rpc_cli:0 passdb:0 sam:0 auth:0 winbind:0 vfs:0 idmap:0 quota:0 acls:0 locking:0 msdfs:0 dmapi:0 registry:0 scavenger:0 dns:0 ldb:0 tevent:0 auth_audit:0 auth_json_audit:0 kerberos:0 drs_repl:0 smb2:0 smb2_credits:0 dsdb_audit:0 dsdb_json_audit:0 dsdb_password_audit:0 dsdb_password_json_audit:0 dsdb_transaction_audit:0 dsdb_transaction_json_audit:0 dsdb_group_audit:0 dsdb_group_json_audit:0
root@dc1:~# smbcontrol smbd debug "3 kerberos:4"
root@dc1:~# smbcontrol smbd debuglevel
PID 860: all:3 tdb:3 printdrivers:3 lanman:3 smb:3 rpc_parse:3 rpc_srv:3 rpc_cli:3 passdb:3 sam:3 auth:3 winbind:3 vfs:3 idmap:3 quota:3 acls:3 locking:3 msdfs:3 dmapi:3 registry:3 scavenger:3 dns:3 ldb:3 tevent:3 auth_audit:3 auth_json_audit:3 kerberos:4 drs_repl:3 smb2:3 smb2_credits:3 dsdb_audit:3 dsdb_json_audit:3 dsdb_password_audit:3 dsdb_password_json_audit:3 dsdb_transaction_audit:3 dsdb_transaction_json_audit:3 dsdb_group_audit:3 dsdb_group_json_audit:3
Événements de Samba VFS (full_audit)
La journalisation des opérations Samba VFS ne présente pas la même granularité.
La variable Journaliser les opérations de Samba VFS
, une fois passée à oui
, permet d’afficher les variables de configuration de ces journaux.
Le système de journalisation utilise les concepts de priorité et de catégorie du programme syslog pour définir le niveau de journalisation et une étiquette permettant le filtrage, réciproquement. Les variables Priorité syslog des entrées du journal
et Catégorie syslog (facility) des entrées du journal
permettent de personnaliser ces valeurs.
La structure des entrées des journaux est la suivante : PREFIX|OPERATION|RESULT|FILE.
La variable Préfixe des entrées du journal
permet de personnaliser la première partie de ces entrées. Le préfixe peut être construit en utilisant les variables propres à Samba. Ces variables sont décrites dans la page de manuel smb.conf(5). Le préfixe par défaut %T|%u|%h|%U|%I
est donc remplacé par la date et l’heure courante, le nom d’utilisateur du service courant si disponible, le nom de l’hôte sur lequel Samba s’exécute, le nom d’utilisateur pour la session et l’adresse IP de la machine cliente.
Le résultat d’une opération peut être la réussite ou l’échec. Ces deux cas sont traités à part pour la journalisation. Les variables Opérations dont le succès est à journaliser
et Opérations dont l’échec est à journaliser
permettent de lister pour quelles opérations on veut garder la trace, selon le résultat. Lorsque une liste est laissée vide, la valeur par défaut, none, est appliquée dans la configuration. Lorsque les deux listes sont laissées vides, la configuration résultante est équivalente à celle générée si la variable Journaliser les opérations de Samba VFS
est à non
.
Les listes des valeurs valides pour la priorité, la catégorie et les opérations sont fixes.
Remarque
Sur le module Scribe, la partie membre du domaine journalise les connexions qui ont réussies.
Options avancées
À partir d'EOLE 2.7.1, il est possible de modifier le format de la base de données interne à Samba et de désactiver le chiffrement des mots de passe qui est appliqué par défaut à partir de la version 4.8 de Samba.
Ces deux paramètres doivent être choisis avant la première instance du module, ils ne sont plus modifiables par la suite.
Format de la base de données interne à Samba
Chiffrement des mots de passe
Les attributs sensibles doivent être chiffrés. Certains outils externes (synchronisation) nécessitent des mots de passe en clair, d'où la possibilité de désactiver ce chiffrement.
Nombre maximum de clients winbind
Nom de variable : ad_winbind_max_clients
Nombre maximum de clients acceptés par le serveur winbind. Une fois cette limite atteinte le serveur commence à fermer les connexions des clients en attente. cette variable définit la valeur de l'option de configuration samba winbind max clients. Sa valeur par défaut est de 400 mais pour une annuaire centralisé il est préférable de définir une valeur plus importante comme 3000 par exemple en fonction de la taille et des besoins de la structure.
Délai d’exécution des requêtes winbind en secondes
Nom de variable : ad_winbind_request_timeout
Délai d'attente en secondes avant l'arrêt d'une requête winbind. Si la requête n’aboutit pas après ce délai, elle est considérée comme échouée. Cette variable définit la valeur de l'option de configuration samba winbind request timeout. La valeur par défaut est de 30 secondes.
Remarque
La clé de chiffrement est enregistrée dans le fichier /var/lib/samba/private/encrypted_secrets.key
. Elle ne doit jamais être révélée.
Utilisateurs
Lier les utilisateurs AD directement dans la base des utilisateurs systèmes.
La variable Proposer les utilisateurs/groupes via la commande getent
(ad_enum_users_groups) est une variable en mode expert qui permet de lister les utilisateurs AD directement dans la base des utilisateurs systèmes.
En passant la variable à oui
, si on exécute la commande getent passwd
on peut voir les utilisateurs systèmes mais également les utilisateurs de l'AD.
Si cette variable est à non
, il sera toujours possible d'avoir les informations de l'utilisateur (getent passwd nom_utilisateur
) mais ce dernier n’apparaîtra plus dans la liste complète des utilisateurs (getent passwd
). Techniquement, il sera toujours possible de placer des ACL sur des fichiers ou d'un appliquer un quota disque pour un utilisateur spécifique.
Cette liste est appelée à différents moments de la vie du système. Lister tous les utilisateurs de l'AD étant potentiellement très long, cela implique des ralentissements conséquents sur le système.
Remarque
Cette variable est actuellement à oui
sur les modules AmonEcole et Scribe ainsi que sur le module Seth en mode membre.
Elle est, par contre à non
sur un module Seth configuré en tant que contrôleur de domaine.
Archivage et sauvegarde des données
Un problème de corruption de la base Active Directory peut nécessiter de restaurer une sauvegarde sur le contrôleur de domaine principal et de relancer la synchronisation de tous les autres contrôleurs.
Attention
Il est primordial de disposer d'une archive ou d'une sauvegarde récente des données du serveur Active Directory.
Archivage local
La variable Archiver les données du DC
permet d'activer l'exécution quotidienne d'un script d'archivage local et de choisir la destination de stockage de l'archive.
Les données du serveur Active Directory sont ainsi régulièrement sauvegardée (par défaut 1 fois par jour) dans le répertoire spécifié dans Destination de la sauvegarde
.
Remarque
Le script utilisé pour l'archivage des données est inspiré d'un script mis à disposition par les développeurs du logiciel Samba : https://wiki.samba.org/index.php/Back_up_and_Restoring_a_Samba_AD_DC.
En mode expert, il est possible de spécifier la périodicité et la durée de rétention[19] de la sauvegarde locale.
Sauvegarde locale ou distante
Il est possible de mettre œuvre un système de sauvegarde complet en installant le logiciel Bareos[20] sur le serveur.
La mise en place de cet outil s'effectue manuellement à l'aide de la commande suivante :
# apt-eole install eole-bareos
Après installation des paquets, la configuration du service de sauvegarde s'effectue dans l'interface de configuration du module à plusieurs endroits.
L'archivage du DC soit activé dans l'onglet : Archiver les données du DC
doit être à oui
.
Par défaut la sauvegarde Bareos est activée (Activer la sauvegarde du serveur
à oui
dans l'onglet Services
) et la tâche de sauvegarde des données du serveur Active Directory est prise en compte (Sauvegarder les archives avec Bareos
à oui
dans l'onglet Active Directory
).
Dans cette configuration, les éléments suivants sont directement sauvegardés par Bareos avec le support des ACL :
L'export des bases TDB est quant à lui géré par eole-schedule[21] avant l'exécution des sauvegardes.
Lorsque la sauvegarde des archives avec Bareos est activée la durée de rétention configurable en mode expert ne concerne que le script d'export des bases TDB de Samba.
La configuration à proprement parler des sauvegardes (distante, locale, durée de rétention, taux de compression…) s'effectue dans les onglets Directeur bareos
et Stockage bareos
.