<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Instalaci%C3%B3n_do_servidor_LDAP_en_Ubuntu_Server</id>
	<title>Instalación do servidor LDAP en Ubuntu Server - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Instalaci%C3%B3n_do_servidor_LDAP_en_Ubuntu_Server"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Instalaci%C3%B3n_do_servidor_LDAP_en_Ubuntu_Server&amp;action=history"/>
	<updated>2026-10-21T12:03:11Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Instalaci%C3%B3n_do_servidor_LDAP_en_Ubuntu_Server&amp;diff=21103&amp;oldid=prev</id>
		<title>Antonio: /* Definir as directivas básicas de configuración do servidor LDAP */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Instalaci%C3%B3n_do_servidor_LDAP_en_Ubuntu_Server&amp;diff=21103&amp;oldid=prev"/>
		<updated>2011-03-02T15:44:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Definir as directivas básicas de configuración do servidor LDAP&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Instalar os paquetes necesarios ==&lt;br /&gt;
En primeiro lugar, teremos que instalar no servidor os paquetes necesarios para a execución do servidor LDAP (&amp;#039;&amp;#039;slapd&amp;#039;&amp;#039;) e as utilidades básicas para manexar a súa información:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install slapd ldap-utils&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agregar os esquemas básicos ==&lt;br /&gt;
&lt;br /&gt;
Por defecto, o paquete &amp;#039;&amp;#039;slapd&amp;#039;&amp;#039; de Ubuntu Server só inclúe na configuración do LDAP o esquema básico &amp;#039;&amp;#039;core.schema&amp;#039;&amp;#039;. Co seguinte comando engadimos unha serie de esquemas básicos almacenados en ficheiros LDIF na carpeta &amp;#039;&amp;#039;/etc/ldap/schema&amp;#039;&amp;#039;:&lt;br /&gt;
 ls /etc/ldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}&lt;br /&gt;
&lt;br /&gt;
Se observamos a saída da execución do comando, veremos que se produce un erro ao intentar engadir o esquema &amp;#039;&amp;#039;core&amp;#039;&amp;#039;, debido a que xa está engadido:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SASL/EXTERNAL authentication started&lt;br /&gt;
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&lt;br /&gt;
SASL SSF: 0&lt;br /&gt;
adding new entry &amp;quot;cn=core,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.5.4.2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O resto dos esquemas serán engadidos con éxito, como se pode ver a continuación no caso do esquema &amp;#039;&amp;#039;openldap&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SASL/EXTERNAL authentication started&lt;br /&gt;
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&lt;br /&gt;
SASL SSF: 0&lt;br /&gt;
adding new entry &amp;quot;cn=openldap,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir as directivas básicas de configuración do servidor LDAP ==&lt;br /&gt;
&lt;br /&gt;
Creamos un ficheiro LDIF coa información de configuración básica do LDAP, para crear a base de datos &amp;#039;&amp;#039;cn=config&amp;#039;&amp;#039; inicial. &lt;br /&gt;
A continuación móstrase o contido deste ficheiro que crea o directorio base &amp;#039;&amp;#039;dc=iescalquera,dc=local&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Carga dos modulos necesarios para o almacenamento da base de datos&lt;br /&gt;
dn: cn=module,cn=config&lt;br /&gt;
objectclass: olcModuleList&lt;br /&gt;
cn: module&lt;br /&gt;
olcModulepath: /usr/lib/ldap&lt;br /&gt;
olcModuleload: back_hdb&lt;br /&gt;
&lt;br /&gt;
# Creacion do directorio da base de datos&lt;br /&gt;
dn: olcDatabase=hdb,cn=config&lt;br /&gt;
objectClass: olcDatabaseConfig&lt;br /&gt;
objectClass: olcHdbConfig&lt;br /&gt;
olcDatabase: {1}hdb&lt;br /&gt;
# Directorio do sistema onde se almacena a base de datos&lt;br /&gt;
olcDbDirectory: /var/lib/ldap&lt;br /&gt;
# Nome do dominio (por exemplo iescalquera.local)&lt;br /&gt;
olcSuffix: dc=iescalquera,dc=local&lt;br /&gt;
# Administrador do LDAP&lt;br /&gt;
olcRootDN: cn=admin,dc=iescalquera,dc=local&lt;br /&gt;
olcRootPW: admin&lt;br /&gt;
# Parametros para optimizar o rendemento&lt;br /&gt;
olcDbConfig: set_cachesize 0 2097152 0&lt;br /&gt;
olcDbConfig: set_lk_max_objects 1500&lt;br /&gt;
olcDbConfig: set_lk_max_locks 1500&lt;br /&gt;
olcDbConfig: set_lk_max_lockers 1500&lt;br /&gt;
olcLastMod: TRUE&lt;br /&gt;
olcDbCheckpoint: 512 30&lt;br /&gt;
# Indices na base de datos para optimizar as busquedas&lt;br /&gt;
olcDbIndex: uid pres,eq&lt;br /&gt;
olcDbIndex: cn,sn,mail pres,eq,approx,sub&lt;br /&gt;
olcDbIndex: objectClass eq&lt;br /&gt;
# Un usuario debe poder cambiar o seu contrasinal, calquera debe poder autentificarse contra ela&lt;br /&gt;
# O administrador debe poder cambiar o contrasinal de calquera usuario&lt;br /&gt;
olcAccess: to attrs=userPassword by self write by anonymous auth by dn=&amp;quot;cn=admin,dc=iescalquera,dc=local&amp;quot; write by * none&lt;br /&gt;
olcAccess: to attrs=shadowLastChange by self write by dn=&amp;quot;cn=admin,dc=iescalquera,dc=local&amp;quot; write by * read&lt;br /&gt;
# So o administrador pode modificar os datos dos usuarios ou o propio usuario&lt;br /&gt;
olcAccess: to * by self write by dn=&amp;quot;cn=admin,dc=iescalquera,dc=local&amp;quot; write by * read&lt;br /&gt;
olcAccess: to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
&lt;br /&gt;
# Modificacions necesarias para poder acceder ao LDAP para editar a rama cn=config &lt;br /&gt;
# Neste caso, ao usuario cn=admin,cn=config asignamoslle o contrasinal 1234&lt;br /&gt;
dn: olcDatabase={-1}frontend,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
delete: olcAccess&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={0}config,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcRootDN&lt;br /&gt;
olcRootDN: cn=admin,cn=config&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={0}config,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
add: olcRootPW&lt;br /&gt;
olcRootPW: 1234&lt;br /&gt;
&lt;br /&gt;
dn: olcDatabase={0}config,cn=config&lt;br /&gt;
changetype: modify&lt;br /&gt;
delete: olcAccess&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota&amp;#039;&amp;#039;&amp;#039;: Cos parámetros deste ficheiro imos almacenar os contrasinais de administración do LDAP en claro no propio directorio (neste caso se puxeron os contrasinais &amp;#039;&amp;#039;admin&amp;#039;&amp;#039; e &amp;#039;&amp;#039;1234&amp;#039;&amp;#039;). En lugar de poñer directamente os contrasinais en claro, poden poñerse tamén (e sería máis seguro) os &amp;#039;&amp;#039;hashes&amp;#039;&amp;#039; destes contrasinais, que se poden obter usando o comando &amp;#039;&amp;#039;slappasswd&amp;#039;&amp;#039; (Por exemplo, o comando &amp;#039;&amp;#039;slappasswd -h {SHA}&amp;#039;&amp;#039; devolveranos o hash que teriamos que introducir para o contrasinal que lle indiquemos usando o algoritmo [http://es.wikipedia.org/wiki/Secure_Hash_Algorithm SHA]. O texto que nos devolva o comando, como por exemplo &amp;#039;&amp;#039;{SHA}cRDtpNCeBiql5KOQsKVyrA0sAiA=&amp;#039;&amp;#039; sería o que introduciríamos en lugar dos contrasinais en claro).&lt;br /&gt;
&lt;br /&gt;
Supoñendo que o ficheiro está gardado co nome &amp;#039;&amp;#039;db.ldif&amp;#039;&amp;#039;, engadimos estes datos no directorio co seguinte comando:&lt;br /&gt;
 sudo ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif&lt;br /&gt;
&lt;br /&gt;
== Agregar a información básica do directorio  ==&lt;br /&gt;
&lt;br /&gt;
Imos inicializar o directorio coa rama principal &amp;#039;&amp;#039;dc=iescalquera,dc=local&amp;#039;&amp;#039; e dúas subramas para almacenar os usuarios (&amp;#039;&amp;#039;ou=usuarios,dc=iescalquera,dc=local&amp;#039;&amp;#039;) e os grupos (&amp;#039;&amp;#039;ou=grupos,dc=iescalquera,dc=local&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Engadiremos tamén no directorio un usuario (&amp;#039;&amp;#039;alfredo&amp;#039;&amp;#039;, con contrasinal &amp;#039;&amp;#039;abc123.&amp;#039;&amp;#039;) e un grupo (&amp;#039;&amp;#039;profes&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
O contido do ficheiro LDIF será o seguinte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Creamos os obxecto raiz do dominio&lt;br /&gt;
dn: dc=iescalquera,dc=local&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectclass: organization&lt;br /&gt;
o: iescalquera.local&lt;br /&gt;
dc: iescalquera&lt;br /&gt;
description:  Raiz de dominio&lt;br /&gt;
&lt;br /&gt;
# Creamos a rama na que colocaremos os usuarios&lt;br /&gt;
dn: ou=usuarios,dc=iescalquera,dc=local&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: usuarios&lt;br /&gt;
&lt;br /&gt;
# Creamos a rama na que colocaremos os grupos&lt;br /&gt;
dn: ou=grupos,dc=iescalquera,dc=local&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: grupos&lt;br /&gt;
&lt;br /&gt;
# Creamos un usuario&lt;br /&gt;
dn: uid=alfredo,ou=usuarios,dc=iescalquera,dc=local&lt;br /&gt;
objectClass: inetOrgPerson&lt;br /&gt;
objectClass: posixAccount&lt;br /&gt;
objectClass: shadowAccount&lt;br /&gt;
uid: alfredo&lt;br /&gt;
sn: perez&lt;br /&gt;
givenName: Alfredo&lt;br /&gt;
cn: Alfredo Perez&lt;br /&gt;
displayName: Alfredo Perez&lt;br /&gt;
uidNumber: 10000&lt;br /&gt;
gidNumber: 10000&lt;br /&gt;
userPassword: abc123.&lt;br /&gt;
gecos: Alfredo Perez&lt;br /&gt;
loginShell: /bin/bash&lt;br /&gt;
homeDirectory: /home/alfredo&lt;br /&gt;
shadowExpire: -1&lt;br /&gt;
shadowFlag: 0&lt;br /&gt;
shadowWarning: 7&lt;br /&gt;
shadowMin: 8&lt;br /&gt;
shadowMax: 999999&lt;br /&gt;
shadowLastChange: 10877&lt;br /&gt;
mail: alfredo.perez@iescalquera.local&lt;br /&gt;
initials: AP&lt;br /&gt;
&lt;br /&gt;
# Creamos un grupo&lt;br /&gt;
dn: cn=profes,ou=grupos,dc=iescalquera,dc=local&lt;br /&gt;
objectClass: posixGroup&lt;br /&gt;
cn: profes&lt;br /&gt;
gidNumber: 10000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Almacenamos esta información no ficheiro &amp;#039;&amp;#039;init.ldif&amp;#039;&amp;#039; e imos introducila no LDAP conectándonos coas credencias do usuario administrador creado no ficheiro &amp;#039;&amp;#039;db.ldif&amp;#039;&amp;#039; (usuario &amp;#039;&amp;#039;cn=admin,dc=iescalquera,dc=local&amp;#039;&amp;#039;, contrasinal &amp;#039;&amp;#039;admin&amp;#039;&amp;#039;):&lt;br /&gt;
 sudo ldapadd -x -D cn=admin,dc=iescalquera,dc=local -w admin -f init.ldif&lt;br /&gt;
&lt;br /&gt;
== Probar o servidor LDAP ==&lt;br /&gt;
&lt;br /&gt;
Para comprobar o resultado, podemos realizar unha lectura do contido do directorio co seguinte comando:&lt;br /&gt;
 ldapsearch -x -H ldap://localhost -b dc=iescalquera,dc=local&lt;br /&gt;
&lt;br /&gt;
Este comando mostraranos pola pantalla todo contido do da rama &amp;#039;&amp;#039;dc=iescalquera,dc=local&amp;#039;&amp;#039;, que incluirá as ou de &amp;#039;&amp;#039;usuarios&amp;#039;&amp;#039; e &amp;#039;&amp;#039;grupos&amp;#039;&amp;#039; o usuario &amp;#039;&amp;#039;alfredo&amp;#039;&amp;#039; e o grupo &amp;#039;&amp;#039;profes&amp;#039;&amp;#039;. Móstrase a continuación un extracto da saída no que se visualiza a información no directorio do grupo &amp;#039;&amp;#039;profes&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# profes, grupos, iescalquera.local&lt;br /&gt;
dn: cn=profes,ou=grupos,dc=iescalquera,dc=local&lt;br /&gt;
objectClass: posixGroup&lt;br /&gt;
cn: profes&lt;br /&gt;
gidNumber: 10000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[Usuario:antonio| Antonio de Andrés Lema]] e [[Usuario:Carrion| Carlos Carrión Álvarez]]&lt;/div&gt;</summary>
		<author><name>Antonio</name></author>
	</entry>
</feed>