Ajouter un serveur GNU/Linux dans un Active Directory

ATTENTION : Cet article à plus de 3 années, il se peut que les infos soient obsolètes ou à adapter aux dernières versions des logiciels.

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

Infrastructure

L’infrastructure est la même que pour le précédent article. Un serveur Active Directory 2008 R2 et un serveur Debian 8.

Je repars d’une configuration « vierge » mais certains fichiers sont les mêmes que dans l’article précédent.

 

Configuration de Kerberos

# apt-get install krb5-user libpam-krb5

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

[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

 

Test sans la keytab

# kinit Administrator@GUIDTZ-WIN.LOCAL
Password for Administrator@GUIDTZ-WIN.LOCAL:

 

Lister les tickets obtenus

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@GUIDTZ-WIN.LOCAL

Valid starting       Expires              Service principal
19/04/2016 11:14:56  19/04/2016 21:14:56  krbtgt/GUIDTZ-WIN.LOCAL@GUIDTZ-WIN.LOCAL
renew until 26/04/2016 11:14:51

Ajouter le serveur au domaine

# apt-get 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
domain logons = no
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 :

# service winbind stop
# service smbd restart
# service winbind start

Joindre le domaine

# net ads join -U Administrator
Enter Administrator's password:
Using short domain name -- GUIDTZ-WIN
Joined 'CLOUD' to dns domain 'guidtz-win.local'

# net ads info
LDAP server: 192.168.10.70
LDAP server name: SRV-AD1.guidtz-win.local
Realm: GUIDTZ-WIN.LOCAL
Bind Path: dc=GUIDTZ-WIN,dc=LOCAL
LDAP port: 389
Server time: mer., 20 avril 2016 14:23:04 CEST
KDC server: 192.168.10.70
Server time offset: -1

 

Notre serveur Linux fait partie du domaine Windows.

 

Autres tests :

# service winbind restart

# wbinfo -u
administrator
guest
krbtgt
gcheramy

# wbinfo -g
...
enterprise read-only domain controllers
dnsadmins
dnsupdateproxy
owncloud

Mapping des utilisateurs

# apt-get install libnss-winbind

 

On modifie /etc/nsswitch.conf :

passwd:         compat
group:          compat

à

passwd:         compat winbind
group:          compat winbind

 

On test :

# getent passwd
...
administrator:*:16777216:16777220:Administrator:/home/GUIDTZ-WIN/administrator:/bin/bash
guest:*:16777217:16777221:Guest:/home/GUIDTZ-WIN/guest:/bin/bash
krbtgt:*:16777218:16777220:krbtgt:/home/GUIDTZ-WIN/krbtgt:/bin/bash
gcheramy:*:16777219:16777220:Guillaume Chéramy:/home/GUIDTZ-WIN/gcheramy:/bin/bash

# getent group
...
read-only domain controllers:x:16777232:
enterprise read-only domain controllers:x:16777233:
dnsadmins:x:16777234:
dnsupdateproxy:x:16777235:
owncloud:x:16777236:

Configurer PAM

# apt-get install libpam-winbind

Ce qui configure pam correctement pour accepter la connexion des utilisateurs.

 

Juste à rajouter cette ligne dans /etc/pam.d/common-session (à la fin) :

session required pam_mkhomedir.so umask=0022 skel=/etc/skel

 

Ce qui va créer automatiquement le répertoire de l’utilisateur à sa première connexion.

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

 

On peut jouer ensuite avec sudo pour autoriser certains utilisateurs d’un groupe add particulier à devenir administrateur du serveur Linux.

# apt-get install sudo

# visudo
%admins.nux ALL=(ALL) ALL

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

Leave a Comment

Your email address will not be published.