Tutoriel : Authentification Active Directory sous Debian Wheezy
Bonjour,
Voici un petit tutoriel sur comment joindre une machine sous Linux Debian dans un domaine Active Directory.
Prérequis Hardware :
- Avoir un contrôleur de domaine AD sous Windows Server 2008 R2. IP : 192.168.20.x.x
- Un Poste de travail installé avec une Debian Wheezy sans interface graphique : maMachineLinux
- Connexion via putty.
Prérequis Sofware:
# aptitude install ntpdate vim sudo
NTPDATE : Synchronise l'heure de la machine via le protocole NTP
# ntpdate IP_DE_VOTRE_SERVEUR_AD
1. Vérification du fichier hosts [FQDN)]
# vi /etc/hosts
127.0.0.1 localhost maMachineLinux.MonDomaine MonDomaine
192.168.x.x maMachineLinux.MonDomaine maMachineLinux
2. Installation et Configuration de Kerberos
Kerberos récupère un ticket auprès du contrôleur de domaine
# aptitude install krb5-user libpam-krb5
Modification du fichier de configuration /etc/krb5.conf
Copie de l'original :
# cd /etc/
# cp krb5.conf krb5.conf.ORI
# vi krb5.conf
[logging]
Default = FILE:/var/log/krb5.log
[libdefaults]
ticket_lifetime = 24000
clock-skew = 300
default_realm = MonDomaine
[realms]
MonDomaine = {
kdc = 192.168.x.x
admin_server = 192.168.x.x
default_domain = MonDomaine
}
[domain_realm]
.MonDomaine = MonDomaine
MonDomaine = MonDomaine
***
ATTENTION ! le nom du domaine doit être en MAJUSCULE
Test de connexion vers l'AD
# kinit administrateur
Password for administrateur@MonDomaine: xxxx
On vérifie si on a bien reçu un ticket:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrateur@MonDomaine
Valid starting Expires Service principal
26/02/2015 11:17:00 26/02/2015 17:57:00 krbtgt/MonDomaine@MonDomaine
3. Intégration au domaine AD
# aptitude install samba winbind samba-common-bin
Modification du fichier /etc/samba/smb.conf
Backup de l'original :
# cp smb.conf smb.conf.ori
#
vi smb.conf
[global]
security
= ads
realm
= MonDomaine.local
workgroup
= MonDomaine
idmap
uid = 10000-20000
idmap
gid = 10000-20000
winbind
enum users = yes
winbind
enum groups = yes
template
homedir = /home/%D/%U
template
shell = /bin/bash
client
use spnego = yes
client
ntlmv2 auth = yes
encrypt
passwords = yes
winbind
use default domain = yes
restrict
anonymous = 2
domain
master = no
local
master = no
preferred
master = no
os
level = 0
winbind
nss info = rfc2307
On redémarre les services :
# /etc/init.d/winbind
stop
#
/etc/init.d/samba restart
# /etc/init.d/winbind start
Jonction au domaine :
# net ads join -U administrateur
Pour vérifie l'intégration, on peut aller voir sur le
serveur AD si l'objet portant le nom de la machine est bien présent, généralement
dans l' OU "Computer"
Test :
# wbinfo -u
-> retourne tous les utilisateurs de l'AD
# wbinfo -g -> tous les groupes de l'AD
# wbinfo -n "nom d'un objet
ad" -> donne le SID
4. Authentification
/etc/nsswitch.conf
On
ajoute « winbind » à la fin des deux lignes suivantes :
passwd: compat winbind
group: compat winbind
Test :
# getent passwd ->
listes des utilisateurs locaux et AD.
# getent group -> idem mais pour les
groupes
5. PAM -> autorise les utilisateurs de l'AD à se connecter sur le poste Linux
Dans /etc/pam.d/
Normalement la bibliothèque
pam_winbind.so doit être présente dans chaque fichier de configuration
suivant :
# vi
common-auth
auth [success=3 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
# vi common-account
account
[success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account
[success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
# vi common-session
session optional pam_winbind.so
session required pam_mkhomedir.so umask=0022
skel=/etc/skel <-- on ajoute cette
ligne pour le creation automatique du dossier home de chaque utilisateurs
# end of
pam-auth-update config
On essaie de se connecter via ssh en putty ou autre :
Login: bruce.lee
bruce.lee@192.168.x.x's password:
Le prompt se présente à nous :
Linux maMachineLinux 3.2.0-4-amd64 #1 SMP Debian
3.2.65-1+deb7u2 x86_64
The
programs included with the Debian GNU/Linux system are free software;
the exact
distribution terms for each program are described in the
individual
files in /usr/share/doc/*/copyright.
Debian
GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted
by applicable law.
Last login:
Thu Feb 26 10:46:50 2015 from maMachineLinux.MonDomaine
bruce.lee@maMachineLinux:~$
6. Autoriser uniquement les membres d'un groupe AD à se connecter
Pour cela il faut éditer
le fichier /etc/pam.d/common-auth et modifier la ligne suivante et ajouter le SID du
groupe concerné:
auth [success=1 default=ignore] pam_winbind.so require_membership_of=S-1-5-21-796845957-1229272821-682003330-10184
krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
Pour obtenir le SID d'un groupe AD :
# wbinfo -n "nom du groupe"
exemple ~$ wbinfo -n debian
S-1-5-21-796845957-1229272821-682003330-10184
SID_DOM_GROUP (2)
Les Logs
En cas de problèmes vous pouvez regarder les logs dans /var/log/ notamment "messages"
Liens
https://wiki.debian.org/fr/LDAP/NSS
https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto
ok mec
RépondreSupprimerEst-il possible de procéder à ce type d'authentification quand on débute dans linux? Ca là, je suis encore à la création d'annuaire ldap. Et par l'occasion, pouvez-vous me dire s'il faut être certifié en linux pour avoir un bon poste en tant qu'admin system? Ou les diplomes d'études sont suffisant. On m'a dit que ce n'était pas nécessaire alors qu'un recruteur a dit que c'était important d'avoir un certificat, merci.
RépondreSupprimer