Pensez à déclarer le serveur dés le début dans l’AD pour éviter de patienter durant la réplication!
Avec pour domaine starmate.fr, en contrôleur primaire DC001 (192.168.2.10) et en contrôleur secondaire DC002 (192.168.2.11).
1 – Prérequis
Synchroniser l’heure avec l’adresse ip du contrôleur de domaine (ici DC001):
ntpdate 192.168.2.10
Installation de Samba, Winbind et Kerberos:
yum install samba samba-winbind samba-winbind-clients krb5-workstation krb5-libs oddjob-mkhomedir oddjob
2 – Configuration
Configuration de Kerberos:
vi /etc/krb5.conf
Et on y mets uniquement ça:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = FR.STARMATE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
FR.STARMATE.LOCAL = {
kdc = DC001
kdc = DC002
admin_server = DC001.fr.starmate.local
admin_server = DC002.fr.starmate.local
default_domain = FR.STARMATE.LOCAL
}
[domain_realm]
.fr.starmate.local = FR.STARMATE.LOCAL
fr.starmate.local = FR.STARMATE.LOCAL
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
On peut tester nos paramètres avec un compte administrateur du domaine (ici admindevops):
kinit admindevops
Configuration de Samba:
vi /etc/samba/smb.conf
Et on y mets uniquement ça (à adapter suivant votre configuration):
[global]
workgroup = STARMATE-FR
interfaces = 127.0.0.1 eth0
bind interfaces only = true
security = ads
passdb backend = tdbsam
template shell = /bin/bash
template homedir = /home/%D/%U
realm = FR.STARMATE.LOCAL
password server = DC001.fr.starmate.local, DC002.fr.starmate.local
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
printing = cups
printcap name = cups
load printers = no
3 – Jonction au domaine
Toujours avec notre compte administrateur (ici admindevops) sur le domaine, on va maintenant rejoindre le domaine avec notre serveur:
net join -U admindevops
Pour vérifier que l’on a bien rejoint le domaine:
net ads testjoin
N.B : la jonction au domaine n’est pas instantanée et peut durer quelques minutes.
4 – Authentification avec l’AD
Configuration de Winbind:
authconfig --enablewinbind --enablemd5 --enableshadow --enablewinbindauth --enablelocauthorize --enablemkhomedir --update
On modifie la configuration de PAM:
vi /etc/pam.d/system-auth
Et on y mets uniquement ça (à adapter suivant votre configuration):
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_winbind.so krb5_auth krb5_ccache_type=FILE use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel umask=0077
#session required pam_oddjob_mkhomedir.so skel=/etc/skel umask=0077 => Decommentez si votre serveur est un RHEL7 ou Centos 6-7
Activation des services:
service smb start
service winbind start
service oddjobd start
Afficher la liste des groupes d’Active Directory :
sudo wbinfo -g
Afficher la liste des utilisateurs d’Active Directory :
sudo wbinfo -u
Création du répertoire d’accueil des ~/home et activation du démarrage de winbind, samba et oddjob:
mkdir /home/STARMATE-FR
chcon --reference=/home /home/STARMATE-FR
chkconfig smb on
chkconfig winbind on
chkconfig oddjobd on
Vous devriez maintenant pouvoir vous connecter avec un compte du domaine AD 2012.
5 – Limitation d’accès
Pour filtrer les utilisateurs qui se connecte sur le serveur par groupe, il faut modifier le fichier /etc/security/pam_winbind.conf et ajouter les groupes désirés (ici le groupe « groupe_des_admins »):
vi /etc/security/pam_winbind.conf
Puis on ajoute/modifie le paramètre suivant:
require_membership_of = groupe_des_admins
Pour déclarer plusieurs groupes, il faut faire une séparation avec une virgule.
Puis, si on veut donner le droit à la commande sudo à ce groupe:
visudo
et on y ajoute cette ligne:
%groupe_des_admins ALL=(ALL) ALL