Vous êtes sur la page 1sur 6

Linux:Conguration de NSS/PAM pour

une authentication via un LDAP


Un article de WIKI.minetti.org.
Sommaire
1 But
2 tape prliminaire
3 Installation
4 Conguration au niveau du serveur LDAP
4.1 Cration du compte pour l'accs au LDAP
4.2 Ajout des droits d'accs pour NSS/PAM
5 Conguration de NSS
6 Conguration de PAM (CentOS/RedHat/Fedora)
7 Conguration de PAM (Debian)
8 Test
But
Permet au systme Linux:
d'authentier les utilisateurs via le LDAP,
d'obtenir les informations des utilisateurs travers le LDAP.
tape prliminaire
Avant de commencer, il est impratif:
de disposer d'un serveur LDAP,
d'avoir test un accs client vers le LDAP (voir Conguration du client LDAP),
et d'avoir procd l'installation d'OpenSSL.
Installation
Taper la commande suivante pour installer les composants ncessaires NSS et PAM
pour faire de l'authentication travers un LDAP sur une CentOS/RedHat/Fedora:
yum install pam_ldap nss-pam-ldapd
ou sur une Debian:
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
1 sur 6 24/09/2014 18:20
aptitude install libnss-ldapd libpam-smbpass libpam-mount
Conguration au niveau du serveur LDAP
Cration du compte pour l'accs au LDAP
Crer le compte que NSS/PAM va utiliser pour accder au LDAP:
pour cela, commencer par crer le chier LDIF:
dn: cn=linux,ou=sysaccount,ou=localnet,dc=minetti,dc=org
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: linux
description: Compte NSS/PAM
userPassword: ....
REMARQUE: Ne jamais mettre le mot de passe en clair (userPassword). Utiliser la
commande suivante pour chirer le mot de passe:
slappasswd
Taper la commande suivante pour importer le nouveau compte dans le LDAP:
ldapadd -x -v -ZZ -D "cn=Manager,dc=minetti,dc=org" -W -f linux.ldif
Ajout des droits d'accs pour NSS/PAM
Voir chapitre Ajout des droits d'accs pour samba.
Conguration de NSS
Modier le chier /etc/nslcd.conf pour qu'il ressemble ceci:
# UID/GID du dmon nslcd
uid nslcd
gid ldap # pour CentOS/RedHat/Fedora
gid nslcd # pour Debian
# Connexion
uri ldap://ldap.srv.minetti.org
base dc=minetti,dc=org
binddn cn=linux,ou=sysaccount,ou=localnet,dc=minetti,dc=org
bindpw LeMotDePasseEnClair
rootpwmoddn cn=Manager,dc=minetti,dc=org
ldap_version 3
#bind_timelimit 30
#timelimit 30
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
2 sur 6 24/09/2014 18:20
#idle_timelimit 3600
# Certificats SSL
ssl start_tls
tls_reqcert demand
tls_cacertdir /etc/openldap/cacerts # pour CentOS/RedHat/Fedora
tls_cacertfile /etc/ssl/certs/minetti-ca.pem # pour Debian
#tls_randfile /var/run/egd-pool
#tls_ciphers TLSv1
tls_cert /etc/pki/tls/certs/amon.pem # pour CentOS/RedHat/Fedora
tls_cert /etc/ssl/certs/amon.pem # pour Debian
tls_key /etc/pki/tls/private/amon.key # pour CentOS/RedHat/Fedora
tls_key /etc/ssl/private.amon/amon.key # pour Debian
# Recherche arborescence du LDAP
scope sub
base group ou=group,ou=localnet,dc=minetti,dc=org
base passwd ou=people,ou=localnet,dc=minetti,dc=org
base shadow ou=people,ou=localnet,dc=minetti,dc=org
base hosts ou=hosts,ou=localnet,dc=minetti,dc=org
base services ou=services,ou=localnet,dc=minetti,dc=org
base networks ou=networks,ou=localnet,dc=minetti,dc=org
base protocols ou=protocols,ou=localnet,dc=minetti,dc=org
base rpc ou=rpc,ou=localnet,dc=minetti,dc=org
base ethers ou=ethers,ou=localnet,dc=minetti,dc=org
base aliases ou=aliases,ou=localnet,dc=minetti,dc=org
base netgroup ou=netgroup,ou=localnet,dc=minetti,dc=org
# PAM (pour Debian uniquement)
pam_authz_search (&(objectClass=posixAccount)(uid=$username))
Crer le chier /etc/ldap.secret et mettez y le mot de passe du manager du LDAP:
echo "MonMotDePasse" > /etc/ldap.secret
chmod 600 /etc/ldap.secret
Modier le chier /etc/nsswitch.conf pour qu'il ressemble ceci:
passwd: files ldap
shadow: files ldap
group: files ldap
hosts: files ldap dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files ldap
netmasks: files
networks: files ldap
protocols: files ldap
rpc: files ldap
services: files ldap
netgroup: nisplus ldap
publickey: nisplus
automount: files nisplus ldap
aliases: files nisplus ldap
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
3 sur 6 24/09/2014 18:20
Pour CentOS/RedHat/Fedora, modier la ligne suivante dans le chier
/etc/syscong/authcong:
USELDAP=yes
Dmarrer le dmon nslcd:
service nslcd start
Conguration de PAM (CentOS/RedHat/Fedora)
Modier le chier /etc/pam_ldap.conf pour qu'il ressemble ceci:
# Connexion
uri ldap://ldap.srv.minetti.org
base dc=minetti,dc=org
binddn cn=linux,ou=sysaccount,ou=localnet,dc=minetti,dc=org
bindpw LeMotDePasseEnClair
rootbinddn cn=Manager,dc=minetti,dc=org
ldap_version 3
#timelimit 30
#bind_timelimit 30
#bind_policy hard
#idle_timelimit 3600
# Certificats SSL
ssl start_tls
tls_checkpeer yes
tls_cacertdir /etc/openldap/cacerts
#tls_randfile /var/run/egd-pool
#tls_ciphers TLSv1
tls_cert /etc/pki/tls/certs/amon.pem
tls_key /etc/pki/tls/private/amon.key
# Recherche arborescence du LDAP
scope sub
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_check_host_attr no
pam_check_service_attr no
#pam_groupdn cn=pam,ou=group,ou=localnet,dc=minetti,dc=org
pam_member_attribute memberUid
pam_min_uid 10001
#pam_max_uid 0
#pam_login_attribute userPrincipalName
#pam_template_login_attribute uid
#pam_template_login nobody
pam_password md5
# Paramtres pour NSS (normalement obsolte)
nss_base_passwd ou=people,ou=localnet,dc=minetti,dc=org?sub
nss_base_shadow ou=people,ou=localnet,dc=minetti,dc=org?sub
nss_base_group ou=group,ou=localnet,dc=minetti,dc=org?sub
nss_base_hosts ou=hosts,ou=localnet,dc=minetti,dc=org?sub
nss_base_services ou=services,ou=localnet,dc=minetti,dc=org?sub
nss_base_networks ou=networks,ou=localnet,dc=minetti,dc=org?sub
nss_base_protocols ou=protocols,ou=localnet,dc=minetti,dc=org?sub
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
4 sur 6 24/09/2014 18:20
nss_base_rpc ou=rpc,ou=localnet,dc=minetti,dc=org?sub
nss_base_ethers ou=ethers,ou=localnet,dc=minetti,dc=org?sub
nss_base_netmasks ou=networks,ou=localnet,dc=minetti,dc=org?sub
nss_base_bootparams ou=ethers,ou=localnet,dc=minetti,dc=org?sub
nss_base_aliases ou=aliases,ou=localnet,dc=minetti,dc=org?sub
nss_base_netgroup ou=netgroup,ou=localnet,dc=minetti,dc=org?sub
Crer le chier /etc/pam_ldap.secret et mettez y le mot de passe du manager du
LDAP:
echo "MonMotDePasse" > /etc/pam_ldap.secret
chmod 600 /etc/pam_ldap.secret
Modier le chier /etc/pam.d/system-auth pour qu'il ressemble ceci:
#%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_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.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 optional pam_ldap.so
session optional pam_mkhomedir.so skel=/etc/skel umask=077
Conguration de PAM (Debian)
Debian congure automatiquement PAM au moment de l'installation de libnss-ldapd.
Nanmoins il faudra s'assurer d'avoir la conguration suivante:
pour /etc/pam.d/common-account:
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
account [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad] p
pour /etc/pam.d/common-auth:
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
5 sur 6 24/09/2014 18:20
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so minimum_uid=10001 use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_mount.so
auth optional pam_smbpass.so migrate
pour /etc/pam.d/common-password:
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 default=ignore] pam_ldap.so minimum_uid=10001 md5 try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_smbpass.so nullok use_authtok use_first_pass
pour /etc/pam.d/common-session:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_mount.so
session [success=ok default=ignore] pam_ldap.so minimum_uid=10001
session required pam_mkhomedir.so skel=/etc/skel umask=0077
Test
Pour tester, taper les commandes suivantes pour lister les utilisateurs du systme:
getent passwd
getent shadow
Vrier que les utilisateurs du LDAP apparaissent bien la n de la liste.
Taper la commande suivante:
getent group
Vrier que les groupes du LDAP apparaissent bien la n de la liste.
Ouvrir une session et tester l'authentication.
Rcupre de http://www.minetti.org/wiki/Linux:Conguration_de_NSS
/PAM_pour_une_authentication_via_un_LDAP
Dernire modication de cette page le 14 octobre 2012 16:38
Linux:Conguration de NSS/PAM pour une authen... http://www.minetti.org/wiki/Linux:Conguration_...
6 sur 6 24/09/2014 18:20

Vous aimerez peut-être aussi