Si vous êtes un administrateur système et que vous vous demandez comment ajouter un bureau et un serveur Linux à votre Active Directory (AD) Linux actuel, vous êtes au bon endroit. L'ajout de nouveaux clients à AD simplifie la gestion des utilisateurs entre plusieurs machines clientes, en particulier lorsque vous gérez des centaines d'ordinateurs dans votre environnement.
Dans ce didacticiel, vous apprendrez à ajouter des systèmes Linux (Ubuntu 20.04, Linux Mint et Ubuntu Server) à un Active Directory Linux Samba. Cela permet aux utilisateurs de Samba Active Directory de se connecter à une machine cliente Linux avec son propre répertoire personnel, son shell par défaut et les privilèges sudo root (si nécessaire).
Prêt? Lancez-vous !
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous de remplir les conditions suivantes :
- Linux Desktop Machine - Ce didacticiel utilise le bureau Ubuntu 20.04, mais vous pouvez utiliser d'autres distributions telles que Linux Mint et Ubuntu Server.
- Un utilisateur non root avec
sudo
privilèges. - Un Active Directory (AD) Samba entièrement fonctionnel.
Configurer un résolveur DNS permanent
Avant de pouvoir ajouter des clients Linux à Samba Active Directory, vous devez vous assurer que le nom de domaine Samba Active Directory est accessible depuis la machine cliente. Comment? En définissant l'adresse IP Samba AD comme résolveur DNS par défaut pour chaque machine cliente dans le /etc/resolv.conf
fichier de configuration.
1. Ouvrez votre terminal et exécutez le systemctl
commande ci-dessous pour désactiver et arrêter le systemd-resolved
service. Cela garantit que le client Linux utilise le résolveur DNS statique et permanent.
L'administrateur définit cette résolution DNS permanente et n'est remplacé par aucun service tiers comme systemd-resolved
.
# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved
2. Ensuite, exécutez le unlink
commande ci-dessous pour supprimer le fichier de lien symbolique (/etc/resolv.conf
). Vous remplacerez ce fichier à l'étape suivante. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf
# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
3. Maintenant, créez un nouveau fichier nommé /etc/resolv.conf
en utilisant votre éditeur préféré et remplissez le fichier avec la configuration suivante.
La configuration ci-dessous définit les résolveurs DNS principal et de secours.
# Samba AD as main DNS resolver
nameserver 172.16.1.10
# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1
# hostname lookup for domain example.lan
search example.lan
4. Exécutez le chattr
commandes ci-dessous pour créer le fichier /etc/resolv.conf
immuable pour garantir que les machines clientes utilisent toujours Samba AD comme résolveur DNS par défaut. Ces commandes empêchent également les écrasements d'autres services tels que NetworkManager.
# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf
# remove immutable attribute
sudo chattr -i /etc/resolv.conf
5. Enfin, exécutez le ping
commandes ci-dessous pour vérifier la connexion aux noms de domaine Samba AD dc1.example.lan
et example.lan
.
# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan
Si votre connexion réussit, vous recevrez un message de réponse du serveur AD et le domaine dc1.example.lan
et example.lan
sera résolu en adresse IP Samba AD.
Configurer Chrony en tant que client NTP
Après avoir configuré le résolveur DNS, vous allez maintenant configurer Chrony pour synchroniser l'heure entre la machine cliente et le serveur Samba AD. S'il y a une différence de temps (cinq minutes maximum) entre la machine cliente et le serveur AD, le client ne peut pas accéder à toutes les ressources sur le serveur AD.
1. Exécutez la commande ci-dessous pour installer chrony
à vos clients Linux.
# install chrony
sudo apt install chrony -y
2. Maintenant, modifiez la configuration par défaut de Chrony (/etc/chrony/chrony.conf
) dans votre éditeur préféré et ajoutez la configuration suivante.
Le bindcmdaddress
la valeur doit être l'adresse IP du client. Le service Chrony sera exécuté sur cette adresse IP. Alors que le server
L'option est l'endroit où vous ajoutez votre nom de domaine Samba AD en tant que serveur NTP.
# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85
# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst
3. Ensuite, exécutez le systemctl
commandes ci-dessous pour redémarrer le chronyd
service et vérifiez que l'état du service est active (running)
. # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd
# restart chronyd service
sudo systemctl restart chronyd
# verify status chronyd service
sudo systemctl status chronyd
Comme vous pouvez le voir ci-dessous, le chronyd
le service est active (running)
et enabled
. Le client Chrony NTP démarrera désormais automatiquement au démarrage du système.
4. Enfin, exécutez la commande ci-dessous pour vérifier que le service Chrony sur la machine cliente est connecté au serveur Samba AD NTP. chronyc tracking
chronyc tracking
Comme vous pouvez le voir ci-dessous, le service Chrony sur le client Linux est connecté au serveur Samba AD NTP avec l'adresse IP 172.16.1.10 .
Joindre des clients Linux à Samba Active Directory
Vous avez maintenant configuré Chrony sur le client Linux. Mais comment ajouter cette machine cliente à Samba Active Directory ? Commencez par installer et configurer le realmd
et sssd
services pour ajouter des clients Linux au serveur Samba AD.
1. Exécutez le apt
commande ci-dessous pour actualiser votre index de package. Cette commande garantit que vous installez la dernière version des packages à partir du référentiel.
sudo apt update
Ensuite, exécutez la commande ci-dessous pour installer le realmd
et sssd
services avec tous les forfaits supplémentaires nécessaires. Le realmd
service est utilisé avec des services Linux sous-jacents, tels que sssd
, pour rejoindre l'Active Directory Samba.
sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli
Saisissez le domaine par défaut (en majuscules) pour Samba Active Directory, comme indiqué ci-dessous. Vous utiliserez ce domaine par défaut pour l'authentification Kerberos.
Dans cet exemple, le domaine de domaine par défaut pour Samba AD est EXAMPLE.LAN .
3. Créez un nouveau fichier /etc/realmd.conf
en utilisant votre éditeur préféré et ajoutez la configuration suivante. La configuration ci-dessous effectue les opérations suivantes :
- Gère les comportements du domaine et des utilisateurs Samba AD
- Spécifie la connexion du client au serveur AD
- Détermine s'il faut utiliser ou non l'installation automatique de services supplémentaires.
- Configuration spécifique pour le
example.lan
domaine AD.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash
[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop
[service]
# disable automati install for additional realmd service
automatic-install = no
[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes
Exécutez le kinit
commande ci-dessous pour authentifier la connexion au domaine (EXAMPLE.LAN
) au service Kerberos à l'aide de l'utilisateur par défaut (administrator
).
Entrez le mot de passe pour le administrator
Utilisateur Samba AD lorsque vous y êtes invité, comme indiqué ci-dessous.
L'ajout de nouveaux clients à l'AD Samba nécessite l'utilisation du
administrator
utilisateur.
# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]
# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist
5. Maintenant, exécutez le realm join
commande ci-dessous pour ajouter des clients Linux à l'AD Samba (example.lan
). Remplacer UbuntuMintDesktop
avec un nom d'utilisateur principal (UPN) unique. Chaque client/machine doit avoir un UPN différent.
# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended
Vous obtiendrez la machine inscrite avec succès dans le royaume message lorsque le processus est terminé. À ce stade, vous avez ajouté avec succès votre client Linux à Samba Active Directory.
6. Ensuite, ouvrez le /etc/sssd/sssd.conf
fichier de configuration dans votre éditeur préféré.
Ajoutez la ligne suivante, qui modifie le contrôle d'accès par défaut de l'objet de stratégie de groupe (GPO) à permissive
, et définissez la valeur de access_provider
à ad
. Le ad
la valeur indique l'authentification par défaut pour le sssd
service est un Active Directory.
Au moment de la rédaction de cet article, Ubuntu 20.04 Desktop et Server n'autoriseront pas les utilisateurs AD à se connecter lorsque le
ad_gpo_access_control
est défini surenforcing
(la valeur par défaut). Donc, vous modifiez lead_gpo_access_control
valeur àpermissive
.Mais sur Linux Mint, vous pouvez toujours vous connecter en utilisant des utilisateurs AD, même lorsque le
ad_gpo_access_control
est sur leenforcing
mode.
# change default GPO access control to permissive
ad_gpo_access_control = permissive
7. Exécutez le pam-auth-update
commande ci-dessous pour modifier la configuration PAM. Cette commande active le module PAM (pam_mkhomedir.so ). L'activation du module PAM crée automatiquement un répertoire personnel pour les utilisateurs de Samba AD (uniquement lorsque le répertoire personnel n'est pas disponible).
# modify PAM configuration
pam-auth-update
Sélectionnez Créer un répertoire d'accueil lors de la connexion sur l'écran du terminal et sélectionnez Ok pour confirmer.
Appuyez sur la touche ESPACE pour activer une option, puis appuyez sur la touche TAB pour déplacer le menu du curseur.
8. Exécutez le realm list
commande ci-dessous pour vérifier votre connexion à Samba Active Directory.
# Checking connected AD
realm list
Si votre connexion réussit, vous recevrez une connexion AD détaillée, comme indiqué ci-dessous.
Ci-dessous, vous pouvez voir que l'ordinateur de bureau Ubuntu/Mint est connecté à Samba Active Directory (example.lan ) en tant que (kerberos-member ).
9. Maintenant, exécutez le id
commande ci-dessous pour vérifier l'utilisateur Samba AD.
# checking Samba AD user `alice`
id alice
Si votre installation réussit, vous recevrez des uid
aléatoires et gid
pour l'utilisateur Samba alice
. Dans cet exemple, vous pouvez voir l'utilisateur alice est créé et disponible sur l'AD Samba.
10. De plus, exécutez les commandes suivantes pour définir votre éditeur de texte par défaut et ouvrir (visudo
) le /etc/sudoers
fichier dans votre éditeur par défaut. Vous pouvez toujours changer votre éditeur de texte préféré, mais l'éditeur par défaut est nano
pour cette démo.
# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo
Ajoutez votre utilisateur Samba AD au sudoers
fichier en utilisant le format suivant, enregistrez les modifications et fermez l'éditeur. Cela vous permet d'activer sudo
privilèges pour l'utilisateur Samba (si vous avez besoin de l'utilisateur pour exécuter sudo).
# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL
11. Enfin, exécutez la commande suivante sur le bureau Ubuntu pour reboot
le système pour appliquer les nouvelles configurations.
Mais pour Linux Mint et un serveur Ubuntu, vous devrez toujours ajouter une configuration supplémentaire, qui est couverte dans la section suivante.
sudo reboot
Configuration de LightDM pour Samba Active Directory
La configuration par défaut de LightDM pour le processus de connexion manuelle à l'aide d'un nom d'utilisateur et d'un mot de passe est désactivée sur le bureau Linux Mint. Vous allez modifier la configuration de LightDM pour activer le processus de connexion manuelle afin que les utilisateurs de Samba AD puissent se connecter à l'ordinateur de bureau Mint.
Ouvrez le LightDM (/etc/lightdm/lightdm.conf ) fichier de configuration dans votre éditeur préféré et remplissez la configuration suivante sous le [Seat:*]
rubrique.
Le greeter-show-manual-login=true
L'option ci-dessous active le processus de connexion manuelle sur LightDM, tandis que le allow-guest=false
l'option désactive la connexion pour l'utilisateur invité.
# enable manual login
greeter-show-manual-login=true
# disable guest login
allow-guest=false
Maintenant, exécutez la commande ci-dessous pour redémarrer votre bureau Linux Mint afin d'appliquer de nouvelles configurations.
sudo reboot
Configuration de l'authentification Kerberos pour le service SSH
Vous devez activer l'authentification Kerberos sur le service SSH dans l'environnement du serveur. Cela permet à l'utilisateur AD de se connecter au serveur. Comment? En éditant le fichier de configuration SSH.
Ouvrez le SSH (/etc/ssh/sshd_config
) fichier de configuration dans votre éditeur préféré.
Décommentez les options suivantes et définissez leurs valeurs sur yes
:
KerberosAuthentication
– Active l'authentification Kerberos.KerberosTicketCleanup
– Détruit automatiquement les tickets Kerberos lors de la déconnexion
Maintenant, exécutez la commande ci-dessous pour redémarrer votre serveur et appliquer de nouvelles configurations.
sudo reboot
Connexion à des machines Linux à l'aide d'utilisateurs Samba AD
Vous avez maintenant terminé et ajouté des clients Linux à Samba AD. Mais comment pouvez-vous vérifier que les utilisateurs de Samba AD peuvent se connecter à ces clients Linux ? Vous pouvez spécifier l'utilisateur et le mot de passe sur l'écran de connexion du gestionnaire d'affichage sur les clients Linux Desktop. Alors que pour le serveur Ubuntu, vous pouvez vous connecter via le protocole SSH sécurisé.
La connexion aux serveurs Ubuntu, Mint et Ubuntu est différente l'une de l'autre. Mais pas de soucis, vous verrez comment vous connecter sur chaque système d'exploitation en utilisant les utilisateurs de Samba AD dans cette démo.
Connexion à Linux Ubuntu Desktop
Avec Linux Ubuntu Desktop, la connexion à l'aide d'utilisateurs Samba AD est identique à la façon dont vous vous connectez généralement avec un compte utilisateur.
1. Démarrez votre client de bureau Ubuntu, cliquez sur Non répertorié ? sur l'écran de connexion Ubuntu GDM pour vous connecter avec un autre utilisateur.
2. Ensuite, saisissez votre utilisateur Samba AD dans le [email protected]
format. Cet exemple utilise l'utilisateur Samba AD alice(example.lan) , comme indiqué ci-dessous.
3. Saisissez le mot de passe de votre utilisateur Samba AD (alice) et appuyez sur ENTER pour vous connecter.
Une fois connecté, vous verrez le bureau Ubuntu par défaut comme la capture d'écran ci-dessous, où l'utilisateur Samba AD alice
est connecté avec succès.
Vous pouvez voir ci-dessous que le module PAM (pam_mkhomedir.so.
) crée automatiquement le répertoire personnel de l'utilisateur. Alors que les privilèges sudo root sont configurés via le fichier sudoers
.
Connexion à Linux Mint Desktop
Pour le bureau Linux Mint, la connexion est un peu différente de la façon dont vous vous connectez sur un bureau Ubuntu,
Cliquez sur le bouton de connexion, saisissez votre nom d'utilisateur et votre mot de passe, comme indiqué ci-dessous, puis appuyez sur ENTRÉE pour vous connecter.
Vous verrez maintenant le bureau Linux Mint pour votre utilisateur Samba AD comme celui ci-dessous.
Connexion au serveur Ubuntu
Contrairement aux deux premiers systèmes d'exploitation, vous vous connecterez à un serveur Ubuntu via l'environnement de ligne de commande en utilisant le ssh
commande.
Exécutez le ssh
commande ci-dessous depuis une autre machine pour se connecter au serveur en utilisant l'utilisateur Samba AD en suivant le [email protected]_ip
format, comme indiqué ci-dessous.
# connect to SSH using AD user
ssh [email protected]
Tapez yes
pour ajouter l'identité de l'empreinte digitale du serveur et saisir le mot de passe de votre utilisateur Samba AD sur le serveur Ubuntu.
Comme vous le voyez ci-dessous, le répertoire personnel de l'utilisateur est automatiquement créé et le shell par défaut pour les utilisateurs de Samba AD est Bash.
Conclusion
Tout au long de ce didacticiel, vous avez appris à ajouter des clients Linux (Desktop et Server) à Samba Active Directory (AD) à l'aide du service SSSD et Realm. Vous avez également appris à activer l'authentification Kerberos sur le service SSH pour un serveur Linux.
Maintenant, comment tireriez-vous parti des fonctionnalités de Samba Active Directory ? Essayez peut-être d'ajouter un autre serveur en tant que contrôleur de domaine (DC) pour rejoindre l'AD Samba actuel ? Cette configuration fournit des supports de réplication, de redondance et d'équilibrage de charge sur votre AD. En conséquence, vous pouvez ajouter un autre groupe de clients à Samba AD.