GNU/Linux >> Tutoriels Linux >  >> Linux

Comment se connecter avec Samba à Linux Active Directory

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 sur enforcing (la valeur par défaut). Donc, vous modifiez le  ad_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 le enforcing 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.


Linux
  1. Comment chiffrer le répertoire avec EncFS sur Debian 9 Stretch Linux

  2. Linux - Comment combiner l'arborescence avec la taille du répertoire ?

  3. Comment obtenir la taille du répertoire sous Linux

  4. Intégrez des serveurs Linux à Active Directory à l'aide de Samba, Winbind et Kerberos

  5. Comment vérifier le mot de passe avec Linux?

Comment connecter Kindle Fire HD à Ubuntu Linux

Comment lire un fichier avec des espaces sous Linux

Comment joindre un système Linux à un domaine Active Directory

Comment sécuriser les serveurs Linux avec SE Linux

Comment copier un répertoire sous Linux

Comment effectuer une installation de Samba Active Directory sur Linux