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