1.5. Configuration de Samba en tant que serveur membre d'un domaine AD
Si vous utilisez un domaine AD ou NT4, utilisez Samba pour ajouter votre serveur Red Hat Enterprise Linux en tant que membre du domaine afin d'obtenir ce qui suit :
- Accéder aux ressources du domaine sur d'autres membres du domaine
-
Authentifier les utilisateurs du domaine pour les services locaux, tels que
sshd
- Partager des répertoires et des imprimantes hébergés sur le serveur pour faire office de serveur de fichiers et d'impression
1.5.1. Joindre un système RHEL à un domaine AD
Samba Winbind est une alternative au System Security Services Daemon (SSSD) pour connecter un système Red Hat Enterprise Linux (RHEL) à Active Directory (AD). Cette section décrit comment joindre un système RHEL à un domaine AD en utilisant realmd
pour configurer Samba Winbind.
Procédure
Si votre AD nécessite le type de chiffrement RC4, obsolète, pour l'authentification Kerberos, activez la prise en charge de ces algorithmes de chiffrement dans RHEL :
# update-crypto-policies --set DEFAULT:AD-SUPPORT
Install the following packages:
# dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator
Pour partager des répertoires ou des imprimantes sur le membre du domaine, installez le paquet
samba
:# dnf install samba
Sauvegarder le fichier de configuration de
/etc/samba/smb.conf
Samba existant :# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Rejoindre le domaine. Par exemple, pour rejoindre un domaine nommé
ad.example.com
:# realm join --membership-software=samba --client-software=winbind ad.example.com
En utilisant la commande précédente, l'utilitaire
realm
s'affiche automatiquement :-
Crée un fichier
/etc/samba/smb.conf
pour un membre du domainead.example.com
-
Ajoute le module
winbind
pour les recherches d'utilisateurs et de groupes au fichier/etc/nsswitch.conf
-
Met à jour les fichiers de configuration du module d'authentification enfichable (PAM) dans le répertoire
/etc/pam.d/
-
Démarre le service
winbind
et permet au service de démarrer lorsque le système démarre
-
Crée un fichier
-
Il est possible de définir un autre back-end de mappage d'identifiants ou des paramètres de mappage d'identifiants personnalisés dans le fichier
/etc/samba/smb.conf
.
Pour plus de détails, voir Comprendre et configurer le mappage des ID Samba.
Vérifiez que le service
winbind
est en cours d'exécution :# systemctl status winbind ... Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s ago
ImportantPour permettre à Samba d'interroger les informations sur les utilisateurs et les groupes du domaine, le service
winbind
doit être en cours d'exécution avant que vous ne lanciezsmb
.Si vous avez installé le paquetage
samba
pour partager des répertoires et des imprimantes, activez et démarrez le servicesmb
:# systemctl enable --now smb
-
En option, si vous authentifiez des connexions locales à Active Directory, activez le plug-in
winbind_krb5_localauth
. Voir Utilisation du plug-in d'autorisation locale pour MIT Kerberos.
Verification steps
Afficher les détails d'un utilisateur AD, tel que le compte administrateur AD dans le domaine AD :
# getent passwd "AD\administrator" AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bash
Interroger les membres du groupe des utilisateurs du domaine dans le domaine AD :
# getent group "AD\Domain Users" AD\domain users:x:10000:user1,user2
Si vous le souhaitez, vérifiez que vous pouvez utiliser les utilisateurs et les groupes du domaine lorsque vous définissez les autorisations sur les fichiers et les répertoires. Par exemple, pour définir le propriétaire du fichier
/srv/samba/example.txt
comme étantAD\administrator
et le groupe comme étantAD\Domain Users
:# chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
Vérifiez que l'authentification Kerberos fonctionne comme prévu :
Sur le membre du domaine AD, obtenez un ticket pour le principal
administrator@AD.EXAMPLE.COM
:# kinit administrator@AD.EXAMPLE.COM
Affiche le ticket Kerberos mis en cache :
# klist Ticket cache: KCM:0 Default principal: administrator@AD.EXAMPLE.COM Valid starting Expires Service principal 01.11.2018 10:00:00 01.11.2018 20:00:00 krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM renew until 08.11.2018 05:00:00
Affichez les domaines disponibles :
# wbinfo --all-domains BUILTIN SAMBA-SERVER AD
Ressources supplémentaires
- Si vous ne souhaitez pas utiliser les algorithmes de chiffrement RC4, qui sont obsolètes, vous pouvez activer le type de chiffrement AES dans AD. Voir
- Activation du type de cryptage AES dans Active Directory à l'aide d'un GPO. Notez que cela peut avoir un impact sur d'autres services dans votre AD.
-
realm(8)
page de manuel
1.5.2. Utilisation du plug-in d'autorisation locale pour MIT Kerberos
Le service winbind
fournit des utilisateurs Active Directory au membre du domaine. Dans certaines situations, les administrateurs souhaitent permettre aux utilisateurs du domaine de s'authentifier auprès de services locaux, tels qu'un serveur SSH, qui s'exécutent sur le membre du domaine. Lorsque vous utilisez Kerberos pour authentifier les utilisateurs du domaine, activez le plug-in winbind_krb5_localauth
pour mapper correctement les principaux Kerberos aux comptes Active Directory via le service winbind
.
Par exemple, si l'attribut sAMAccountName
d'un utilisateur Active Directory est défini sur EXAMPLE
et que l'utilisateur tente de se connecter avec un nom d'utilisateur en minuscules, Kerberos renvoie le nom d'utilisateur en majuscules. Par conséquent, les entrées ne correspondent pas et l'authentification échoue.
En utilisant le plug-in winbind_krb5_localauth
, les noms de comptes sont correctement mappés. Notez que cela ne s'applique qu'à l'authentification GSSAPI et non à l'obtention du ticket initial (TGT).
Conditions préalables
- Samba est configuré en tant que membre d'un Active Directory.
- Red Hat Enterprise Linux authentifie les tentatives de connexion par rapport à Active Directory.
-
Le service
winbind
est en cours d'exécution.
Procédure
Modifiez le fichier /etc/krb5.conf
et ajoutez la section suivante :
[plugins] localauth = { module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so enable_only = winbind }
Ressources supplémentaires
-
winbind_krb5_localauth(8)
page de manuel.