Professional Documents
Culture Documents
LDAP
LDAP
LDAP
Lightweight Directory
Access Protocol
Nom:
LDAP
Dimoni:
slapd
Paquet:
openldap-server
Port TCP:
1 Introducci
LDAP (Lightweight Directory Access Protocol) s un protocol a nivell d'aplicaci que permet l'accs a un servei
de directori ordenat i distribut per a cercar diversa informaci en un entorn de xarxa. LDAP tamb s considerat
una base de dades (tot i que el seu sistema d'emmagatzemament pot ser diferent) al que poden realitzar-se
consultes. Habitualment, emmagatzema la informaci de login (usuari i paraula de pas) i s utilitzat per a
autenticar-se tot i que s possible emmagatzemar altres tipus d'informaci (dades de contacte del usuari, ubicaci
de diversos recursos de la xarxa, permisos, certificats, etc).
2 Openldap
2.1 Instalaci
Installaci del servidor:
yum install openldap-servers
Installaci de migrationtools (scripts per migrar les comptes locals al servidor ldap):
yum install migrationtools
2.2 Configuraci
Aquesta versi ha canviat la sintaxi de la configuraci, ara fa servir la configuraci cn=config, la configuraci es
troba a /etc/openldap/slapd.d/cn=config, repartida entre diferent fitxers. El fitxer olcDatabase={1}bdb.ldif, conte
la configuraci del nom del servidor:
dn: olcDatabase={1}bdb
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
olcSuffix: dc=aula9,dc=cat
2 Openldap
$LOGOIMAGE
LDAP
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=Manager,dc=aula9,dc=cat
olcRootPW: {SSHA}3MUmh19z+EiPWxGJWKIeEkFemmiQI5sf
olcMonitoring: TRUE
olcDbDirectory: /var/lib/ldap
olcDbCacheSize: 1000
olcDbCheckpoint: 1024 15
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIDLcacheSize: 0
olcDbIndex: objectClass pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: uid pres,eq,sub
olcDbIndex: uidNumber pres,eq
olcDbIndex: gidNumber pres,eq
olcDbIndex: mail pres,eq,sub
olcDbIndex: ou pres,eq,sub
olcDbIndex: loginShell pres,eq
olcDbIndex: sn pres,eq,sub
olcDbIndex: givenName pres,eq,sub
olcDbIndex: memberUid pres,eq,sub
olcDbIndex: nisMapName pres,eq,sub
olcDbIndex: nisMapEntry pres,eq,sub
olcDbLinearIndex: FALSE
olcDbMode: 0600
olcDbSearchStack: 16
olcDbShmKey: 0
olcDbCacheFree: 1
olcDbDNcacheSize: 0
structuralObjectClass: olcBdbConfig
entryUUID: adab35bc-9ee2-102e-919d-859ebe025584
creatorsName: cn=config
createTimestamp: 20100126162201Z
entryCSN: 20100126162201.709451Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20100126162201Z
Ara posem el nom al nostre ldap, canviem els parmetres (Suffix i RootDN):
olcSuffix: dc=aula9,dc=cat
olcRootDN: cn=Manager,dc=aula9,dc=cat
Ara cal posar el password de l'administrador del ldap, des de una consola escrivim slappassword:
$ slappasswd
New password:
Re-enter new password:
{SSHA}3MUmh19z+EiPWxGJWKIeEkFemmiQI5sf
2.2 Configuraci
$LOGOIMAGE
LDAP
Tamb hem de canviar el fitxer olcDatabase={2}monitor.ldif, conte la configuraci del nom del servidor, cal
posar b la lnia:
olcAccess: {0}to * by dn.base="cn=manager,dc=aula9,dc=cat" read by * none'''
Ara ja poden iniciar el servei slapd. Es possible que s'hagin de canviar el propietari dels fitxers de /var/lib/ldap.
2.3 Funcionament
Per comprobar que funciona executem en una consola l'ordre slaptest:
#slaptest
bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=aula9,dc=cat".
config file testing succeeded
2.3 Funcionament
$LOGOIMAGE
LDAP
I pels usuaris:
2.4 Creaci de l'arbre
$LOGOIMAGE
LDAP
Hi han molts usuaris i grups que no farem servir, els podem esborrar i depurar els fitxers group.ldif i passwd.ldif
per deixar noms els que en interessen, per esborrar tot l'arbre des de el navegador: Triem l'entrada
dc=aula0,dc=cat, a la dreta escollim predeterminado i desprs cliquem sobre esborrar l'bjecte i els seus fills. Aix
tot el que hem fet l'hem esborrat :), Realment la base no calia esborrar aix que la tornem a passar al ldap. Ens
quedar aix.
$LOGOIMAGE
LDAP
Ara del fitxer group.ldif esborrem tots els grups que no necessitem (els que no son d'usuaris o mquines), el mateix
fem del passwd.ldif: I els importem, per ara farem un altre mtode, mitjanant el phpldapadmin: Triem l'icona
importar i busquem el fitxer ldif:
$LOGOIMAGE
LDAP
Repetim el mateix pel fitxer passwd.ldif. Ara ja tenim preparat el nostre servidor ldap, per fer-lo servir per validar
comptes des de php o per logar-se des de un client linux o windows.
3 Clients ldap
3.1 Installaci
El client ldap:
yum install openldap
nss_ldap
El client de samba:
yum install samba-client
3.2 Configuraci
3.2.1 Authconfig-tui
Des de un consola amb l'usuari root executem:
authconfig-tui
3 Clients ldap
$LOGOIMAGE
3.2.1 Authconfig-tui
LDAP
$LOGOIMAGE
LDAP
3.2.2 /etc/openldap/ldap.conf
Tenim posada la informaci correcta:
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE
#URI
dc=example,dc=com
ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT
12
#TIMELIMIT
15
#DEREF
never
URI ldap://192.168.1.203
BASE dc=aula9,dc=cat
TLS_CACERTDIR /etc/openldap/cacerts
3.2.3 /etc/nss_ldap.conf
Tenim posada la informaci correcta:
# @(#)$Id: ldap.conf,v 2.49 2009/04/25 01:53:15 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
3.2.2 /etc/openldap/ldap.conf
$LOGOIMAGE
LDAP
# PADL Software
# http://www.padl.com
#
# Your LDAP server. Must be resolvable without using LDAP.
# Multiple hosts may be specified, each separated by a
# space. How long nss_ldap takes to failover depends on
# whether your LDAP client library supports configurable
# network or connect timeouts (see bind_timelimit).
#host 127.0.0.1
# The distinguished name of the search base.
base dc=aula9,dc=cat
.....
3.2.4 /etc/pam_ldap.conf
Aquest fitxer s molt semblant a l'anterior.
#
#
#
#
#
#
#
#
#
#
3.2.3 /etc/nss_ldap.conf
10
$LOGOIMAGE
LDAP
Per defecte al pasar els usuaris als openldap, el passwords estan encriptats amb crypt, per tant cal modificar
l'ltima lnia:
pam_password crypt
3.2.5 /etc/nsswitch.conf
Aquest fitxer si que cal modificarlo:
#
# /etc/nsswitch.conf
#
....
passwd:
files sss
shadow:
files sss
group:
files sss
....
netgroup:
files sss
3.2.6 /etc/pam.d/login
Amb els fitxers anterior aconseguim que es validi (millor dit que trobi els usuaris al servidor), ara cal que es cregui
el seu home local. Per fer aix modifiquem el fitxer /etc/pam.d/login.
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth
include
system-auth
account
required
pam_nologin.so
account
include
system-auth
password
include
system-auth
# pam_selinux.so close should be the first session rule
session
required
pam_selinux.so close
session
required
pam_loginuid.so
session
optional
pam_console.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0222
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session
required
pam_selinux.so open
session
required
pam_namespace.so
session
optional
pam_keyinit.so force revoke
session
include
system-auth
-session
optional
pam_ck_connector.so
3.2.4 /etc/pam_ldap.conf
11
$LOGOIMAGE
LDAP
Cal afegir la lnia ressaltada, per a que si no existeix la carpeta de l'usuari al client, aquesta s crear.
3.2.7 /etc/pam.d/<escriptori>
Per montar el home de l'usuari del servidor en el client hem de modificar els fitxers: /etc/pam.d/gdm per gnome,
/etc/pam.d/kdm per kde o /etc/pam.d/lxdm per lxde.
#%PAM-1.0
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth required pam_succeed_if.so user != root quiet
auth required pam_env.so
auth substack system-auth
auth optional pam_gnome_keyring.so
auth optional pam_mount.so try_first_pass
account required pam_nologin.so
account include system-auth
password include system-auth
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
session required pam_namespace.so
session optional pam_gnome_keyring.so auto_start
session include system-auth
session optional pam_mount.so
3.2.8 /etc/pam.d/system-auth-ac
Amb aquest fitxer s fa la autentificaci, cal afegir el pam_mount, i canvir pam_sss per pam_ldap:
#%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
optional pam_mount.so
auth
sufficient
pam_ldap.so use_first_pass
auth
required
pam_deny.so
account
account
account
account
account
required
pam_unix.so broken_shadow
sufficient
pam_localuser.so
sufficient
pam_succeed_if.so uid < 500 quiet
[default=bad success=ok user_unknown=ignore] pam_sss.so
required
pam_permit.so
password
password
password
password
requisite
sufficient
sufficient
required
session
session
-session
session
optional
pam_keyinit.so revoke
required
pam_limits.so
optional
pam_systemd.so
[success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
3.2.6 /etc/pam.d/login
12
$LOGOIMAGE
LDAP
session
required
pam_unix.so
session
optional
pam_ldap.so
session optional pam_mount.so
3.2.9 /etc/security/pam_mount,conf.xml
Aqu indiquem el que volem montar via samba
3.2.8 /etc/pam.d/system-auth-ac
13