Bueno, este manual servira como referencia para aquellas personas interesadas en instalar OpenLdap sobre Debian.
Vesion de Debian: Debian Etch 4.0.
Software a usar:
Slapd (2.2.23-8).
Samba (3.0.14ª-3).
Phpldapadmin (0.9.5-3).
Libnss-ldap (238-1).
Libpam-ldap (178-1).
Nscd (2.3.2.ds1-22).
Al instalarla deberemos configurar la lista de repositorios de Debian con el fin de obtener las dependencias necesarias para la consecuente ejecución de OpenLdap.
Por lo tanto lo hare paso a paso para aquellos que son rockies en ambientes Linux.
Editando la lista de repositorios de Debian Etch 4.0:
#Nano/pico /etc/apt/sources.list
/*Y al final de la lista, teclearemos:
Deb http://http.us.debian.org/debian etch main contrib non-free
/*Daremos Ctrl + O (para guarder).
/*Daremos Ctrl. + X (para salir).
Ahora, si pertencemos a una LAN deberemos verificar si poseemos la salida a Internet a traves del servicio Proxy, deberemos teclear:
#!export
/*Y nos debera salir algo asi:
http_proxy://172.20.49.51:80”
/*Si no nos sale algo como esto deberemos exportarlo para nuestra maquina, asi:
#Export http_proxy=http://172.20.49.51:80.
Ahora actualizaremos nuestra lista de repositorios para que se puedan obtener los paquetes a usar en la configuración, asi:
#apt-get update.
Para que la configuración de OpenLdap no nos presente problemas mas adelante deberemos instalar unas dependencias necesarias para compilación e instalacion de los otros paquetes.
#apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto.
Ahora instalaremos los paquetes correspondientes al servidor de OpenLdap y sus utilidades.
#apt-get install slapd ldap-utils.
/*Ahora nos debera pedir una serie de datos, para completer la configuracion asica de OpenLdap, tales como:
Contraseña del Administrador de OpenLdap: sena2008 /*es mi contraseña de ejemplo*/.
Verificar la contraseña : sena2008.
Ahora para que quede un poco mas completa la configuración de OpenLdap, deberemos reconfigurar el paquete-servicio, mediante:
#dpkg-reconfigure slapd.
/* Y nos debera pregunta ahora:
Desea omitir la configuracion de ldap : no
Introduzca el nombre de dominio DNS : wodan.net
Instrodusca el nombre de su organizacion : wodan.net
Contraseña del administrador : sena2008
Verificar contraseña : sena2008.
Motor de base de datos a utilizar : BDB./* Es el tipo de la base de datos Berkeley a manejar*/.
Desea que se borre la base de datos cuando purge el paquete slapd :NO
Desea mover la base de datos antigua : SI
Permitir el protocolo LDAPV2 : si
Ahora verificamos la instalacion de slapd, asi:
# ldapsearch -x -b “dc=wodan,dc=net”
/*Y nos debera aparecer los siguinte:
# extended LDIF
#
# LDAPv3
# base <“dc=wodan,dc=net”> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 34 Invalid DN syntax
text: invalid DN
# numResponses: 1
Instalando phpldapadmin.
Phpldapadmin requiere un servidor web para funcionar. Si es nueva instalacion necesitaremos instalar Apache. Se usara Apache-ssl ya que no queremos que nuestra clave de administrador sea enviada por la red en texto plano. Por lo cual, teclearemos:
#apt-get install apache-ssl. /* Y deberemos responder lo siguiente:
Habilitar SuExec: no
Pais: CO
Estado : AN
Localidad : ME
Nombre de la Organización : wodan.net
Nombre de la Unidad Organizativa: Users
Nombre de Equipo : serverldap.wodan.net
Email de contacto : admin@wodan.net
/* Luego instalaremos phpldapadmin que provee una interfaz web para administrar información en LDAP:
#apt-get install phpldapadmin.
/* responda las preguntas asi:
Tipo de autenticación: session
Configurar webserver : apache-ssl.
Reiniciar: si
INSTALACION DE SMBLDAP-TOOLS
#apt-get install smbldap-tools
Phpldapadmin requiere una utilidad llamada mkntpwd para crear los hashes de las claves Samba. Esto solía estar incluído en smbldap-tools pero no parece estar en Debian.
Instalacion de Mkntpwd:
$ cd /opt/
$ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz
$ tar -zxf mkntpwd.tar.gz
$ cd mkntpwd
$ make
$ cp mkntpwd /usr/local/bin
Ahora verificamos si realmente esta instalado el paquete, asi: mkntpwd. /* Ynos debera salir:
-
Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]
mkntpwd password
mkntpwd -f [-] [filename]
-L lanmgrpasswd LanManager cleartextpwd <= 14 chars
-N ntpasswd NT cleartextpwd <=128 chars (usually <=14)
with both options present the encrypted LanManager-Pwd is
printed first, followed by a ‘:’ and the encrypted NT-Pwd.
The second usage behaves like mkntpwd -L pwd -N pwd
The third usage reads the password from STDIN or a File. Printoutis the same as second.
INSTALACION DE SAMBA
-
#apt-get install samba samba-doc. /* Yresponderemos a lo siguiente:
Nombre del dominio o grupo de trabajo : wodan.net
Usar Encriptación de Contraseña: Si
Modificar smb.conf para que use la configuración WINS proveniente de DHCP : no
Como ejecutar Samba: demonios.
Configurando y cargando LDAP, slapd necesita el esquema Samba para trabajar. Haremos lo siguiente:
$ cd /usr/share/doc/samba-doc/examples/LDAP
$ gunzip samba.schema.gz
$ cp samba.schema /etc/ldap/schema
/* Ahora agregamos el esquema de Samba al servicio slapd:
nano/pico /etc/ldap/slapd.conf.
/* despues de los otros incluyes, teclear:
include /etc/ldap/schema/samba.schema
Y reinicie slapd:
$ /etc/init.d/slapd restart
CREACION DE CARPETAS PARA SAMBA
#mkdir /home/samba/
#mkdir /home/samba/netlogon
#mkdir /home/samba/profiles
Necesitamos crear unidades organizativas en LDAP para nuestros usuarios, grupos y maquinas.
Ingresar a phpldapadmin, en nuestro navegador, digitamos:
/* https://serverldap.wodan.net/phpldapadmin/
Ingrese con la clave del usuario administrador.
Login DN : cn=admin,dc=wodan,dc=net
Passwod : sena2008.
Expandir la raíz del arbol, y hacer clic en “Create New Entry Here”
Seleccionar “Organizational Unit” (ou):
Nombrar la ou como "users” (para manejar las cuentas de los usuarios).
“machines” (para manejar las cuentas de máquinas).
“groups” (para manejar las cuentas de grupos).
CONFIGURACIÓN DE SAMBA
Es el momento de congfigurar Samba. Haremos una copia del archivo original de samba, asi:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bkp
Ahora removeremos el archivo para dejarlo en blanco, asi:
rm /etc/samba/smb.conf
Y lo crearemos nuevamente:
Touch /etc/samba/smb.conf
Y pasaremos a editarlo:
Nano/pico /etc/samba/smb.conf.
/* y debera quedarnos de esta forma:
si se copia el archivo directamente hay que darle permisos de lectura al grupo y a others, asi:
#chmod u-x smb.conf
#chmod g+r smb.conf
#chmod o+r smb.conf
Ejecute “testparm” para cerciorarse que la configuración de Samba no contiene errores.
#testparm
Indique a Samba la contraseña del administrador LDAP, y nos mostara:
Load smb config files from /etc/samba/smb.conf
Processing section “[netlogon]“
Processing section “[homes]“
Processing section “[profiles]“
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
/* si nos responde de esta forma entonces todo esta correcto hasta ahora.
Le damos la contraseña de ldap a samba.
#smbpasswd -w sena2008.
Reiniciar Samba:
$/etc/init.d/samba restart
Si observa el phpldapadmin debería ver que una entrada “sambaDomainName=wodan.net”, ha sido creada.
Copie el valor sambaSID (ej. S-1-5-21-2265827217-4098242790-2717616009), se necesitara en la siguiente sección.
CREACIÓN DE GRUPOS DE DOMINIO
Dentro de Phpldapadmin en Contenedor “groups”, elegir “Create New Samba3 Group Mapping” y crear los siguientes grupos:
Group | Windows_Name | GID | Samba_SID |
Sambaadmins | Domain | Admins | 20000 512 |
Sambausers | Domain | Users | 20001 513 |
Sambaguests | Domain | Guests | 20002 514 |
Sambamachines | Domain | Computers | 20003 515 |
INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP
INSTALACIÓN NSS LDAP
#apt-get install libnss-ldap
#dpkg-reconfigure libnss-ldap
Servidor LDAP : 127.0.0.1
Nombre distintivo (DN) : dc=wodan,dc=net
Vercion de LDAP a utilizar : 3
Hace falta un usuario para acceder a la base de datos ldap : No
Dar privilegios especiales de ldap para root : SI
Desea hacer que la configuracion solo pueda leer o escribir el propietario : SI
Cuenta ldap para root : cn=admin,dc=wodan,dc=net
contraseña ldap para root : sena2008
Edite el archivo /etc/nsswitch.conf, asi:
#pico /etc/nsswitch.conf
/* Debe quedar editado de esta forma:
passwd: compat ldap
group: compat ldap shadow: compat ldap /* Esto buscará primero en la base de datos local (/etc/passwd), luego LDAP. Ud. podría hacerlo a la inversa aunque los resultados podrían variar. 13.Para confirmar que los grupos han sido correctamente configurados use la utilidad getent de la siguiente forma: $ getent group /* Debe mostrar: sambaadmins:*:20000:
sambausers:*:20001:
sambaguests:*:20002:
sambamachines:*:20003: NOTA : SI NO MUESTRA ESTO ALGO ESTA MAL 14. Instalacion de PAM LDAP # apt-get install libpam-ldap
# dpkg-reconfigure libpam-ldap
Servidor ldap : 127.0.0.1
Nombre distintivo : dc=wodan,dc=net
Vercion de ldap : 3
Make local root Database admin : si
Hace falta un usuario para la base de datos LDAP : no
Ldap account for root : cn=admin,dc=wodan,dc=net
contraseña para la cuenta ldap de root : sena2008
Local crypt to use when changing passwords : md5
NOTA: Samba requiere un usuario Administrador (con un uidNumber de 0) para agregar las máquinas Windows al dominio. No recomiendo tener un usuario root en LDAP ya que puede ser capaz de abrir una sesión en las estaciones de trabajo Linux, para evitar eso agregamos un filtro en /etc/pam_ldap.conf. Si esto no le importa (o quiere tener una única cuenta root en todas las máquinas) ignore este paso.
Agregar la siguiente linea a “/etc/pam-ldap.conf”:
#pico /etc/pam-ldap.conf:
pam_filter !(uidNumber=0)
/* Esto impedirá que un usuario con uidNumber 0 pueda ingresar usando LDAP.
/* Es necesario editar los siguientes archivos para configurar PAM para LDAP:
#pico /etc/pam.d/common-account
# comente la siguiente linea
#account required pam_unix.so # y agregue estas dos account sufficient pam_ldap.so account required pam_unix.so try_first_pass
#pico /etc/pam.d/common-auth:
# comente la siguiente linea
#auth required pam_unix.so nullok_secure # y agregue estas dos auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass #pico /etc/pam.d/common-password: # comente la siguiente linea #password required pam_unix.so nullok obscure min=4 max=8 md5 # y agregue estas dos password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass #pico /etc/pam.d/common-session # para que cuando se registre un usuario en ldap se cree el # directorio home respectivo agregar como primera linea session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 Ahora reiniciaremos el servicio Samba: $ /etc/init.d/ssh restart $ /etc/init.d/samba restart 15. Finalmente instalar el Demonio de caché del servicio de nombres: $apt-get install nscd 16. AGREGAR USUARIOS Ahora finalmente podemos agregar algunos usuarios. Necesitará un Administrador (uid=0) y varios usuarios. Creelos bajo “ou=users” de la siguiente manera: USUARIO_1
First_Name | Administrador |
Last_Name | Global |
Common_Name | Administrador |
UID_Number | 0 |
Samba_SID | 512 |
Password | Sena2008 |
Verify_Password | Sena2008 |
Home_Directory | /home/administrador |
USUARIO_2
First_Name | richar |
Last_Name | User |
Common_Name | richar |
User_ID | richar |
UID_Number | 10000 |
Samba_SID | 512 |
Password | Sena.2008 |
Verify_Password | Sena.2008 |
Home_Directory | /home/richar |
USUARIO_3
First_Name | Daniel |
Last_Name | User |
Common_Name | Daniel |
User_ID | 10001 |
Samba_SID | 513 |
Password | Sena_2008 |
Verify_Password | Sena_2008 |
GID_Number | Sambausers |
Primary_Group_ID | Sambausers |
Home_Directory | /home/daniel |
En este punto podemos utilizar getent para verificar que nss está trabajando correctamente en el sistema Linux.
$ getent passwd
administrador:*:0:20000:administrador:/home/administrador:
richar:*:10000:20000:richar:/home/richar:
daniel:*:10001:20001:daniel:/home/daniel:
Finalmente necesitamos agregar los directorios iniciales para nuestros usuarios:
# mkdir /home/richar
# cp /etc/skel/.* /home/richar/
# chown -R juan /home/richar
# chgrp -R sambaadmins /home/richar
# mkdir /home/daniel
# cp /etc/skel/.* /home/daniel/
# chown -R juan /home/daniel
# chgrp -R sambaadmins /home/daniel
PRUEBAS
Primero intente ingresar (a la consola o via ssh) con el usuario LDAP.
Luego trate de conectarse al servidor Samba. Si tiene problemas examine los registros en /var/log/samba (/var/log/samba/log.nombredemaquina sería un buen lugar para empezar).