24 Exportation des données Ceph via Samba #
Ce chapitre décrit comment exporter des données stockées dans une grappe Ceph via un partage Samba/CIFS afin que vous puissiez facilement y accéder à partir des machines clientes Windows*. Il comprend également des informations qui vous aideront à configurer une passerelle Ceph Samba pour joindre Active Directory dans le domaine Windows* afin d'authentifier et d'autoriser les utilisateurs.
En raison du overhead accru du protocole et de la latence supplémentaire causée par des sauts de réseau additionnels entre le client et le stockage, l'accès à CephFS via la passerelle Samba peut réduire considérablement les performances de l'application par rapport aux clients Ceph natifs.
24.1 Exportation de CephFS via un partage Samba #
Les clients CephFS et NFS natifs ne sont pas limités par les verrouillages de fichiers obtenus via Samba, et inversement. Les applications qui s'appuient sur le verrouillage de fichiers interprotocole peuvent présenter des altérations des données si les chemins de partage Samba soutenus par CephFS sont accessibles par d'autres moyens.
24.1.1 Configuration et exportation de paquetages Samba #
Pour configurer et exporter un partage Samba, les paquetages suivants doivent être installés : samba-ceph et samba-winbind. Si ces paquetages ne sont pas installés, installez-les :
cephuser@smb >
zypper install samba-ceph samba-winbind
24.1.2 Exemple de passerelle unique #
Pour préparer l'exportation d'un partage Samba, choisissez un noeud approprié afin de faire office de passerelle Samba. Le noeud doit avoir accès au réseau client Ceph et disposer de ressources suffisantes en termes de processeur, de mémoire et de réseau.
La fonctionnalité de basculement peut être fournie par CTDB et l'extension SUSE Linux Enterprise High Availability Extension. Reportez-vous à la Section 24.1.3, « Configuration de la haute disponibilité » pour plus d'informations sur la configuration HA.
Assurez-vous qu'un CephFS actif existe déjà dans votre grappe.
Créez un trousseau de clés spécifique à la passerelle Samba sur le noeud Admin de Ceph et copiez-le sur les deux noeuds de la passerelle Samba :
cephuser@adm >
ceph
auth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyringcephuser@adm >
scp
ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/Remplacez SAMBA_NODE par le nom du noeud de la passerelle Samba.
Les étapes suivantes sont exécutées sur le noeud de la passerelle Samba. Installez Samba avec le paquetage d'intégration de Ceph :
cephuser@smb >
sudo zypper in samba samba-cephRemplacez le contenu par défaut du fichier
/etc/samba/smb.conf
par ce qui suit :[global] netbios name = SAMBA-GW clustering = no idmap config * : backend = tdb2 passdb backend = tdbsam # disable print server load printers = no smbd: backgroundqueue = no [SHARE_NAME] path = CEPHFS_MOUNT read only = no oplocks = no kernel share modes = no
Le chemin CEPHFS_MOUNT ci-dessus doit être monté avant de démarrer Samba avec une configuration de partage CephFS du kernel. Reportez-vous à la Section 23.3, « Montage de CephFS dans
/etc/fstab
».La configuration de partage ci-dessus utilise le client CephFS du kernel Linux, recommandé pour des raisons de performances. Comme alternative, le module
vfs_ceph
de Samba peut également être utilisé pour communiquer avec la grappe Ceph. Les instructions sont indiquées ci-dessous pour des installation existantes, mais ne sont pas recommandées pour les nouveaux déploiements de Samba :[SHARE_NAME] path = / vfs objects = ceph ceph: config_file = /etc/ceph/ceph.conf ceph: user_id = samba.gw read only = no oplocks = no kernel share modes = no
Astuce : modes oplocks et shareLes verrous optionnels (
oplocks
- également connus sous le terme de baux SMB2+) permettent d'améliorer les performances grâce à un caching client agressif, mais à l'heure actuelle, ils sont risqués lorsque Samba est déployé avec d'autres clients CephFS, tels que le kernelmount.ceph
, FUSE ou NFS Ganesha.Si tous les accès au chemin du système de fichiers CephFS sont exclusivement gérés par Samba, le paramètre
oplocks
peut être activé en toute sécurité.Actuellement, pour que les fichiers soient desservis correctement, l'option
kernel share modes
doit être désactivée sur un partage en cours d'exécution avec le module CephFS vfs.Important : autorisation d'accèsSamba assigne les utilisateurs et les groupes SMB à des comptes locaux. Les utilisateurs locaux peuvent se voir assigner un mot de passe pour l'accès au partage Samba via :
root #
smbpasswd -a USERNAMEPour que les entrées/sorties se déroulent correctement, la liste de contrôle d'accès (ACL) du chemin du partage doit autoriser l'accès à l'utilisateur connecté via Samba. Vous pouvez modifier l'ACL en effectuant un montage temporaire via le client de kernel CephFS et en employant les utilitaires
chmod
,chown
ousetfacl
par rapport au chemin du partage. Par exemple, pour permettre l'accès à tous les utilisateurs, exécutez la commande suivante :root #
chmod 777 MOUNTED_SHARE_PATH
24.1.2.1 Démarrage des services Samba #
Pour démarrer ou redémarrer les services Samba autonomes, utilisez les commandes suivantes :
root #
systemctl restart smb.serviceroot #
systemctl restart nmb.serviceroot #
systemctl restart winbind.service
Pour vous assurer que les services Samba se lancent au démarrage, activez-les via :
root #
systemctl enable smb.serviceroot #
systemctl enable nmb.serviceroot #
systemctl enable winbind.service
nmb
et winbind
facultatifs
Si vous n'avez pas besoin de parcourir un partage réseau, il n'est pas nécessaire d'activer et de démarrer le service nmb
.
Le service winbind
est uniquement requis en cas de configuration en tant que membre du domaine Active Directory. Reportez-vous à la Section 24.2, « Jointure de la passerelle Samba et d'Active Directory ».
24.1.3 Configuration de la haute disponibilité #
Bien qu'un déploiement Samba + CTDB à plusieurs noeuds soit plus disponible que le noeud unique (voir Chapitre 24, Exportation des données Ceph via Samba), le basculement transparent côté client n'est pas pris en charge. Les applications connaîtront probablement une brève interruption de service en cas de défaillance d'un noeud de passerelle Samba.
Cette section fournit un exemple de configuration à haute disponibilité à deux noeuds des serveurs Samba. La configuration requiert l'extension SUSE Linux Enterprise High Availability Extension. Les deux noeuds sont appelés earth
(192.168.1.1
) et mars
(192.168.1.2
).
Pour plus d'informations sur l'extension SUSE Linux Enterprise High Availability Extension, reportez-vous à la page https://documentation.suse.com/sle-ha/15-SP1/.
Par ailleurs, deux adresses IP virtuelles flottantes permettent aux clients de se connecter au service quel que soit le noeud physique sur lequel il s'exécute. L'adresse IP 192.168.1.10
est utilisée pour l'administration des grappes avec Hawk2 et 192.168.2.1
exclusivement pour les exportations CIFS. Cela facilite l'application des restrictions de sécurité ultérieurement.
La procédure suivante décrit l'exemple d'installation. Pour plus d'informations, reportez-vous à la page https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html.
Créez un trousseau de clés spécifique à la passerelle Samba sur le noeud Admin et copiez-le sur les deux noeuds :
cephuser@adm >
ceph
auth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyringcephuser@adm >
scp
ceph.client.samba.gw.keyringearth
:/etc/ceph/cephuser@adm >
scp
ceph.client.samba.gw.keyringmars
:/etc/ceph/La configuration de SLE-HA nécessite un périphérique d'isolation pour éviter une situation de split brain (cerveau divisé) lorsque les noeuds de grappe actifs ne sont plus synchronisés. Pour cela, vous pouvez utiliser une image Ceph RBD avec un périphérique de traitement par blocs Stonith (SBD). Pour plus d'informations, reportez-vous à la page https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-ha-storage-protect.html#sec-ha-storage-protect-fencing-setup.
Si elle n'existe pas encore, créez une réserve RBD appelée
rbd
(voir Section 18.1, « Création d'une réserve ») et associez-la à l'applicationrbd
(voir Section 18.5.1, « Association de réserves à une application »). Créez ensuite une image RBD associée appeléesbd01
:cephuser@adm >
ceph osd pool create rbdcephuser@adm >
ceph osd pool application enable rbd rbdcephuser@adm >
rbd -p rbd create sbd01 --size 64M --image-sharedPréparez
earth
etmars
pour héberger le service Samba :Assurez-vous que les paquetages suivants sont installés avant de poursuivre : ctdb, tdb-tools et samba.
root #
zypper
in ctdb tdb-tools samba samba-cephAssurez-vous que les services Samba et CTDB sont arrêtés et désactivés :
root #
systemctl disable ctdbroot #
systemctl disable smbroot #
systemctl disable nmbroot #
systemctl disable winbindroot #
systemctl stop ctdbroot #
systemctl stop smbroot #
systemctl stop nmbroot #
systemctl stop winbindOuvrez le port
4379
de votre pare-feu sur tous les noeuds. Cette ouverture est nécessaire pour que CTDB communique avec d'autres noeuds de la grappe.
Sur
earth
, créez les fichiers de configuration de Samba. Ils seront ensuite automatiquement synchronisés avecmars
.Insérez une liste d'adresses IP privées des noeuds de la passerelle Samba dans le fichier
/etc/ctdb/nodes
. Pour plus d'informations, reportez-vous à la page de manuel ctdb (man 7 ctdb
).192.168.1.1 192.168.1.2
Configurez Samba. Ajoutez les lignes suivantes à la section
[global]
de/etc/samba/smb.conf
. Utilisez le nom d'hôte de votre choix à la place de CTDB-SERVER (tous les noeuds de la grappe apparaîtront sous la forme d'un gros noeud portant ce nom). Ajoutez également une définition de partage. Prenons SHARE_NAME (NOM_PARTAGE) comme exemple :[global] netbios name = SAMBA-HA-GW clustering = yes idmap config * : backend = tdb2 passdb backend = tdbsam ctdbd socket = /var/lib/ctdb/ctdb.socket # disable print server load printers = no smbd: backgroundqueue = no [SHARE_NAME] path = / vfs objects = ceph ceph: config_file = /etc/ceph/ceph.conf ceph: user_id = samba.gw read only = no oplocks = no kernel share modes = no
Notez que les fichiers
/etc/ctdb/nodes
et/etc/samba/smb.conf
doivent correspondre sur tous les noeuds de passerelle Samba.
Installez et amorcez la grappe SUSE Linux Enterprise High Availability.
Enregistrez l'extension SUSE Linux Enterprise High Availability Extension sur
earth
etmars
:root@earth #
SUSEConnect
-r ACTIVATION_CODE -e E_MAILroot@mars #
SUSEConnect
-r ACTIVATION_CODE -e E_MAILInstallez ha-cluster-bootstrap sur les deux noeuds :
root@earth #
zypper
in ha-cluster-bootstraproot@mars #
zypper
in ha-cluster-bootstrapAssignez l'image RBD
sbd01
sur les deux passerelles Samba viarbdmap.service
.Modifiez
/etc/ceph/rbdmap
et ajoutez une entrée pour l'image SBD :rbd/sbd01 id=samba.gw,keyring=/etc/ceph/ceph.client.samba.gw.keyring
Activez et démarrez
rbdmap.service
:root@earth #
systemctl enable rbdmap.service && systemctl start rbdmap.serviceroot@mars #
systemctl enable rbdmap.service && systemctl start rbdmap.serviceLe périphérique
/dev/rbd/rbd/sbd01
doit être disponible sur les deux passerelles Samba.Initialisez la grappe sur
earth
et laissezmars
la rejoindre.root@earth #
ha-cluster-init
root@mars #
ha-cluster-join
-c earthImportantAu cours du processus d'initialisation et de jointure de la grappe, il vous sera demandé de manière interactive si vous souhaitez utiliser SBD. Confirmez avec
y
, puis spécifiez/dev/rbd/rbd/sbd01
comme chemin d'accès au périphérique de stockage.
Vérifiez l'état de la grappe. Vous devriez voir deux noeuds ajoutés à la grappe :
root@earth #
crm
status 2 nodes configured 1 resource configured Online: [ earth mars ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started earthExécutez les commandes suivantes sur
earth
pour configurer la ressource CTDB :root@earth #
crm
configurecrm(live)configure#
primitive
ctdb ocf:heartbeat:CTDB params \ ctdb_manages_winbind="false" \ ctdb_manages_samba="false" \ ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper ceph client.samba.gw cephfs_metadata ctdb-mutex" ctdb_socket="/var/lib/ctdb/ctdb.socket" \ op monitor interval="10" timeout="20" \ op start interval="0" timeout="200" \ op stop interval="0" timeout="100"crm(live)configure#
primitive
smb systemd:smb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"crm(live)configure#
primitive
nmb systemd:nmb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"crm(live)configure#
primitive
winbind systemd:winbind \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"crm(live)configure#
group
g-ctdb ctdb winbind nmb smbcrm(live)configure#
clone
cl-ctdb g-ctdb meta interleave="true"crm(live)configure#
commit
Astuce : primitivesnmb
etwinbind
facultativesSi vous n'avez pas besoin de parcourir un partage réseau, il n'est pas nécessaire d'ajouter la primitive
nmb
.La primitive
winbind
est uniquement requise en cas de configuration en tant que membre du domaine Active Directory. Reportez-vous à la Section 24.2, « Jointure de la passerelle Samba et d'Active Directory ».Le fichier binaire
/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper
de l'option de configurationctdb_recovery_lock
possède les paramètres CLUSTER_NAME (NOM_GRAPPE), CEPHX_USER (UTILISATEUR_CEPHX), RADOS_POOL (RÉSERVE_RADOS) et RADOS_OBJECT (OBJET_RADOS), dans cet ordre.Un paramètre de timeout de verrouillage supplémentaire peut être ajouté à la suite pour remplacer la valeur par défaut utilisée (10 secondes). Une valeur plus élevée augmente le délai de basculement du maître de récupération CTDB, tandis qu'une valeur plus faible peut entraîner une détection incorrecte de l'arrêt du maître de récupération, déclenchant des basculements bagottants.
Ajoutez une adresse IP en grappe :
crm(live)configure#
primitive
ip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \ unique_clone_address="true" \ op monitor interval="60" \ meta resource-stickiness="0"crm(live)configure#
clone
cl-ip ip \ meta interleave="true" clone-node-max="2" globally-unique="true"crm(live)configure#
colocation
col-with-ctdb 0: cl-ip cl-ctdbcrm(live)configure#
order
o-with-ctdb 0: cl-ip cl-ctdbcrm(live)configure#
commit
Si
unique_clone_address
est défini surtrue
, l'agent de ressource IPaddr2 ajoute un ID de clone à l'adresse spécifiée, ce qui permet d'obtenir trois adresses IP différentes. Elles ne sont généralement pas nécessaires, mais aident à l'équilibrage de la charge. Pour plus d'informations sur ce sujet, reportez-vous à l'adresse https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-ha-lb.html.Vérifiez le résultat :
root@earth #
crm
status Clone Set: base-clone [dlm] Started: [ factory-1 ] Stopped: [ factory-0 ] Clone Set: cl-ctdb [g-ctdb] Started: [ factory-1 ] Started: [ factory-0 ] Clone Set: cl-ip [ip] (unique) ip:0 (ocf:heartbeat:IPaddr2): Started factory-0 ip:1 (ocf:heartbeat:IPaddr2): Started factory-1Effectuez un test à partir d'une machine client. Sur un client Linux, exécutez la commande suivante pour vérifier si vous pouvez copier des fichiers depuis et vers le système :
root #
smbclient
//192.168.2.1/myshare
24.1.3.1 Redémarrage des ressources HA Samba #
Après toute modification de la configuration de Samba ou CTDB, un redémarrage des ressources HA peut s'avérer nécessaire pour que les modifications prennent effet. Cette opération peut être effectuée via :
root #
crm
resource restart cl-ctdb
24.2 Jointure de la passerelle Samba et d'Active Directory #
Vous pouvez configurer la passerelle Ceph Samba pour qu'elle devienne membre du domaine Samba avec prise en charge d'Active Directory (AD). En tant que membre du domaine Samba, vous pouvez utiliser les utilisateurs et groupes du domaine des listes d'accès local (ACL) sur les fichiers et répertoires du CephFS exporté.
24.2.1 Préparation de l'installation de Samba #
Cette section présente les étapes préparatoires à effectuer avant de configurer Samba. Commencer avec un environnement propre évite la confusion et permet de vous assurer qu'aucun fichier de l'installation Samba précédente n'est mélangé avec l'installation du nouveau membre du domaine.
Les horloges de tous les noeuds de passerelle Samba doivent être synchronisées avec le contrôleur du domaine Active Directory. Les décalages d'horloge peuvent entraîner des échecs d'authentification.
Vérifiez qu'aucun processus de caching de nom ou Samba n'est en cours d'exécution :
cephuser@smb >
ps ax | egrep "samba|smbd|nmbd|winbindd|nscd"
Si la sortie répertorie des processus samba
, smbd
, nmbd
, winbindd
ou nscd
, arrêtez-les.
Si vous avez déjà exécuté une installation Samba sur cet hôte, supprimez le fichier /etc/samba/smb.conf
. Supprimez également tous les fichiers de base de données Samba, tels que les fichiers *.tdb
et *.ldb
. Pour lister les répertoires contenant des bases de données Samba, exécutez la commande suivante :
cephuser@smb >
smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
24.2.2 Vérification de DNS #
Active Directory (AD) utilise DNS pour localiser d'autres contrôleurs de domaine (DC) et services, tels que Kerberos. Par conséquent, les membres et les serveurs du domaine AD doivent être en mesure de résoudre les zones DNS AD.
Vérifiez que DNS est correctement configuré et que la recherche directe et inversée donne une résolution correcte, par exemple :
cephuser@adm >
nslookup DC1.domain.example.com
Server: 10.99.0.1
Address: 10.99.0.1#53
Name: DC1.domain.example.com
Address: 10.99.0.1
cephuser@adm >
10.99.0.1
Server: 10.99.0.1
Address: 10.99.0.1#53
1.0.99.10.in-addr.arpa name = DC1.domain.example.com.
24.2.3 Résolution des enregistrements SRV #
AD utilise les enregistrements SRV pour localiser des services, tels que Kerberos et LDAP. Pour vérifier que les enregistrements SRV sont résolus correctement, utilisez le shell interactif nslookup
, par exemple :
cephuser@adm >
nslookup
Default Server: 10.99.0.1
Address: 10.99.0.1
> set type=SRV
> _ldap._tcp.domain.example.com.
Server: UnKnown
Address: 10.99.0.1
_ldap._tcp.domain.example.com SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dc1.domain.example.com
domain.example.com nameserver = dc1.domain.example.com
dc1.domain.example.com internet address = 10.99.0.1
24.2.4 Configuration de Kerberos #
Samba prend en charge les interfaces dorsales Heimdal et MIT Kerberos. Pour configurer Kerberos sur le membre du domaine, définissez ce qui suit dans votre fichier /etc/krb5.conf
:
[libdefaults] default_realm = DOMAIN.EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
L'exemple précédent configure Kerberos pour le domaine DOMAIN.EXAMPLE.COM. Nous déconseillons de définir d'autres paramètres dans le fichier /etc/krb5.conf
. Si /etc/krb5.conf
contient une ligne include
, cela ne fonctionnera pas ; vous devez supprimer cette ligne.
24.2.5 Résolution du nom de l'hôte local #
Lorsque vous joignez un hôte au domaine, Samba essaie d'enregistrer le nom d'hôte dans la zone DNS AD. Pour cela, l'utilitaire net
doit être en mesure de résoudre le nom de l'hôte à l'aide de DNS ou d'une entrée correcte dans le fichier /etc/hosts
.
Pour vérifier que votre nom d'hôte se résout correctement, utilisez la commande getent hosts
:
cephuser@adm >
getent hosts example-host
10.99.0.5 example-host.domain.example.com example-host
La résolution du nom d'hôte et du nom de domaine complet (FQDN) ne doit pas renvoyer l'adresse IP 127.0.0.1 ni quelconque adresse IP autre que celle utilisée sur l'interface LAN du membre du domaine. Si aucune sortie n'est retournée ou si la résolution de l'hôte donne une adresse IP incorrecte et que vous n'utilisez pas DHCP, configurez l'entrée correcte dans le fichier /etc/hosts
:
127.0.0.1 localhost 10.99.0.5 example-host.samdom.example.com example-host
/etc/hosts
Si vous utilisez DHCP, vérifiez que le fichier /etc/hosts
contient uniquement la ligne « 127.0.0.1 ». Si les problèmes persistent, contactez l'administrateur de votre serveur DHCP.
Si vous avez besoin d'ajouter des alias au nom d'hôte de la machine, ajoutez-les à la fin de la ligne qui commence avec l'adresse IP de la machine, et non à la ligne « 127.0.0.1 ».
24.2.6 Configuration de Samba #
Cette section présente des informations sur les options de configuration spécifiques que vous devez inclure dans la configuration de Samba.
L'adhésion au domaine Active Directory est principalement configurée en définissant security = ADS
avec les paramètres d'assignation de domaine et d'ID Kerberos appropriés dans la section [global]
du fichier /etc/samba/smb.conf
.
[global] security = ADS workgroup = DOMAIN realm = DOMAIN.EXAMPLE.COM ...
24.2.6.1 Choix de l'interface dorsale pour l'assignation d'ID dans winbindd
#
Si vos utilisateurs doivent avoir des shells de connexion et/ou des chemins de répertoire privé Unix différents, ou si vous souhaitez qu'ils aient le même ID partout, vous devez utiliser l'interface dorsale « ad » winbind et ajouter des attributs RFC2307 à AD.
Les attributs RFC2307 ne sont pas ajoutés automatiquement lors de la création d'utilisateurs ou de groupes.
Les numéros d'ID trouvés sur un contrôleur de domaine (nombres compris dans la plage de 3000000) ne sont pas des attributs RFC2307 et ne seront pas utilisés sur les membres du domaine Unix. Si vous avez besoin d'avoir les mêmes numéros d'ID partout, ajoutez les attributs uidNumber
et gidNumber
à AD et utilisez l'interface dorsale « ad » winbind sur les membres du domaine Unix. Si vous décidez d'ajouter des attributs uidNumber
et gidNumber
à AD, n'utilisez pas de numéros de la plage de 3000000.
Si vos utilisateurs emploient le contrôleur de domaine AD Samba uniquement pour l'authentification, sans y stocker de données ni s'y connecter, vous pouvez utiliser l'interface dorsale « rid » winbind. Celle-ci calcule les ID utilisateur et de groupe à partir du RID Windows*. Si vous utilisez la même section [globale]
du fichier smb.conf
sur chaque membre du domaine Unix, vous obtiendrez les mêmes ID. Si vous utilisez l'interface dorsale « rid », vous n'avez pas besoin d'ajouter quoi que ce soit à AD et les attributs RFC2307 sont ignorés. En cas d'utilisation de l'interface dorsale « rid », définissez les paramètres template shell
et template homedir
dans smb.conf
. Ces paramètres sont globaux de sorte que tout le monde obtient le même shell de connexion et le même chemin de répertoire privé Unix (contrairement aux attributs RFC2307 qui permettent de définir des shells et des chemins de répertoire privé Unix individuels).
Il existe une autre façon de configurer Samba, lorsque vos utilisateurs et groupes doivent avoir le même ID partout, mais que vous avez besoin que vos utilisateurs aient le même shell de connexion et emploient le même chemin de répertoire privé Unix. Pour ce faire, utilisez l'interface dorsale « ad » winbind et les lignes de modèle dans smb.conf
. De cette façon, vous n'avez qu'à ajouter les attributs uidNumber
et gidNumber
à AD.
Pour des informations plus détaillées sur les interfaces dorsales disponibles pour l'assignation d'ID, reportez-vous aux pages de manuel correspondantes : man 8 idmap_ad
, man 8 idmap_rid
et man 8 idmap_autorid
.
24.2.6.2 Définition des plages d'ID utilisateur et de groupe #
Après avoir décidé de l'interface dorsale winbind à employer, vous devez spécifier les plages à utiliser avec l'option idmap config
dans smb.conf
. Par défaut, un membre du domaine Unix comporte plusieurs blocs d'utilisateurs et de groupes :
ID | Plage |
---|---|
0-999 | Utilisateurs et groupes du système local. |
À partir de 1000 | Utilisateurs et groupes Unix locaux. |
À partir de 10000 | Utilisateurs et groupes DOMAIN |
Comme vous pouvez le constater d'après les plages ci-dessus, vous ne devez pas définir les plages « * » ou « DOMAIN » pour commencer à 999 ou moins, car elles interfèreraient avec les utilisateurs et les groupes du système local. Vous devez également laisser un espace pour tous les utilisateurs et groupes Unix locaux, de sorte que commencer les plages idmap config
à 3000 semble être un bon compromis.
Vous devez décider de la taille que votre domaine « DOMAIN » est susceptible d'atteindre et si vous prévoyez d'avoir des domaines approuvés. Ensuite, vous pouvez définir les plages idmap config
comme suit :
Domaine | Plage |
---|---|
* | 3000-7999 |
DOMAINE | 10000-999999 |
APPROUVÉ | 1000000-9999999 |
24.2.6.3 Assignation du compte d'administrateur de domaine à l'utilisateur root
local #
Samba vous permet d'assigner des comptes de domaine à un compte local. Utilisez cette fonctionnalité pour exécuter des opérations de fichier sur le système de fichiers du membre du domaine en tant qu'utilisateur différent du compte qui a demandé l'opération sur le client.
L'assignation de l'administrateur de domaine au compte root
local est facultative. Configurez l'assignation uniquement si l'administrateur de domaine doit être en mesure d'exécuter des opérations de fichier sur le membre du domaine à l'aide d'autorisations root
. Sachez que l'assignation de l'administrateur au compte root
ne vous permet pas de vous connecter aux membres du domaine Unix en tant qu'administrateur.
Pour assigner l'administrateur de domaine au compte root
local, procédez comme suit :
Ajoutez le paramètre suivant à la section
[global]
de votre fichiersmb.conf
:username map = /etc/samba/user.map
Créez le fichier
/etc/samba/user.map
avec le contenu suivant :!root = DOMAIN\Administrator
Si vous utilisez l'interface dorsale d'assignation d'ID « ad », ne configurez pas l'attribut uidNumber
pour le compte d'administrateur de domaine. Si l'attribut est défini pour le compte, la valeur remplace l'UID local « 0 » de l'utilisateur root
, de sorte que l'assignation échoue.
Pour plus de détails, reportez-vous au paramètre username map
sur la page de manuel de smb.conf
(man 5 smb.conf
).
24.2.7 Jointure du domaine Active Directory #
Pour joindre l'hôte à un annuaire Active Directory, exécutez la commande suivante :
cephuser@smb >
net ads join -U administrator
Enter administrator's password: PASSWORD
Using short domain name -- DOMAIN
Joined EXAMPLE-HOST to dns domain 'DOMAIN.example.com'
24.2.8 Configuration de NSS #
Afin que les utilisateurs et groupes du domaine soient disponibles pour le système local, vous devez activer la bibliothèque NSS (Name Service Switch). Ajoutez l'entrée winbind
à la fin des bases de données suivantes dans le fichier /etc/nsswitch.conf
:
passwd: files winbind group: files winbind
Gardez l'entrée
file
comme première source pour les deux bases de données. Cela permet à NSS de rechercher les utilisateurs et groupes du domaine à partir des fichiers/etc/passwd
et/etc/group
avant d'interroger le servicewinbind
.N'ajoutez pas l'entrée
winbind
à la base de donnéesshadow
NSS. Cela peut entraîner l'échec de l'utilitairewbinfo
.N'utilisez pas les mêmes noms d'utilisateur dans le fichier
/etc/passwd
local et dans le domaine.
24.2.9 Démarrage des services #
Après avoir modifié la configuration, redémarrez les services Samba conformément à la Section 24.1.2.1, « Démarrage des services Samba » ou à la Section 24.1.3.1, « Redémarrage des ressources HA Samba ».
24.2.10 Test de la connectivité winbindd
#
24.2.10.1 Envoi d'un ping winbindd
#
Pour vérifier si le service winbindd
est en mesure de se connecter aux contrôleurs de domaine (DC) AD ou à un contrôleur de domaine primaire (PDC), entrez :
cephuser@smb >
wbinfo --ping-dc
checking the NETLOGON for domain[DOMAIN] dc connection to "DC.DOMAIN.EXAMPLE.COM" succeeded
Si la commande précédente échoue, vérifiez que le service winbindd
est en cours d'exécution et que le fichier smb.conf
est configuré correctement.
24.2.10.2 Recherche d'utilisateurs et de groupes du domaine #
La bibliothèque libnss_winbind
vous permet de rechercher des utilisateurs et groupes du domaine. Par exemple, pour rechercher l'utilisateur du domaine « DOMAIN\demo01 » :
cephuser@smb >
getent passwd DOMAIN\\demo01
DOMAIN\demo01:*:10000:10000:demo01:/home/demo01:/bin/bash
Pour rechercher le groupe du domaine « Domain Users » :
cephuser@smb >
getent group "DOMAIN\\Domain Users"
DOMAIN\domain users:x:10000:
24.2.10.3 Assignation d'autorisations de fichier aux utilisateurs et groupes du domaine #
La bibliothèque NSS vous permet d'utiliser des comptes d'utilisateurs du domaine et des groupes dans les commandes. Par exemple, pour définir le propriétaire d'un fichier sur l'utilisateur du domaine « demo01 » et le groupe sur le groupe de domaine « Domain Users », entrez :
cephuser@smb >
chown "DOMAIN\\demo01:DOMAIN\\domain users" file.txt