linux authentification sssd

SSSD permet de faire communiquer une machine linux et un Windows Active Directory. L’AD gère la gestion des identités dans de nombreux parcs informatique. SSSD permet d’authentifier les utilisateurs de linux sur l’Active Directory. Il offre également l’authentification hors-ligne et évite le doublement de compte en cas de non connexion avec le réseau de l’entreprise.

DEBIAN

[bash]
apt-get remove –purge nscd nslcd nslcd-utils ldap-utils libnss-ldapd libpam-ldapd
apt-get autoclean
apt-get autoremove
apt-get install samba-common-bin sssd-tools sssd libnss-sss libpam-sss realmd adcli
mkdir -p /var/lib/samba/private
realm join –user=colombet AD.DOMOINFO.FR
adcli join –user=colombet AD.DOMOINFO.FR
[/bash]

Ajouter la ligne suivante au fichier /etc/pam.d/common-session

[bash]session required pam_mkhomedir.so skel=/etc/skel/ umask=0022[/bash]

Editer le fichier /etc/sssd/sssd.conf.ori et ajouter le bloque ci-dessous :

[bash]
[sssd]
domains = ad.domoinfo.fr
config_file_version = 2
services = nss, pam
[domain/ad.domoinfo.fr]
ad_domain = ad.domoinfo.fr
krb5_realm = AD.DOMOINFO.FR
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
[/bash]

[bash]
cp /etc/sssd/sssd.conf.ori /etc/sssd/sssd.conf
chmod 600 /etc/sssd/sssd.conf*
systemctl enable sssd && systemctl start sssd
pam-auth-update –force
[/bash]

Tester la liaison de la machine avec le domaine

[bash]
id colombet
uid=40001313(colombet) gid=4000513(domain users) groups=4000513(domain users),4000512(domain admins)
[/bash]

Autoriser les administrateurs du domaine à la commande sudo

[bash]apt-get install libsss-sudo[/bash]

Ajouter au fichier /etc/sudoers.d/domain_admins la ligne suivante :

[bash]
vi /etc/sudoers.d/domain_admins
%domain\ admins ALL=(ALL:ALL) NOPASSWD:ALL"
[/bash]

Dans le fichier /etc/nsswitch.conf,
[bash]vi /etc/nsswitch.conf[/bash]

Remplacer
[bash]sudoers: files sss[/bash]
Par
[bash]sudoers: files[/bash]

Cela évitera les emails intempestifs du cron vous indiquant que la directive sss ne fonctionne pas pour sudoers

CENTOS 6

cf : https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server

[bash]yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common ntpdate ntp[/bash]

[bash]
egrep -v &#39;(<sup>#|<sup>$)&#39;</sup></sup> /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 10.0.210.5
server 10.0.210.7
restrict -4 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
[/bash]

[bash]/etc/init.d/ntpd restart[/bash]

[bash]chkconfig ntpd on
chkconfig ntpd –list
ntpd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
[/bash]

[bash]
adcli join –user=colombet AD.DOMOINFO.FR
Password for colombet<at>AD.DOMOINFO.FR
[/bash]

Editer le fichier et ajouter le bloque ci-dessous :

[bash]vi /etc/sssd/sssd.conf[/bash]

[bash]
[sssd]
domains = ad.domoinfo.fr
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75
[domain/ad.domoinfo.fr]
ad_domain = ad.domoinfo.fr
krb5_realm = AD.DOMOINFO.FR
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
[/bash]

[bash]chmod 600 /etc/sssd/sssd.conf*[/bash]

[bash]/etc/init.d/sssd restart[/bash]

[bash]chkconfig sssd on
chkconfig sssd –list
sssd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
[/bash]

[bash]authconfig –enablesssd –enablesssdauth –enablemkhomedir –update[/bash]

[bash]vi /etc/nsswitch.conf[/bash]

[bash]
passwd: files sss
shadow: files sss
group: files sss
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss
sudoers: files sss
publickey: nisplus
automount: files sss
aliases: files nisplus
[/bash]

[bash]ln -s /etc/pam.d/system-auth-local /etc/pam.d/system-auth[/bash]

Ajouter au fichier /etc/sudoers.d/domain_admins la ligne suivante :

[bash]
vi /etc/sudoers.d/domain_admins
%domain\ admins ALL=(ALL:ALL) NOPASSWD:ALL&quot;
[/bash]

[bash]vi /etc/pam.d/system-auth[/bash]

[bash]
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass nullok
auth requisite pam_succeed_if.so uid &gt;= 500 quiet
auth sufficient pam_sss.so 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 &lt; 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_oddjob_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
[/bash]

DEBUG

Sortir du domaine :
[bash]realm leave -U colombet AD.DOMOINFO.FR[/bash]

Entrer dans un domaine :
[bash]realm join -U colombet AD.DOMOINFO.FR[/bash]

Effacer le cache sssd :
[bash]
service sssd stop
rm -f /var/lib/sss/db/*
rm -f /var/lib/sss/mc/*
service sssd start
getent passwd colombet<at>ad.domoinfo.fr
[/bash]

Effacer le cache sssd :
[bash]
service sssd stop
rm -f /test
rm -f /test
rm -f /test
rm -f /test
[/bash]