Instalación y Configuración de LDAP Server
A Nivel de Servidor:
Instalar gpm: apt-get install gpm
Paso1: Instalar Paquete de LDAP
# apt-get install slapd ldap-utils phpldapadmin
Pedirá una contraseña para el LDAP Admin, usaremos master
Paso2:
Probamos el correcto funcionamiento:
# ldapsearch –LLL –Y EXTERNAL –H ldapi:/// -b cn=config dn
RESPUESTA ESPERADA
SASL/EXTERNAL authentication started
SASL username:
gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
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: olcBackend={0}hdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
-Se Procederá a reconfigurar el SLAPD: modificar el motor de la base
de datos que viene en mdb por hdb.
#dpkg-reconfigure slapd
Las configuraciones se dejarán a como se muestran en las imágenes:
Secuencia de Imágenes:
1-Desea Omitir (No)
2- Nombre de Dominio que se agrega al LDAP:
3-Nombre de la Organización.
4-Ingreso de la Contraseña de Administrador: se ingresará la
contraseña del paso 1 ( master ) , pedirá confirmación, se agregará la
misma.
5-Configurar el motor de la base de datos:
6-Sí
7-Sí
8-No
Paso3: Hay que generar la clave y el hash para el usuario que
administrará la DB, el hash hay que guardarlo ya que es único
#slappasswd
Contraseña: gt01ldap
Confirmar contraseña:
{SSHA}------------------------------------
Paso4: Ejecutar:
# ldapmodify –Y EXTERNAL –H ldapi:///
Agregamos la contraseña a la DB, para poder empezar a configurar el
servicio de directorio.
Se quedará “pegado”, en realidad está esperando la siguiente
sentencia: el hash.
dn: olcDatabase={0}config,cn=config
add: olcRootPW
olcRootPW: {SSHA}--------------------------
** PRESIONAMOS Enter y luego ´Ctrl + D´
En este paso se recomienda usar ya sea el putty o instalar el paquete de gpm
con: apt-get install gpm , con este paquete se permitirá la navegación con el
mouse , esto para copiar el SSHA de una forma mas eficiente.
Paso5: Creamos nuestro servicio de directorio (DB), esto mediante
una estructura de fichero *.ldif, los cuales son los encargados de la
administración y configuración de nuestro LDAP.
Para este fichero de configuración el “- “indica el final de una sección.
dc=diemonle , se cambiara según su dominio.
En este paso se recomienda usar la herramienta putty.
# nano /root/config.ldif
dn: olcDatabase={1}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=diemonle,dc=com - replace: olcRootDN olcRootDN: cn=admin,dc=diemonle,dc=com - replace: olcAccess olcAccess: to attrs=userPassword by dn="cn=admin,dc=diemonle,dc=com" write by anonymous auth by self write by * none olcAccess: to attrs=shadowLastChange by self write by * read olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=diemonle,dc=com" write by * read
Paso6: Editamos nuestra DB a partir de nuestro fichero config.ldif
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/config.ldif
RESPUESTA ESPERADA
Paso7: Revisar nuevamente el funcionamiento:
#ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W
olcDatabase={1}hdb
Enter LDAP Password: gt01ldap
Respuesta Esperada:
Paso8: Crear el fichero para el nuevo directorio
# nano /root/base.ldif
#dn: dc=diemonle,dc=com
#objectClass: top
#objectClass: dcObject
#objectclass: organization
#o: DIEMONLE
#dc: DIEMONLE
#description: Servidor LDAP de DIEMONLE.com
dn: ou=people,dc=diemonle,dc=com
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=diemonle,dc=com
objectClass: organizationalUnit
ou: groups
dc= se agrega el nombre de su dominio.
Paso9: Comprobación, Ejecutar:
# ldapadd -x -D cn=admin,dc=diemonle,dc=com -W -f /root/base.ldif
Enter LDAP Password: master
Agregamos el nuevo directorio a partir del fichero base.ldif
RESPUESTA ESPERADA
adding new entry "ou=people,dc=diemonle,dc=com"
adding new entry "ou=groups,dc=diemonle,dc=com"
Paso10: Crear un fichero automatizado para obtener el fichero ldapuser.ldif
con la información de los usuarios del servidor que tengan un UID de 4 dígitos.
#nano ldapuser.sh
SUFFIX='dc=diemonle,dc=com' LDIF='ldapuser.ldif' echo -n > $LDIF for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd | sed -e "s/ /%/g"` do UID1=`echo $line | cut -d: -f1` NAME=`echo $line | cut -d: -f5 | cut -d, -f1` if [ ! "$NAME" ] then NAME=$UID1 else NAME=`echo $NAME | sed -e "s/%/ /g"` fi SN=`echo $NAME | awk '{print $2}'` if [ ! "$SN" ] then SN=$NAME fi GIVEN=`echo $NAME | awk '{print $1}'` UID2=`echo $line | cut -d: -f3` GID=`echo $line | cut -d: -f4` PASS=`grep $UID1: /etc/shadow | cut -d: -f2` SHELL=`echo $line | cut -d: -f7`
HOME=`echo $line | cut -d: -f6` EXPIRE=`passwd -S $UID1 | awk '{print $7}'` FLAG=`grep $UID1: /etc/shadow | cut -d: -f9` if [ ! "$FLAG" ] then FLAG="0" fi WARN=`passwd -S $UID1 | awk '{print $6}'` MIN=`passwd -S $UID1 | awk '{print $4}'` MAX=`passwd -S $UID1 | awk '{print $5}'` LAST=`grep $UID1: /etc/shadow | cut -d: -f3` echo "dn: uid=$UID1,ou=people,$SUFFIX" >> $LDIF echo "objectClass: inetOrgPerson" >> $LDIF echo "objectClass: posixAccount" >> $LDIF echo "objectClass: shadowAccount" >> $LDIF echo "uid: $UID1" >> $LDIF echo "sn: $SN" >> $LDIF echo "givenName: $GIVEN" >> $LDIF echo "cn: $NAME" >> $LDIF echo "displayName: $NAME" >> $LDIF echo "uidNumber: $UID2" >> $LDIF echo "gidNumber: $GID" >> $LDIF echo "userPassword: {crypt}$PASS" >> $LDIF echo "gecos: $NAME" >> $LDIF echo "loginShell: $SHELL" >> $LDIF echo "homeDirectory: $HOME" >> $LDIF echo "shadowExpire: $EXPIRE" >> $LDIF echo "shadowFlag: $FLAG" >> $LDIF echo "shadowWarning: $WARN" >> $LDIF echo "shadowMin: $MIN" >> $LDIF echo "shadowMax: $MAX" >> $LDIF echo "shadowLastChange: $LAST" >> $LDIF echo >> $LDIF done
Paso11: Ejecutar el Script del paso 10:
Agregamos los usuarios a nuestra DB del servicio de directorio.
#sh ldapuser.sh
Este script creará el fichero ldapuser.ldif
Luego Comprobar con:
#ldapadd -x -D cn=admin,dc=diemonle,dc=com -W -f /root/ldapuser.ldif
Enter LDAP Password: master
Respuesta Esperada: usuarios agregados
Paso12: Crear un fichero automatizado para obtener el fichero ldapgroup.ldif
con la información de los grupos del servidor que tengan un GID de 4 dígitos.
#nano ldapgroup.sh
#!/bin/bash
SUFFIX='dc=diemonle,dc=com'
LDIF='ldapgroup.ldif'
echo -n > $LDIF
for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/group`
do
CN=`echo $line | cut -d: -f1`
GID=`echo $line | cut -d: -f3`
echo "dn: cn=$CN,ou=groups,$SUFFIX" >> $LDIF
echo "objectClass: posixGroup" >> $LDIF
echo "cn: $CN" >> $LDIF
echo "gidNumber: $GID" >> $LDIF
users=`echo $line | cut -d: -f4 | sed "s/,/ /g"`
for user in ${users} ; do
echo "memberUid: ${user}" >> $LDIF
done
echo >> $LDIF done
Paso13: Ejecutar el Script del paso 12:
Agregamos los usuarios a nuestra DB del servicio de directorio.
#sh ldapgroup.sh
Este script creará el fichero ldapgroup.ldif
Luego Comprobar con:
#ldapadd -x -D cn=admin,dc=diemonle,dc=com -W -f /root/ldapgroup.ldif
Enter password: master
Respuesta Esperada:
A nivel de Cliente:
Paso1: Instalar los paquetes:
# apt-get –y install libnss-ldap libpam-ldap ldap-utils
Las configuraciones se dejarán a como se muestran en
las imágenes:
--Secuencia de Imágenes:
1-Dirección del Servidor LDAP:
2-Dominio:
3-Versión de LDAP:
4-Cuenta LDAP para root:
6-Contraseña para la cuenta LDAP de root: master
7-Aceptar
8-No
9-No
Paso2: Al igual que con el NIS le debemos indicar a nuestro
nsswitch.conf cual será nuestro orden de búsqueda para
autenticación de usuarios.
#nano /etc/nsswitch.conf
-Modificado:
*Se agregara dns en caso de que se trabaje con servidor de dominios
Paso3: Removemos los tokens de autenticación ya que no
implementamos LDAP/SSL
#nano /etc/pam.d/common-password
QUITAMOS “use_authtok” Y LA LINEA QUEDARA ASI
password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass
Paso5: NO reiniciar el cliente llámese el O.S
Paso 6: Ejecutar
#ldapsearch -x -W -D 'cn=admin,dc=diemonle,dc=com' 'objectClass=*'
Enter LDAP Password: master
En caso de algún error , como no se puede contactar con el servidor,
etc, hacerlo con este otro commando:
#ldapsearch -x -W –h IP_SERVIDOR ó HOSTNAME –p 389 -D
'cn=admin,dc=diemonle,dc=com' 'objectClass=*'
Enter LDAP Password: master
Respuesta Esperada:
Paso 7: Editar el fichero ldap.conf porque el wizard de instalación no
escribió en él
#nano /etc/ldap/ldap.conf
AGREGAMOS O MODIFICAMOS
• BASE dc=diemonle,dc=com
• URI ldap://ip_servidor
-Modificado: Descomentar ,agregar dominio y dirección del Servidor
LDAP.
-Paso 8: reboot
Ahora si podemos reiniciar y autenticarnos con un usuario de
LDAP, si tratamos de cambiar la contraseña se nos hace presente la
DB del LDAP para recibir la nueva contraseña.
-Paso 9: Logueare con Un Usuario del Servidor en el cliente:
Por ultimo para abandonar la sesión con logout se saldrá.
Top Related