Saltar a contenido

156. OpenLDAP. Servicio y utilidaddes LDAP

156.1 Instalación de openLdap Ubuntu

Según documentación oficial

Instalamos

sudo apt install slapd ldap-utils

156.2 Configurar slapd

Podemos cambiar la base de DIT con

sudo dpkg-reconfigure slapd
y dar los valores iniciales del dominio info.etg

156.2.1 DIT por defecto

slapd está preparado para ser configurado por el propio servicio sin necesidad de cambiar el fichero de configuración y reinicializar el servicio.
Esta base de configuración consiste en un conjunto de ficheros .ldif en el diectorio /etc/ldap/slapd.d . Estos ficheros no se deben editar. Esta configuración se llama metodo slapd-config o método RTC (REAL TIME CONF) o también método cn=config (se puede seguir usando la modificación de slapd.conf).

Inmediatamente después de la instalación tenemos dos bases de datos o "sufijos", uno para los datos dc=info,dc=etg y otro para la configuración cn=config. Para realizar cambios en cada uno de ellos necesitamos credenciales y métodos distintos.
* dc=info,dc=etg. el administrador es cn=admin,dc=info,dc=etg y la clave es la seleccionada durante la instalación. * cn=config. Para los cambios se usa el sufijo especial DN gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth. Lo que significa que es como ve al usuario local root el directorio cuando usa autentificación SASL EXTERNAL usando el trasporte ldapi:// a través del socket unix /run/slapd/ldapi. En resumen, solamente el root local puede cambiar cn=config.

El DIT de configuración a través del protocolo ldap:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}mdb,cn=config
Donde:
cn=config: global settings

cn=module{0},cn=config: a dynamically loaded module

cn=schema,cn=config: contains hard-coded system-level schema

cn={0}core,cn=schema,cn=config: the hard-coded core schema

cn={1}cosine,cn=schema,cn=config: the cosine schema

cn={2}nis,cn=schema,cn=config: the nis schema

cn={3}inetorgperson,cn=schema,cn=config: the inetorgperson schema

olcDatabase={-1}frontend,cn=config: frontend database, default settings for other databases

olcDatabase={0}config,cn=config: slapd configuration database (cn=config)

olcDatabase={1}mdb,cn=config: your database instance (dc=example,dc=com)

Y para DIT dc=info,dc=etg

$ ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com dn

dn: dc=example,dc=com

dn: cn=admin,dc=example,dc=com

observar que se utilizan dos métodos de acceso distintos:

  • -x: this is called a simple bind, and is essentially a plain text authentication. Since no binddn was provided (via -D), this became an anonymous bind. Without -x, the default is to use a SASL bind.
  • -Y EXTERNAL: this is using a SASL bind (no -x was provided), and further specifying the EXTERNAL type. Together with -H ldapi:///, this uses a local unix socket connection

(seguir en doc oficial)

156.2.2 Llenando el Directorio.

Vamos a añadir * un nodo llamado People * a nodo Groups * un grupo miners * un usuario john

(seguir con doc oficial)

156.2.3 Cambiando la configuración

156.2.3.1 Añadir un indice

Use ldapmodify to add an “Index” to your {1}mdb,cn=config database definition (for dc=example,dc=com). Create a file, call it uid_index.ldif, with the following contents:

dn: olcDatabase={1}mdb,cn=config
add: olcDbIndex
olcDbIndex: mail eq,sub
Y con el comando:
 sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f uid_index.ldif

modifying entry "olcDatabase={1}mdb,cn=config"
Y configurar el cambio con:
 sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \
cn=config '(olcDatabase={1}mdb)' olcDbIndex

dn: olcDatabase={1}mdb,cn=config
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbIndex: mail eq,sub

156.2.4 Cambiar la password de rootDN

156.2.5 Añadir un esquema

Los** esquemas solamente se puede añadir a cn=config en formato LDIF. Se pueden encontrar esquemas sin convertir a LDIF en /etc/ldap/schema

Por ejemplo para añadir la política de password se añade ppolicy.ldif (que existe convertido)

$ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
adding new entry "cn=ppolicy,cn=schema,cn=config"

156.2.6 Logging

`

156.3 Control de acceso

156.4 Usar TLS

157. Enlaces