Ajouter un serveur GNU/Linux dans un Active Directory

modifié le : 1 août 2024,
par Guillaume Chéramy
 

Le but ici est d'intégrer notre serveur GNU/Linux dans un Active Directory et d'avoir un mapping des utilisateurs et groupes de l'AD sur nos serveurs GNU/Linux.

Cet article est une mise à jour d'un vieil article de 2016, testé et validé avec un AD2019.

Nouvelle mise à jour, testé sur Debian 12 et un AD 2022

Infrastructure

L'infrastructure est assez classique :

  • Un active directory sur un serveur Windows 2016 / 2019 / 2022
  • un client GNU/Linux, ici en Debian 11 ou 12

Configuration de Kerberos

Installer les paquets nécessaires :

apt install krb5-user libpam-krb5

Configuration de kerberos dans le fichier /etc/krb5.conf

Mon domaine AD est GUIDTZ-WIN.LOCAL à adapter.

[libdefaults]
default_realm = GUIDTZ-WIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
GUIDTZ-WIN.LOCAL = {
kdc = srv-ad1.guidtz-win.local
admin_server = srv-ad1.guidtz-win.local
}
[domain_realm]
.domain.com = GUIDTZ-WIN.LOCAL
domain.com = GUIDTZ-WIN.LOCAL

Tester la connexion :

kinit Administrator@GUIDTZ-WIN.LOCAL

Lister les tickets obtenus :

klist

Si vous obtenez un ticket avec une date de fin de validité c'est ok pour cette partie.

Ajouter le serveur au domaine

Installer les paquets nécessaires :

apt install winbind samba

On configure Samba /etc/samba/smb.conf :

[global]
workgroup = GUIDTZ-WIN
security = ads
realm = guidtz-win.local
password server = srv-ad1.guidtz-win.local
template homedir = /home/%D/%U
template shell = /bin/bash
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
domain master = no
local master = no
prefered master = no
os level = 0
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431

On redémarre tout :

systemctl stop winbind
systemctl restart smbd

Joindre le domaine :

net ads join -U Administrateur

Un message doit s'afficher disant que la machine est bien intégrée dans le domaine.

Pour vérifier :

net ads info

Il faut redémarrer maintenant Winbind :

systemctl restart winbind

Lister les utilisateurs

wbinfo -u

Afficher les groupes :

wbinfo -g

Notre serveur Linux fait partie du domaine Windows.

Mapping des utilisateurs

L'objectif ici est de mapper les utilisateurs de l'AD et du Linux.

Installer les paquets nécessaires :

apt install libnss-winbind

On modifie /etc/nsswitch.conf :

passwd:         compat
group:          compat

à

passwd:         compat winbind
group:          compat winbind

On test :

getent passwd
getent group

Configurer PAM

Installer les paquets nécessaires

apt install libpam-winbind

Mettre à jour PAM :

pam-auth-update

Cocher les cases correspondantes dont celle pour créer automatiquement les répertoires.

Pour tester :

su - gcheramy
Création du répertoire « /home/GUIDTZ-WIN/gcheramy ».

Voilà notre serveur GNU/Linux fait partie du domaine.