Table of Contents

Instalar LDAP

# apt-get install slapd ldap-utils
Administrator Password:
**********

Miramos estructura LDAP:

root@ldap1:~# slapcat     
dn: dc=lobo99,dc=info
objectClass: top
objectClass: dcObject
objectClass: organization
o: lobo99.info
dc: lobo99
structuralObjectClass: organization
entryUUID: 2f9222aa-9998-1035-9dbc-0939660bb676
creatorsName: cn=admin,dc=lobo99,dc=info
createTimestamp: 20160418100055Z
entryCSN: 20160418100055.284922Z#000000#000#000000
modifiersName: cn=admin,dc=lobo99,dc=info
modifyTimestamp: 20160418100055Z

dn: cn=admin,dc=lobo99,dc=info
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9QUVqck5ZSGlJTnIzSnJPTGt2OG1adk1kVHliNEI2M2g=
structuralObjectClass: organizationalRole
entryUUID: 2f924adc-9998-1035-9dbd-0939660bb676
creatorsName: cn=admin,dc=lobo99,dc=info
createTimestamp: 20160418100055Z
entryCSN: 20160418100055.286000Z#000000#000#000000
modifiersName: cn=admin,dc=lobo99,dc=info
modifyTimestamp: 20160418100055Z

Creación usuario

Mas info:

https://wiki.legido.com/doku.php?id=informatica:linux:ldap:instalacion&s[]=openldap

Creamos ldif. IMPORTANTE Tiene que ser inetorgperson para que tenga uid y posixAccount hay que meter todos los campos:

dn: cn=jur,dc=lobo99,dc=info
objectClass: simpleSecurityObject
objectclass: inetorgperson
objectClass: posixAccount
cn: jur
sn: legido
uid: jur
uidnumber: 1001
gidNumber: 1001
homeDirectory: /home/jur
loginshell: /bin/bash
description: Jose
userPassword: 12345
# ldapadd -x -w ******* -D "cn=admin,dc=lobo99,dc=info" -f jose.ldif

Cliente LDAP

# apt-get install libnss-ldapd  

Servidor:

ldap://ldap.lobo99.info

Base:

dc=lobo99,dc=info

Marcar Servicios:

group
passwd
shadow

Para hacer debug si no loga, en el servidor:

Si hacemos:

# getent passwd

Nos tienen que salir los usuarios que tiene en el ldap.

Si no aparece, arrancamos en modo debug:

# /etc/init.d/nscd stop
# /etc/init.d/nslcd stop
# nslcd -d

Por ejemplo podemos ver que el filtro no saca ningún usuario:

nslcd: [8b4567] <passwd="joseuid"> DEBUG: myldap_search(base="dc=lobo99,dc=info", filter="(&(objectClass=posixAccount)(uid=joseuid))")
.......
nslcd: [8b4567] <passwd="joseuid"> DEBUG: ldap_result(): end of results (0 total)

Puede ser que por ejemplo no tenga la clase posixAccount

Si funciona bien sale:

nslcd: [7b23c6] <passwd="jur"> DEBUG: ldap_simple_bind_s(NULL,NULL) (uri="ldap://192.168.2.101:389")
nslcd: [7b23c6] <passwd="jur"> DEBUG: ldap_result(): cn=jur,dc=lobo99,dc=info
nslcd: [7b23c6] <passwd="jur"> DEBUG: ldap_result(): end of results (1 total)

Crear directorio home en el primer login

Requisito: tener instalado el paquete libpam-ldapd

Añadir la siguiente línea a:

/etc/pam.d/common-session
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022

Hacer sudo a un grupo

Creamos el grupo de sudos en ldap grupoldapsudo.ldif:

dn: ou=groups,dc=lobo99,dc=info
objectclass: organizationalUnit
objectclass: top
ou: groups

dn: cn=grupoldapsudo,ou=groups,dc=lobo99,dc=info
cn: grupoldapsudo
gidnumber: 1001
objectclass: posixGroup
objectclass: top
ldapadd -x -w ******** -D "cn=admin,dc=lobo99,dc=info" -f grupoldapsudo.ldif

Para añadir usuarios:

dn: cn=grupoldapsudo,ou=groups,dc=lobo99,dc=info
changetype: modify
add: memberuid
memberuid: jur
ldapmodify -x -w ******** -D "cn=admin,dc=lobo99,dc=info" -f grupoldapsudo_add.ldif

En el cliente, instalar el paquete:

apt-get install sudo-ldap

Crear el fichero:

/etc/sudoers.d/ldap
%grupoldapsudo  ALL=(ALL:ALL) ALL