Instalar y Configurar LDAP + NFS en Ubuntu Karmic 9.10

16 02 2010

OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Está liberada bajo su propia licencia OpenLdap Public License. LDAP es un protocolo de comunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen el software OpenLDAP para el soporte LDAP. Este software también corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo 2000, XP, Vista), y z/OS.

INSTALAR Y CONFIGURAR:

El primer paso es instalar los siguientes paquetes como root:

$ sudo su
Password: *****
# apt-get install slapd ldap-utils nmap php5-ldap db4.2-util

Durante la instalación se abrirá una ventana que solicitará el password de root, que manejará y configurará el servidor. Para configurar el servidor, una vez intalados los paquetes, hemos de lanzar la siguiente orden:

# dpkg-reconfigure slapd

Los parámetros a configurar serán los siguientes:

No se creará la configuración ni la base de datos inicial si habilita esta opción.
¿Desea omitir la configuración del servidor OpenLDAP? No
Domain name: oficina.com (por ejemplo...)
Database backend a usar: HDB
¿Desea que se borre la base de datos cuando se purgue el paquete slapd? No
¿Desea mover la base de datos antigua? Si
Contraseña del administrador y verificación de contraseña: la que sea...
Permitir el protocolo LDAP v2?No

Ahora editamos el archivo /etc/ldap/ldap.conf para que tengan acceso los clientes:

ldap_version 3
URI ldap://localhost:389
SIZELIMIT 0
TIMELIMIT 0
DEREF never
BASE dc=oficina, dc=com

Para comprobar que la configuración es correcta y que todo funciona como deberia, podemos lanzar la siguiente orden, que nos detallará los datos que hasta ahora tiene nuestro arbol LDAP:

# ldapsearch -x
Esto nos devolverá:

# extended LDIF
#
# LDAPv3
# base (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# oficina.com
dn: dc=oficina,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: oficina.com
dc: oficina
# admin, oficina.com
dn: cn=admin,dc=oficina,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

Para administrar el servidor facilmente, existe una aplicación web llamada phpldapadmin. A mi personalmente me ayuda mucho a la hora de visualizar la organización del arbol, pero no me ayudo a la hora de crear usuarios (no crea homes), para eso utilizo otra herramienta llamada ldapscripts.

Para instalar phpldapadmin tan sólo hemos de hacer:

# aptitude install phpldapadmin
# ln -s /usr/share/phpldapadmin/ /var/www/phpldapadmin

Ahora, hemos de abrir el archivo de configuración de phpldapadmin (/etc/phpldapadmin/config.php) y modificar los valores que hacen referencia a nuestro arbol LDAP.

Ahora hemos de modificar el archivo de configuración de php5 (/etc/php5/apache2/php.ini), y modificar el siguiente parámetro:

memory_limit = 64M

Reseteamos el servicio del Apache:

# /etc/init.d/apache2 restart

Ahora podemos acceder al servicio web via:

http://localhost/phpldapadmin

El lado del cliente:

Lo primero que hemos de hacer es instalar los paquetes necesarios para que el cliente se comunique con el servidor:

$ sudo su
Password: *****
# aptitude install libnss-ldap

Durante la instalación se nos abrirá una ventana que nos solicitará los datos de configuración del servidor, su dominio, password de root, método de encriptación, … En caso de equivocarnos durante la instalación, podremos lanzar la siguiente orden que nos permitirá reconfigurar todo de nuevo:

# dpkg-reconfigure ldap-auth-config

Ahora hemos de indicar al Sistema Operativo que hay corriendo un servidor LDAP y que el método de autenticación que vamos a utilizar es precisamente éste, mediante el servidor. Para ello lanzamos la siguiente orden, que moficará el archivo de configuración del sistema nsswitch:

# auth-client-config -t nss -p lac_ldap

El parametro -t indica que archivo ha de ser modificado, y el parámetro -p indica que configuración ha de ser activada o desactivada.
Esto configurará el archivo para que se autentique unicamente mediante el servidor LDAP, pero nosotros tampoco queremos esto, puesto que no nos permitirá acceder a los usuarios locales (lo cual incluye al usuario root), por lo que modificamos manualmente el archivo, los parámetros siguientes:

# pre_auth-client-config # passwd: compat
passwd: compat ldap
# pre_auth-client-config # group: compat
group: compat ldap
# pre_auth-client-config # shadow: compat
shadow: compat ldap

Esto indica al Sistema Operativo que primero ha de comprobar localmente la autenticación (compat) y si no encuentra el usuario entonces ha de buscar en el servidor LDAP.

CREAR USUARIOS LDAP:

Como indicamos anteriormente, la herramienta phpldapadmin es muy útil a la hora de visualizar la organización del arbol LDAP, pero no es una buena opción a la hora de crear usuarios LDAP porque no crea los homes. Para esto último utilizaremos el conjunto de scripts que provee ldap. Para ello, lo primero que hemos de hacer es instalar el paquete que nos dará acceso a esos scripts:

# aptitude install ldapscripts
Ahora, editamos el archivo de configuración de ldapscripts para indicarle todos los valores del servidor LDAP.

SERVER=localhost
BINDDN='cn=admin,dc=oficina,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=oficina,dc=com'
GSUFFIX='ou=Grupos' (grupo organizacional que hemos de crear con phpldapadmin)
USUFFIX='ou=Usuarios'(grupo organizacional que hemos de crear con phpldapadmin)
MSUFFIX='ou=Maquinas'(grupo organizacional que hemos de crear con phpldapadmin)
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000
# User properties
USHELL="/bin/bash"
UHOMES="/home/users/%u"
CREATEHOMES="yes"
HOMESKEL="/etc/skel"
HOMEPERMS="700"

Ahora hemos de indicar cual es el password de root del servidor LDAP, para que los scripts puedan modificar lo que sea necesario:

# sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd"
# chmod 400 /etc/ldapscripts/ldapscripts.passwd

Ahora ya podemos utilizar los scripts para la creación y configuración de usuarios:

Lo primero que tendremos que hacer es crear un grupo, ya que para crear usuarios será imprescindible agregarlos a un grupo dentro del arbol LDAP, para ello sólo hemos de ejecutar la siguiente orden:

# ldapaddgroup [grupo]

Para crear usuarios tan sólo deberemos ejecutar:

# ldapadduser [usuario] [grupo]

Los usuarios se crean sin password, para asignarle un password al usuario creado deberemos ejecutar:

# ldapsetpasswd [usuario]
New Password:
New Password (verify):

Para el resto de opciones de ldapscripts escribiremos:
# dpkg -L ldapscripts | grep bin O simplemente ponemos en un terminal ‘ldap’ y tabulamos.

NFS

El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo de transporte, esto fue posible gracias a que está implementado sobre los protocolos XDR (presentación) y ONC RPC (sesión). El protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.

Para poder configurar un servidor NFS primero deberemos instalar los paquetes necesarios:

$ sudo su
Password: *****
# aptitude install nfs-common nfs-kernel-server portmap

Ahora hemos de modificar el archivo /etc/exports para indicar que carpeta queremos exportar, y bajo que condiciones. En el caso de los homes que exportaremos para el servicio LDAP quedará así:

# vim /etc/exports
/home/users 192.168.1.0/24(rw,async,no_root_squash,subtree_check)

Además de esto habremos de modificar los archivos /etc/hosts.allow y /etc/hosts.deny , indicando que servicios permitimos y bloqueamos, por temas de seguridad:

# vim /etc/hosts.allow
portmap: 192.168.1.0/255.255.255.0
nfs: 192.168.1.0/255.255.255.0

# vim /etc/hosts.deny
portmap: ALL

Con esto el servidor queda configurado. Ahora hemos de configurar la parte del cliente, lo primero será instalar el paquete nfs-common, en caso de que no esté instalado:

# aptitude install nfs-common

Y modificaremos el archivo /etc/fstab que es el archivo que indica al Sistema Operativo que debe montar durante el arranque del sistema:

# vim /etc/fstab
192.168.1.25:/home/users /home/users nfs rsize=8192,wsize=8192,timeo=14,intr

Con esto el cliente queda configurado, para que la configuración surta efecto tenemos dos opciones. La primera es reiniciar el PC, ya que el sistema cargará al arranque lo indicado en /etc/fstab y la segunda es ejecutar el siguiente comando:

# mount -a

Anuncios

Acciones

Información

5 responses

27 04 2010
turk182

Hola, tengo una pregunta, al principio del tutorial cuando quiero reconfigurar slapd con:

dpkg-reconfigure slapd

solamente me pregunta:
1) desea omitir la configuracion: no
2) desea que se borre la base de datos cuando se purge el paquete slapd: no
3) permitir el protocolo LDAPv2?: no

no me pide nombre de administrador ni las otrs opciones que tu muestras en el tuto, he leido en launchpad un bug similar al problema que tengo pero las respuestas que ofrecen no me funcionaron.

espero me puedas ayudar con este problemita.

de antemano gracias!!

27 04 2010
elbauldenico

Buenas! Es la primera noticia que tengo al respecto de ese problema. He estado leyendo por Google, y he encontrado este hilo que explica una forma alternativa de configurar LDAP en karmic (desconocía este bug 😐 yo nunca he tenido problemas ¿un update que ha fastidiado el tema? :S). Esta nueva forma de configurando es utilizando ldifs… que si no estás familiarizado te va a resultar extraño. Era la forma antigua de configurar LDAP. Si tuvieras dudas, consultame! 🙂

http://www.howtoforge.com/install-and-configure-openldap-on-ubuntu-karmic-koala

Salu2! Y gracias por tu aporte! 😉

27 04 2010
turk182

Gracias, por tu rapida contestacion…leere el howto que dices y luego te aviso como anda..

mil gracias y sigue adelante!!!

27 04 2010
turk182

hola, soy yo de nuevo
ya logre instalar el ldap, pero en tu tuto hablas de instalar el phpldapadmin y despues de instalarlo hay que modificar unos valores que hacen referencia a nuestro arbol LDAP bajo este directorio:

etc/phpldapadmin/config.php

pero dentro de ese directorio que es lo que debo modificar?
si podrias decirme que valores exactamente debo de modificar y como deberian de quedar te lo agradecere mucho..

de nuevo gracias!!!

27 04 2010
elbauldenico

Buenas! Enhorabuena por la instalación! 🙂

Si editas el archivo config.php te darás cuenta que el arbol ldap que hay dentro está puesto de forma genérica.
Por ejemplo… donde yo tengo dc=oficina,dc=com , en el archivo pone dc=example,dc=net .
Es por pura comodidad, si accedes por el navegador al proyecto web phpldapadmin y tratas de hacer login… verás que si no modificas el archivo config.php tendrás que hacerlo manualmente cada vez que quieras acceder. No sé si me he explicado con claridad 🙂 De todas formas, no es nada importante, pura comodidad para no tener que editarlo manualmente en cada acceso.

Salu2! 🙂

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s




A %d blogueros les gusta esto: