Vous êtes sur la page 1sur 14

Leccin 12

Configuracin de un servidor de autenticacin LDAP

Objetivo
Configurar un servidor GNU/linux como servidor de autenticacin para otros equipos,

Sirve para
Vamos a configurar nuestro servidor ubuntu como controlador primario de dominio en el que se puedan autenticar mquinas con windows o linux. OpenLDAP es un servidor de LDAP (Lightweight Directory Access Protocol), que es un protocolo a nivel de aplicacin que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa informacin en un entorno de red. LDAP es algo similar a una base de datos, aunque no exactamente lo mismo. Una implementacin de LDAP es Active Directory de Microsoft. La idea es poder utilizar el servidor ubuntu como controlador de dominio para mquinas windows-linux o poder autenticar directamente a los usuarios de linux contra el servidor LDAP, teniendo un nico punto de acceso para ambos sistemas.

Consideraciones previas
Puntos de inters previos Instalaremos la versin de Ubuntu 8.04 LTS (si instalaramos la de servidor, tendramos que instalar luego la sesin grfica si nos interesara). El nombre puesto al equipo durante la instalacin srv-ubuntu. El nombre de dominio completo cualificado ser: srv-ubuntu.cpd.local Despus de la configuracin, el archivo /etc/hostname se modific a: srvubuntu.cpd.local Tras la instalacin, el archivo /etc/hosts se modific para que la lnea quedara como: 127.0.1.1 srv-ubuntu srv-ubuntu.cpd.local para asegurarnos que no hay problemas de resolucin de nombres. El dominio LDAP es: cpd.local Esto se traduce a Base DN de: dc=cpd,dc=local No usamos SSL ni TLS para el directorio LDAP. * El usuario que creamos durante la instalacin es: sysadmin * La clave de dicho usuario es: 12345 * Este usuario se utilizar para todas las configuraciones locales.

Paso a paso

0.- Preparando el equipo Partimos de tener el equipo instalado con la versin 8.04, todos los repositorios activados, el sistema actualizado y configurado con IP esttica. Tambin asumimos que tenemos instalado SSH en el equipo. Ahora modificaremos los archivos de configuracin tal y como indicamos en las consideraciones previas. Como son archivos de configuracin, solo podremos modificarlos como superusuarios, por lo que utilizaremos sudo, adems, utilizaremos como editor de texto gedit, aunque si lo hicieramos desde consola deberamos utilizar nano. sudo gedit /etc/hosts y modificamos la lnea 127.0.1.1 srv-ubuntu para que quede de la siguiente forma: 127.0.1.1 srv-ubuntu srv-ubuntu.cpd.local El archivo hosts es al igual que su equivalente en windows un archivo que nos resuelve direcciones, es decir, nos traduce nombres a direcciones. Con esta modificacin indicamos que el equiop srv-ubuntu.cpd.local se resuelve mediante la direccin ip 127.0.1.1, es decir, que es el mismo equipo. Ahora modificaremos el archivo hostname que indica cul es el nombre del equipo. sudo gedit /etc/hostname y modificamos el archivo que quede srv-ubuntu.cpd.local 1.- Instalacin de webmin WebMin es una aplicacin que nos permite administrar nuestro servidor remotamente a travs de una pgina web. Para instalar entramos en la pgina web de la aplicacin: http://www.webmin.com y pulsamos sobre descargar Debian Package. Una vez descargado, pulsamos dos veces sobre l y se abrir el gestor de paquetes gDebi que nos permitir instalarlo de una manera sencilla pulsando sobre el botn instalar. Nos instalar tambin las dependencias del paquete. Antes de la instalacin nos solicitar la clave del administrador. 2.- Instalacin de OpenLDAP Para nuestro servidor LDAP utilizaremos OpenLDAP Server (slapd). Lo primero ser instalarlo. Igual que en los anteriores casos, podemos hacerlo grficamente o a travs de la lnea de comandos. Desde la terminal suele ser ms rpido todo, as que usaremos una vez ms la terminal (aunque se podra utilizar igualmente el gestor de paquetes Synaptic).

sudo apt-get install slapd ldap-utils migrationtools En el proceso de instalacin nos pedir la clave del administrador del servidor OpenLDAP. No es necesario utilizar la misma clave que para el administrador general de Ubuntu, pero s que es importante no perder la clave (en este ejemplo usaremos como clave claveLDAP). Una vez instalado, necesitaremos configurarlo: sudo dpkg-reconfigure slapd

Nos har una serie de preguntas a las que responderemos lo siguiente: Omitir la configuracin de OpenLDAP? NO DNS domain name: cpd.local Organization name: cpd.local Admin password: claveLDAP Confirm password: claveLDAP Database Backend to use: HDB Desea que se borre la base de datos cuando se purgue el paquete? No Desea move la base de datos antigua? S Allow LDAP v2. Protocol? No A continuacin reiniciamos el servicio OpenLDAP sudo /etc/init.d/slapd restart

3.- Instalacin de SAMBA Para poder configurar correctamente OpenLDAP necesitamos instalar antes SAMBA. Otra vez podramos utilizar synaptic, pero seguiremos utilizando la terminal. sudo apt-get install samba smbldap-tools smbclient samba-doc 4.- Configuracin de OpenLDAP para ser usado por SAMBA Para usar LDAP con SAMBA necesitamos configurar el archivo /etc/ldap/slapd.conf. En primer lugar copiaremos el archivo samba.schema al directorio de esquemas de OpenLDAP. Podramos hacerlo a travs de Nautilus (el gestor de archivos de ubuntu, pero tendramos que ejecutarlo en modo administrador con sudo nautilus). Lo haremos desde la terminal: sudo cp /etc/ldap/schema/ /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz

Descomprimimos el archivo sudo gzip -d /etc/ldap/schema/samba.schema.gz Editamos el archivo /etc/ldap/slapd.conf para modificarlo. Lo haremos con gedit aunque tambin podramos hacerlo con otro editor en modo texto (nano, joe, vim...) sudo gedit /etc/ldap/slapd.conf Agregamos las siguientes lineas al documento justo detrs de las dems lneas con includes: # Esquemas para SAMBA include /etc/ldap/schema/samba.schema include /etc/ldap/schema/misc.schema Comentamos la siguiente lnea poniendo un # delante de la misma #access to attrs=userPassword,shadowLastChange y agregamos debajo: access to attrs=userPassword,sambaNTPassword,sambaLMPassword A continuacin reiniciamos el servidor slapd con sudo /etc/init.d/slapd restart 5.- Configuracin de SAMBA Ahora tenemos que configurar SAMBA, para ello tendremos que modificar el archivo /etc/samba/smb.conf. Siempre desde la terminal hacemos: Cambiamos al directorio SAMBA (1), hacemos una copia de seguridad del archivo de configuracin de SAMBA.(2) y abrimos el archivo de configuracin de SAMBA (3): (1) (2) (3) cd /etc/samba sudo cp smb.conf smb.conf.original sudo gedit smb.conf

Hacemos los siguientes cambios en el archivo (podemos buscar las lneas concretas con ctrl+F, por ejemplo buscando workgroup: workgroup = CPD security = user passdb backend = ldapsam:ldap://localhost/ obey pam restrictions = no #################################################### ################### #Copiar y pegar lo siguiente justo debajo de "OBEY PAM RESTRICTIONS = NO" #################################################### ################### #

# Begin: Custom LDAP Entries # ldap admin dn = cn=admin,dc=cpd,dc=local ldap suffix = dc=cpd, dc=local ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Users ; Do ldap passwd sync ldap passwd sync = Yes passwd program = /usr/sbin/smbldap-passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated* add user script = /usr/sbin/smbldap-useradd -m "%u" ldap delete dn = Yes delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -w "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" domain logons = yes # # End: Custom LDAP Entries # #################################################### # #COPIAR HASTA AQU #################################################### # Dejamos comentada la lnea: ;invalid users = root Agregar la siguiente lnea logon path = Y buscamos las lneas siguientes: passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . Y las comentamos: ;passwd program = /usr/bin/passwd %u ;passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . Buscamos si existe la lnea

unix password sync = yes y la cambiamos por unix password sync = no Reiniciamos SAMBA: sudo /etc/init.d/samba restart Le pasamos a SAMBA la clave de admin para el rbol LDAP: sudo smbpasswd -w claveLDAP

6.- Configurar el paquete SMBLDAP-TOOLS Utilizaremos las herramientas del paquete smbldap-tools para crear la estructura de nuestro directorio (populate), agregar usuarios, equipos, etc... Pero antes hay que configurar las herramientas. Abrimos el directorio con los ejemplos y copiamos el archivo de configuracin a /etc/smbldap-tools: cd /usr/share/doc/smbldap-tools/examples/ sudo cp smbldap_bind.conf /etc/smbldap-tools/ sudo cp smbldap.conf.gz /etc/smbldap-tools/ Descomprimimos el archivo sudo gzip -d /etc/smbldap-tools/smbldap.conf.gz Abrimos el directorio /etc/smbldap-tools cd /etc/smbldap-tools/ Obtenemos el SID (ID de seguridad) para el dominio SAMBA sudo net getlocalsid El resultado para el ejemplo que hemos estado utilizando es el siguiente (aunque variar en funcin de distintas variables): SID for domain SRV-UBUNTU is: S-1-5-21-2726997406-4068611613-603779044 Abrimos el archivo /etc/smbldap-tools/smbldap.conf para modificarlo. sudo gedit smbldap.conf Modificamos el archivo para que la siguiente informacin sea correcta (de acuerdo con la configuracin individual de cada uno):

SID="S-1-5-21-2726997406-4068611613-603779044" ## Esta lnea tiene que tener el mimo SID que hemos obtenido al ejecutar sudo net getlocalsid sambaDomain="CPD" ldapTLS="0" suffix="dc=cpd,dc=local" sambaUnixIdPooldn="sambaDomainName=CPD,${suffix}" # tambin valdra "sambaDomainName=${sambaDomain},${suffix}" userSmbHome=

userProfile=
userHomeDrive= userScript= mailDomain="cpd.local" Abrimos el archivo /etc/smbldap-tools/smbldap_bind.conf para modificarlo: sudo gedit smbldap_bind.conf Modificamos el archivo para que la siguiente informacin sea correcta (de acuerdo con la configuracin individual de cada uno): slaveDN="cn=admin,dc=cpd,dc=local" slavePw="claveLDAP" masterDN="cn=admin,dc=cpd,dc=local" masterPw="claveLDAP" Modificamos los permisos para estos archivos, para impedir que se pueda ver la contrasea: sudo chmod 0644 /etc/smbldap-tools/smbldap.conf sudo chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

7.- Creamos la estructura LDAP (populate) usando las herramientas de smbldap Ahora crearemos la estructura de nuestro directorio LDAP con algunas entradas necesarias para SAMBA y Windows. Ejecutamos el siguiente comando para crear el directorio: sudo smbldap-populate -u 30000 -g 30000 Cuando nos pida la contrasea, pondremos la contrasea del root, administrador. Verificar que el directorio tiene informacin ejecutando el comando: ldapsearch -x -b dc=cpd,dc=local | less

8.- Agregar un usuario LDAP al sistema

Es hora de agregar un usuario LDAP. Usaremos este usuario para comprobar que la autenticacin LDAP est funcionando. sudo smbldap-useradd -a -m -M javi -c "Javi" javi La explicacin de lo que siginfica cada parmetro es la siguiente: -a permite autenticacin tanto en windows como en linux -m crea un directorio raz, puede no usarse si no se necesita acceso local -M pone el nombre del usuario como parte de su direccin de correo electrnico. -c Especifica el nombre completo Ponemos clave para el nuevo usuario sudo smbldap-passwd javi Ponemos la clave y la volvemos a introducir para comprobarlo. Posteriormente veremos otra forma ms sencilla de controlar los usuarios y los grupos. 9.- Configurar el servidor para usar autenticacin LDAP Los paso bsicos para esta seccin estn tomados de Ubuntu Forums (http://ubuntuforums.org/showthread.php?t=597056). Bsicamente lo que necesitamos es decirle a nuestro servidor que use la autenticacin LDAP como una de sus opciones. Hay que tener cuidado con esto, puede hacer que el servidor deje de funcionar. Esta es la razn de que siempre haga falta tener cerca una copia de seguridad. Instalamos el software necesario para que funcione: sudo apt-get install auth-client-config libpam-ldap libnss-ldap Respondemos a las preguntas que nos realizar el proceso de instalacin. (configuracin de ldap-auth-config) Should debconf manage LDAP configuration?: Yes (esto no lo ha preguntado en el ejemplo) LDAP server Uniform Resource Identifier: ldap://127.0.0.1 Distinguished name of the search base: dc=cpd,dc=local LDAP version to use: 3 Make local root Database admin: Yes Does the LDAP database require login? No LDAP account for root: cn=admin,dc=cpd,dc=local LDAP root account password: laclavequehemospuestoantes Abrimos el archivo /etc/ldap.conf file para edicin: sudo gedit /etc/ldap.conf Modificamos la informacin configuracin: para que sea correcta de acuerdo con nuestra

host 127.0.0.1 base dc=cpd,dc=local uri ldap://127.0.0.1/ rootbinddn cn=admin,dc=cpd,dc=local bind_policy soft Copiamos el archivo /etc/ldap.conf a /etc/ldap/ldap.conf sudo cp /etc/ldap.conf /etc/ldap/ldap.conf Creamos un archivo nuevo /etc/auth-client-config/profile.d/open_ldap: sudo gedit /etc/auth-client-config/profile.d/open_ldap Insertamos lo siguiente en el archivo vaco: [open_ldap] nss_passwd=passwd: compat ldap nss_group=group: compat ldap nss_netgroup=netgroup: compat ldap nss_shadow=shadow: compat ldap pam_auth=auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so pam_account=account sufficient pam_unix.so account sufficient pam_ldap.so account required pam_deny.so pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok password sufficient pam_ldap.so use_first_pass password required pam_deny.so pam_session=session required pam_limits.so session required pam_mkhomedir.so skel=/etc/skel/ session required pam_unix.so session optional pam_ldap.so Realizamos una copia de seguridad de /etc/nsswitch.conf: sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.original Realizamos una copia de seguridad de /etc/pam.d/: cd /etc/pam.d/ sudo mkdir bkup sudo cp * bkup/ Activamos el nuevo perfil de autenticacin LDAP ejecutando el siguiente comando: sudo auth-client-config -a -p open_ldap Reiniciamos el servidor y probamos que podemos autenticarnos con el usuario creado

(javi) . sudo reboot 9.- Configurar un cliente ubuntu con autenticacin LDAP Los paso a seguir son exactamente igual que los descritos para el punto 9, pero con la particularidad de que en este caso en lugar de utilizar 127.0.0.1 como direccin del servidor LDAP pondremos la direccin ip real del servidor LDAP. Esto es porque 127.0.0.1 es el equivalente al localhost, que en el caso del servidor coincide con el servidor LDAP. 10.- Instalacin del servidor de DNS BIND Como vamos a utilizar el servidor como controlador de dominio y fuente de autenticacin, tiene sentido tener tambin algn servicio DNS disponible. Hay que tener en cuenta que si se disponen de varios servidores, lo recomendable es utilizar un servidor separado para las DNS, de tal forma que tengamos dos lugares donde resolver direcciones. Instalar el software sudo apt-get install bind9

11.- Configurar nuestra zona primaria de DNS usando WebMin Ahora queremos crear nuestra zona DNS. Usaremos una GUI (Graphic user interface, interfaz grfica) para hacer esto en lugar de hacerlo directamente en los archivos. En un navegador web, abrimos la direccin: https://direccionipdelservidor:10000. Nos autenticamos con el nombre del usuario y la contrasea que pusimos al instalar el equipo (administrador, root). Servidores > BIND DNS Server (en la instalacin de ejemplo aparece bajo Modlos no usados>Servidor de DNS BIND) En el apartado de Zonas DNS Existentes, pulsamos sobre Crear zona raz. Tipo de zona: Reenvo (nombres a direcciones) Forwar (Names to adresses) Nombre de dominio / red: cpd.local Archivo de registros: Automtico Servidor maestro: srv-ubuntu.cpd.local (aparece por defecto, poner el nombre que hayamos elegido en caso contrario) Direccin de correo: administrador@cpd.local (direccin del administrador) Pulsamos sobre Crear Pulsamos sobre Aplicar cambios Pulsamos sobre Direccin (0) en la parte superior.

Nombre: srv-ubuntu Direccin: ladireccinipdelservidor Pulsamos Crear y despus Regresar a Tipo de registros Pulsamos sobre el botn Aplicar cambios.

12.- Configuramos el servidor para usarse a s mismo para resolver DNS En esta seccin vamos a hacer que el archivo de configuracin de resolucin de nombres /etc/resolv.conf apunte a nosotros mismos, a nuestro servidor DNS. Es recomendable dejar un segundo servidor DNS para que en caso de error en nuestro DNS pueda seguir funcionando con normalidad. Abrimos el archivo /etc/resolv.conf para editarlo: sudo gedit /etc/resolv.conf Agregamos las siguientes lneas al principio del archivo: search cpd.local nameserver ipdelservidorlocal Reiniciar el servidor para asegurarnos que el DNS est funcionando correctamente. sudo reboot

13.- Agregar el equipo cliente como cuenta a LDAP Ejecutamos el comando: sudo smbldap-useradd -w cliente-winxp * "cliente-winxp" es el nombre del equipo que queremos agregar al dominio. 14.- Configuramos el cliente de Windows XP Profesional Para configurar el cliente Windows XP profesional seguimos el procedimiento normal: Iniciamos sesin como administrador local. El nombre del equipo debe coincidir con el que hemos agregado al servidor LDAP Tenemos bien configurada la conexin de red. Pulsamos con el botn derecho sobre Mi PC y a continuacin en Propiedades. Pulsamos sobre la solapa Nombre del Equipo

Pulsamos sobre el botn Cambiar Seleccionamos que vamos a usar un Dominio Escribimos el nombre del dominio (en nuestro caso era cpd) Pulsamos OK. Nos pedir un usuario y contrasea. Utilizamos la del administrador. Usuario:root. Clave: laquehayamoselegido Si todo ha ido bien, nos saldr el mensaje de: Bienvenido al dominio cpd Pulsamos OK Reiniciamos el equipo. Ya nos podremos autenticar con el usuario que hemos creado anteriormente. Atencin! Hay que tener en cuenta que esto es una simple autenticacin hasta ahora. De aqu se puede ir incrementando a todo aquello que necesitemos, scripts de inicio, unidades mapeadas, etc... EN CASO DE TENER PROBLEMAS AL INCLUIR EQUIPOS WINDOWS XP EN EL DOMINIO En algunos casos nos impide meter equipos windows xp en el dominio ya que nos dice que no confa o no puede autenticar del dominio. Una solucin es: Ir en Windows XP a: Panel de control->Herramientas administrativas->Configuracin de seguridad->Directivas locales->Opciones de seguridad->Miembro del dominio-> Descifrar digitalmente datos de un canal seguro (cuando sea posible) y lo deshabilitamos. 15.- Instalar Apache2 y ldap-Account-manager Una buena forma de ver y modificar nuestro rbol LDAP es con una GUI (Graphic User Interface) . Ldap-account-manager es una recomendada por muchos usuarios, as que veremos como se instala y cmo se usa: Instalar las aplicaciones necesarias: sudo apt-get install apache2 ldap-account-manager Abrir el archivo de configuracin /etc/apache2/httpd.conf para su edicin: sudo gedit /etc/apache2/httpd.conf Agregamos la siguiente lnea al principio del archivo. Esto prevendr molestos mensajes de error de Apache2. ServerName srv-ubuntu.cpd.local Reiniciamos Apache2 sudo /etc/init.d/apache2 restart

Si al intentar acceder a ldap-account-manager nos muestra un error con el siguiente texto: Memory Limit low. Your php memory limit is low - currently 16M Tendremos que modificar el archivo de configuracin de php. El archivo de configuracin de php se encuentra en /etc/apache2/php.ini y para editarlo pondremos: sudo gedit /etc/apache2/php.ini Una vez abierto modificamos la lnea memory_limit = 16M para que ponga memory_limit = 32M ; Maximum amount of memory a script may consume (32MB) ; Maximum amount of memory a script may consume (16MB)

y a continuacin reiniciamos el servidor apache con: sudo /etc/init.d/apache2 restart 16.- Configurar ldap-Account-manager Ldap-account-manager es un gestor de ldap a travs de web. Para configurarlo ponemos la siguiente direccin en el navegador de internet: http://direccionip/lam Aprovechamos para seleccionar nuestro idioma por defecto. Para configurarlo, pinchamos en el enlace superior derecho, LAM Configuration. La primera opcin Edit general settings nos permitir cambiar la contrasea, la que viene por defecto es lam. Lo que nos interesa es la segunda opcin, Edit server profiles. Nos autenticamos y llegamos a la ventana de configuracin. Tenemos que dejar los datos as: Direccin del servidor: ldap://localhost:389 (o en su defecto la direccin del servidor ldap si no lo hemos instalado en la misma mquina). Sufijo del rbol: dc=cpd, dc=local Configuracin de idioma: Espaol (o el que deseemos) Lista de usuarios vlidos: cn=admin, dc=cpd, dc=local. Pulsamos en ok y volvemos a entrar en la configuracin y en Edit server profiles y esta vez pinchamos en Edit account types. En esta pantalla tenemos que dejar la informacin como sigue: Usuarios: Sufijo LDAP: ou=users, dc=cpd, dc=local Grupos: Sufijo LDAP: OU=groups,dc=cpd,dc=local Hosts: Sufijo LDAP: ou=computers,dc=cpd,dc=local Samba domains: Sufijo LDAP: dc=cpd,dc=local

Pulsamos ok y ya estaremos listos para entrar en LAM y gestionar nuestras cuentas. Ahora en la pantalla principal seleccionamos el usuario admin y ponemos la contrasea de LDAP. Entraremos en otra pantalla que nos muestra los usuarios que tenemos dados de alta en LDAP, los grupos y los Hosts (Equipos). Desde aqu podremos dar de alta, modificar o eliminar las cuentas que necesitemos. Hay que tener en cuenta que no ser necesario completar todos los campos, solo aquellos que nos marque como obligatorios. Slo ser necesario aadir una cuenta Samba3 si vamos a utilizar ese usuario desde equipos windows. Con esto ya tendremos configurado un servidor Ubuntu LDAP y Controlador de Dominio Samba en 16 pasos, largos, pero sencillos.

Vous aimerez peut-être aussi