07 Nov

Como configurar un servidor de seguridad #ldap den #ubuntu

Escenario: debian-servidor-fp –> IP: 192.168.200.250

Procedimiento a realizar como usuario root:

1) Actualiza el sistema operativo.
root@debian-servidor-fp:~# apt-get update
root@debian-servidor-fp:~# apt-get ugrade

2) Instala los paquetes necesarios para el funcionamiento de OpenLDAP. La instalación te pedirá una contraseña, como puedes ver a continuación la contraseña es ‘admin’
root@debian-servidor-fp:~# apt-get install slapd ldap-utils
Administrator password: admin
Confirm password: admin

3) Verifica que el servidor OpenLDAP está activo, por defecto,  en el puerto TCP 389
root@debian-servidor-fp:~# netstat -natp | grep 389
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      1775/slapd    
tcp6       0      0 :::389                  :::*                    LISTEN      1775/slapd    

4) Configura el servidor OpenLDAP. Los valores utilizados los puedes ver a continuación del comando
root@debian-servidor-fp:~# dpkg-reconfigure slapd
 Omit OpenLDAP config ? No
 Domain name : proyecto.com
 organisation name : proyecto.com
 admin password : admin
 admin password : admin
 database module to use : HDB
 delete database when purging the package ? No
 Move the previous database ? Si
 Allow LDAPv2 ? No

5) Continuación de la configuración del servidor OpenLDAP. Edita el archivo /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif y cambia todas las cadenas
‘dc=nodomain’ por ‘dc=proyecto,dc=com’, similar a como se expone a continuación:
root@debian-servidor-fp:~# cat /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif | sed -e “s/dc=nodomain/dc=proyecto,dc=com/g” > a.txt
root@debian-servidor-fp:~# mv a.txt /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif
root@debian-servidor-fp:~# nano /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif
dn: olcDatabase={1}hdb                                                                                                                                                                                  
objectClass: olcDatabaseConfig                                                                                                                                                                        
objectClass: olcHdbConfig                                                                                                                                                                                
olcDatabase: {1}hdb                                                                                                                                                                                      
olcDbDirectory: /var/lib/ldap                                                                                                                                                                            
olcSuffix: dc=proyecto,dc=com                                                                                                                                                                            
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn=”cn=admin,dc=proyecto,dc=com” write by * none
olcAccess: {1}to dn.base=”” by * read                                                                                                                                                                    
olcAccess: {2}to * by self write by dn=”cn=admin,dc=proyecto,dc=com” write by * read                                                                                                                    
olcLastMod: TRUE                                                                                                                                                                                        
olcRootDN: cn=admin,dc=proyecto,dc=com                                                                                                                                                                  
olcRootPW:: e1NTSEF9bThuNDVrOGZCRVhHVzlBYUpud0ZGYkI1QUtvanVsSnE=                                                                                                                                        
olcDbCheckpoint: 512 30                                                                                                                                                                                  
olcDbConfig: {0}set_cachesize 0 2097152 0                                                                                                                                                                
olcDbConfig: {1}set_lk_max_objects 1500                                                                                                                                                                  
olcDbConfig: {2}set_lk_max_locks 1500                                                                                                                                                                    
olcDbConfig: {3}set_lk_max_lockers 1500                                                                                                                                                                  
olcDbIndex: objectClass eq                                                                                                                                                                              
structuralObjectClass: olcHdbConfig
entryUUID: 1e80cb3e-1f44-1030-9fab-8b0ca1ca9cc2
creatorsName: cn=admin,cn=config
createTimestamp: 20110530200658Z
entryCSN: 20110530200658.710565Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20110530200658Z

7) Activa los cambios del servidor OpenLDAP
root@debian-servidor-fp:~# /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.

8) Testea el servidor OpenLDAP:
root@debian-servidor-fp:~# slaptest
hdb_db_open: database “dc=proyecto,dc=com”: unclean shutdown detected; attempting recovery.
hdb_db_open: database “dc=proyecto,dc=com”: recovery skipped in read-only mode. Run manual recovery if errors are encountered.
config file testing succeeded

9) Instala los paquetes necesarios para que Apache funcione con LDAP
root@debian-servidor-fp:~# apt-get install libapache2-mod-vhost-ldap

10) Habilita el módulo LDAP para Apache:
root@debian-servidor-fp:~# a2enmod authnz_ldap

11) Reinicia Apache:
root@debian-servidor-fp:~# /etc/init.d/apache2 restart

12) Crea la estructura básica del dominio LDAP mediante la ejecucion de un fichero basica.ldif
root@debian-servidor-fp:~# nano basica.ldif
# Objetos raiz del dominio
dn: dc=proyecto,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: proyecto.com
dc: proyecto
description:  Raiz de dominio

# Usuarios
dn: ou=usuarios,dc=proyecto,dc=com
objectClass: organizationalUnit
ou: usuarios

# Grupos
dn: ou=grupos,dc=proyecto,dc=com
objectClass: organizationalUnit
ou: grupos

root@debian-servidor-fp:~# ldapadd -x -D cn=admin,dc=proyecto,dc=com -w admin -f basica.ldif
adding new entry “dc=proyecto,dc=com”

adding new entry “ou=usuarios,dc=proyecto,dc=com”

adding new entry “ou=grupos,dc=proyecto,dc=com”

13) Añadiendo un usuario a LDAP de nombre pruebas y contraseña: 123456 mediante el archivo usuario.ldif:
root@debian-servidor-fp:~# cat usuario.ldif
# Usuario
dn: uid=pruebas,ou=usuarios,dc=proyecto,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: pruebas
sn: daw02
givenName: Pruebas
cn: Pruebas daw02
displayName: Pruebas DAW02
uidNumber: 10000
gidNumber: 10000
userPassword: 123456
gecos: Pruebas DAW02
loginShell: /bin/bash
homeDirectory: /home/pruebas
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: pruebas.daw02@proyecto.com
initials: PD

root@debian-servidor-fp:~# ldapadd -x -D cn=admin,dc=proyecto,dc=com -w admin -f usuario.ldif
adding new entry “uid=pruebas,ou=usuarios,dc=proyecto,dc=com”

14) Reiniciar LDAP y Apache
root@debian-servidor-fp:/etc/apache2/sites-available# /etc/init.d/slapd restart

root@debian-servidor-fp:/etc/apache2/sites-available# /etc/init.d/apache2 restart

Si quieres contactar conmigo deja un mensaje de G+ en el blog o puedes hacerlo desde mi página web Diseñowebensevilla.org.
Un saludo y espero que este blog te sea de ayuda.

Share this

Leave a reply