Está en la página 1de 6

Instalacin y Configuracin del Servidor OpenLDAP

##########################################################################
LDAP.
----------------------------------------------Un servidor es un servidor de estructura de datos jerrquico que permite guardar o
bjetos de la red.
ej: usuarios, grupos, contactos, mquinas, servicios, usuarios de dominio windows,
etc
Para construir una base de datos necesitamos dos elementos.
- Schemas
- rbol ldap con los datos
a) Schemas: Definen los tipos de datos (metadata) que y atributos que se podrn us
ar en los nodos
b) rbol LDAP: es la estructura de datos que guarda los registros de la base de da
tos LDAP
Se contruye a partir de un nodo raiz denominado Suffix.
Nodo Raiz
----------------------------------------------Es el nodo principal del rbol LDAP puede ser definido a libre albedro como dominio
o razn social
Ej
Dominio : empresa.com.pe
Nodo raz: dc=empresa,dc=com,dc=pe
Razn Social: empresa sac
Nodo raz: dc=empresa,dc=sac
Ejemplo de rbol LDAP
-----------------------| dc=perulinux,dc=pe |
-----------------------______________| |
|
|
------------|
|
|
------------| cn=admin |
------------------- -----------------------|ou=people | |ou=groups | | ou=contacts |
-------------------- ------------|
|
|
|
|
|
|__ --------------------|uid=tuxito |
|cn=tuxito |
---------------------Suffix

Nodo raiz: dc=perulinux,dc=pe


Unidad organizacional(ou): ou=people,dc=perulinux,dc=pe
Nodo que identifica un objeto de tipo usuario: uid=tuxito,ou=people,dc=perulinux
,dc=pe
Administrador del ldap: cn=admin,dc=perulinux,dc=pe
Atributos de un nodo:
---------------------------uid:tuxito

UserId:1000
name:Tuxito
email:tuxito@hacker.com
Ruta o path de un nodo
------------------------------Ejemplo: usuario tuxito
uid=tuxito,ou=people,dc=perulinux,dc=pe
Instalacin
-----------$> yum -y install openldap openldap-clients openldap-servers nss-pam-ldapd \
authconfig authconfig-gtk migrationtools
Generacin del certificado TLS
-----------------------------$> cd /etc/pki/tls/certs
$> rm -f slapd.pem
$> hostnamectl set-hostname server.adiestra.pe
$> su $> cd /etc/pki/tls/certs
$> make slapd.pem
Nos solicitar los siguientes datos
-

Cdigo de dos letras para el pas.


Estado o provincia.
Ciudad.
Nombre de la empresa o razn social.
Unidad o seccin.
Nombre del anfitrin.
Direccin de correo.

Ej:
Country Name (2 letter code) [XX]:PE
State or Province Name (full name) []:Lima
Locality Name (eg, city) [Default City]:Lima
Organization Name (eg, company) [Default Company Ltd]:PeruLinux
Organizational Unit Name (eg, section) []:Sistemas
Common Name (eg, your name or your server's hostname) []:server.adiestra.pe
Email Address []:clever@adiestra.pe
$> chown root:ldap /etc/pki/tls/certs/slapd.pem
$> chmod 640 /etc/pki/tls/certs/slapd.pem
Copiando el archivo de configuracion de la base de datos LDAP al directorio de l
a data
$> cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Creando una clave para el superusuario de LDAP, generar una clave SSHA, lo copiam
os para usarlo
en el archivo de configuracin de LDAP
$> slappasswd
clave: alumno
{SSHA}/CckIL5f5kKLA38LuEHDD57rcfTVGmwc

Configurar el Servidor OpenLDAP


--------------------------------$> vim /etc/openldap/slapd.conf
-------------------------------------------------------------------------------include
/etc/openldap/schema/corba.schema
include
/etc/openldap/schema/core.schema
include
/etc/openldap/schema/cosine.schema
include
/etc/openldap/schema/duaconf.schema
include
/etc/openldap/schema/dyngroup.schema
include
/etc/openldap/schema/inetorgperson.schema
include
/etc/openldap/schema/java.schema
include
/etc/openldap/schema/misc.schema
include
/etc/openldap/schema/nis.schema
include
/etc/openldap/schema/openldap.schema
include
/etc/openldap/schema/ppolicy.schema
include
/etc/openldap/schema/collective.schema
TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
allow bind_v2
pidfile
argsfile

/var/run/openldap/slapd.pid
/var/run/openldap/slapd.args

database
bdb
suffix
"dc=perulinux,dc=pe"
rootdn
"cn=admin,dc=perulinux,dc=pe"
# pegar la clave copiada anteriormente
rootpw
{SSHA}/CckIL5f5kKLA38LuEHDD57rcfTVGmwc
directory
/var/lib/ldap
# Indices a mantener para esta base de
index objectClass
index ou,cn,mail,surname,givenname
index uidNumber,gidNumber,loginShell
index uid,memberUid
index nisMapName,nisMapEntry

datos
eq,pres
eq,pres,sub
eq,pres
eq,pres,sub
eq,pres,sub

# Habilitar supervisin
database monitor
# Dando acceso solo al usuario admin a supervisar la base de datos LDAP
access to *
by dn.exact="cn=admin,dc=perulinux,dc=pe" read
by * none
-----------------------------------------------------------------------------------$> chown ldap:ldap /etc/openldap/slapd.conf
$> chmod 600 /etc/openldap/slapd.conf
$> chown -R ldap:ldap /var/lib/ldap
Borrar todos los archivos extras de configuracin que vienen en el rpm
$> rm -rf /etc/openldap/slapd.d/*
Generando la nueva configuracin de LDAP
$> slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

$> chown -R ldap:ldap /etc/openldap/slapd.d


$> chown -R ldap:ldap /var/lib/ldap
$> systemctl start slapd
$> systemctl status slapd
$> systemctl enable slapd
Configurando el servidor LDAP para autenticacin centralizada de red
-------------------------------------------------------------------$> vim /usr/share/migrationtools/migrate_common.ph Modificamos por la lnea 56
else {
$NAMINGCONTEXT{'aliases'}
$NAMINGCONTEXT{'fstab'}
58:
$NAMINGCONTEXT{'passwd'}
--------- modificar
$NAMINGCONTEXT{'netgroup_byuser'}
$NAMINGCONTEXT{'netgroup_byhost'}
61:
$NAMINGCONTEXT{'group'}
--------- modificar
$NAMINGCONTEXT{'netgroup'}
63:
$NAMINGCONTEXT{'hosts'}
--------- modificar
$NAMINGCONTEXT{'networks'}
$NAMINGCONTEXT{'protocols'}
$NAMINGCONTEXT{'rpc'}
$NAMINGCONTEXT{'services'}
}

= "ou=Aliases";
= "ou=Mounts";
= "ou=people";

<

= "nisMapName=netgroup.byuser";
= "nisMapName=netgroup.byhost";
= "ou=groups";

<

= "ou=Netgroup";
= "ou=machines";

<

=
=
=
=

"ou=Networks";
"ou=Protocols";
"ou=Rpc";
"ou=Services";

# Default DNS domain


$DEFAULT_MAIL_DOMAIN = "perulinux.pe";

<------- modificar

# Default base
$DEFAULT_BASE = "dc=perulinux,dc=pe";

<------- modificar

Creamos ahora los archivos LDIF para generar el rbol LDAP


---------------------------------------------------------$> mkdir /etc/openldap/ldif
$> cd /etc/openldap/ldif
$> /usr/share/migrationtools/migrate_base.pl > base.ldif
$> /usr/share/migrationtools/migrate_group.pl /etc/group group.ldif
$> /usr/share/migrationtools/migrate_passwd.pl /etc/passwd passwd.ldif
Generamos ahora el rbol LDAP importando los archivos ldif
---------------------------------------------------------$> ldapadd -x -W -D "cn=admin,dc=perulinux,dc=pe" -h localhost -f base.ldif
$> ldapadd -x -W -D "cn=admin,dc=perulinux,dc=pe" -h localhost -f group.ldif
$> ldapadd -x -W -D "cn=admin,dc=perulinux,dc=pe" -h localhost -f passwd.ldif
Hacemos la comprobacin del servidor LDAP haciendo una consulta general
$> ldapsearch -x -b "dc=perulinux,dc=pe" "(objectclass=*)"
Consultamos por un usuario del sistema
$> ldapsearch -x -b "uid=root,ou=people,dc=perulinux,dc=pe"
Consideraciones de Iptables
--------------------------------------------------------------------------------

Si tenemos el firewall habilitado debemos permitir las conexiones al


puerto 389 en el protocolo TCP
Agregar estas al reglas al script firewall-bastion
-----------------------------------------------------------------------iptables -A INPUT -p tcp --dport 389 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 389 -m state --state ESTABLISHED,RELATED -j AC
CEPT
------------------------------------------------------------------------Vamos a compartir el certificado; en el servidor, por http para que pueda ser de
scargado por los clientes
Ejecutar esto en el servidor virtual
$> yum -y install httpd
$> systemctl start httpd
$> systemctl enable httpd
$> cd /etc/ssl/certs
$> cp slapd.pem /var/www/html
$> chmod 755 /var/www/html/slapd.pem
Agregar estas al reglas al script firewall-bastion
-----------------------------------------------------------------------iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACC
EPT
------------------------------------------------------------------------Configuracin del Cliente LDAP (ejecutar en mquina anfitrin)
-------------------------------------------------------------------------------------Los clientes deben tener los paquetes de LDAP y la utilidad de configuracin
Ejecutar en el host anfitrion
$> yum -y install openldap openldap-clients nss-pam-ldapd authconfig authconfiggtk
Registramos el nombre de host server.adiestra.pe en el /etc/hosts o en un servid
or DNS
$> vim /etc/hosts (agregar al final)
.
.
.
.
# ip del servidor LDAP
192.168.130.Y server.adiestra.pe
Para configurar el cliente en Distribuciones como CentOS o Fedora
ejecutamos
$> authconfig-gtk
Nos sale el dilogo
Base de Datos de Cuentas de Usuario: LDAP
DN de Base de bsqueda: dc=perulinux,dc=pe
Servidor LDAP
ldap://server.adiestra.pe
st del servidor virtual

---> poner el nombre de ho

Marcar Utilizar TLS para encriptar conexiones


Dar click a Descargar el certificado CA
url del certificado
http://server.adiestra.pe/slapd.pem
Configuracin de la autenticacin

Contrasea LDAP

Opciones Avanzadas
-------------------------Marcar
Habilitar el soporte de Huella Digital
Algoritmo Hasing de contraseas:
SHA512
Marcar Crear los directorios home (principales) al ingresar la primera vez
Prueba del cliente y servidor
---------------------------------------------------------En el servidor (mquina virtual) creamos un nuevo usuario con un archivo ldif
$> vim /etc/openldap/ldif/pepito.ldif
dn: uid=pepito,ou=people,dc=perulinux,dc=pe
uid: pepito
cn: pepito
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$6Jl/Gole3GezXiur$0UtCZEUQ/nXcThK3.QfpWCCdfWFMdwNCw92zHM9
avCDb/P7cWvd9VLdTxsosWw1KGGHnqiC0JeZSf/9x.2DQR1
shadowLastChange: 14955
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1005
gidNumber: 100
homeDirectory: /home/pepito
$> cd /etc/openldap/ldif
$> ldapadd -x -W -D "cn=admin,dc=perulinux,dc=pe" -h localhost -f pepito.ldif
Ahora en el host afitrion ir a una consola (ctrl + alt + f4)
y loguearse como
usuario: pepito
clave: alumno
Probar la autenticacin desde el cliente
$> ssh pepito@localhost
clave:alumno

También podría gustarte