Está en la página 1de 108

Jorge Armando Medina

Computacin Grfica de Mxico. Documentacin Tcnica

<jmedina@e-compugraf.com>

Alejandro Gabriel Snchez Martnez


Computacin Grfica de Mxico. Documentacin Tcnica

<asanchezm@e-compugraf.com>

Copyright 2009, 2010, 2011 Jorge Armando Medina, Alejandro Snchez Martnez Se otorga permiso para copiar, distribuir y/o modificar ste documento bajo los trminos de la Licencia de Documentacin Libre GNU GFDL, Versin 1.2 o cualquier otra posterior publicada por la Fundacin de Software Libre; sin secciones invariantes, sin textos en portada y contraportada. Una copia de la licencia en ingles la puede encontrar en los apendices al final del ibro, tambien una traduccin libre no oficial al espaol de la licencia GFDL y referencias de como utilizarla en sus proyectos, si por alguna razn se tuviera que utilizar por cuestiones legales la licencia GFDL la unica valida es la versin en inlges de ella. 2011/08/31 Resumen Este libro decribre la implementacin de un servidor Controlador de Dominio con Samba y OpenLDAP en Ubuntu Server 8.04, el controlador de dominio servir para administrar de forma centralizada las cuentas de usuario y grupo para sistemas Unix y GNU/Linux y tambin para cuentas de usuario, grupos, y computadoras de confianza para sistemas Windows. En la implementacin se describe un entorno hetereogeneo conformado por servidores GNU/Linux y clientes mixtos GNU/LInux y Windows. Se ven los procedimientos para administrar las cuentas de usuario y grupos Unix/Linux y Windows, as como la integracin de clientes Unix/Linux y Windows al dominio y algunas tareas operativas sobre los miembros del dominio. Tabla de contenidos 1. Introduccin 2. Caracteristicas de la Implementacin Caracteristicas Generales Caracteristicas para Entornos Unix/Linux Caracteristicas para Entornos Windows Estructura del Arbol de Directorio (DIT) 3. Requerimientos de Software

Prohibida la reproduccin total o parcial de este documento.

1 de 108

4. Instalacin y Configuracin del servidor OpenLDAP Objetivos Instalacin y Configuracin del servidor OpenLDAP Configuracin Inicial del servicio slapd Agregando los esquemas (schemas) necesarios Configurando las Listas de Control de Acceso (ACLs) Configurando los Indices de atributos ms usados Configuracin de los Registros de Eventos (logs) del servidor Slapd Configuracion de los logs en OpenLDAP Configuraciones para sysklogd Configuraciones para syslog-ng Configuracin de los limites de consulta y conexin Revisin de permisos en archivos y directorios de Configuracin Ejecutando una revisin sintactica del archivo de configuracin slapd.conf Iniciando el servidor slapd y haciendo Pruebas Preliminares Controlando el servicio Slapd Recursos adicionales Sitios web Paginas de manual 5. Configuracin del Cliente LDAP 6. Configuracin de Samba y las herramientas smbldap-tools Objetivos Instalacin y configuracin del servidor Samba Instalando el servidor y cliente Samba Configuracines de Samba para Controlador de Dominio Parametros Globales del servidor Samba Configuracines del registro de eventos (logs) del servidor Samba Configuraciones de Red para el servidor Samba Configurando los Parametros para Controlador de Dominio Parametros para interaccin con el servidor LDAP Configuraciones de Codificacin y Charset El recurso compartido especial [homes] El recurso compartido especial [netlogon] El recurso compartido especial [profiles] El recurso compartido publico Realizando una Revisin Sintactica del archivo de configuracin smb.conf Especificando la contrasea del ldap admin dn Instalacin y Configuracin de las smbldap-tools Llenando el Directorio LDAP con smbldap-populate Verificando la instalacin y configuracin de Samba y LDAP Probando Samba con Cuentas en el Directorio LDAP Verificando el mapeo del grupos unix a grupos Samba Probando conexiones al servidor Samba usando cuentas en LDAP 7. Configuracin de la resolucin de Identidades con NSS_LDAP 8. Configuracin de la Autenticacin con PAM_LDAP Introduccin a los Modulos de Autenticacin PAM Respaldando la configuracin de PAM Configurando los modulos de autenticacin PAM con LDAP Configuracin del modulo auth Configuracin del modulo account Configuracin del modulo session Configuracin del modulo password Instalando el modulo Cracklib de PAM Probando la autenticacin de usuarios de sistema va PAM_LDAP 9. Migracin de usuarios y grupos Unix/Posix al directorio LDAP Migracin de Usuarios (/etc/passwd y /etc/shadow) Migracin de Grupos (/etc/group)
Prohibida la reproduccin total o parcial de este documento.

2 de 108

10. Administracin de cuentas Unix y Samba va smbldap-tools Introduccin Atributos predenidos para la creacin de usuarios Creacin de cuentas de usuario Eliminacin de cuentas de usuarios Cambiando la contrasea de un usuario Modificacin de cuentas de usuario Administracin de Grupos de Sistema y Grupos Samba Agregando Grupos Eliminando Grupos Agregando usuarios a Grupos Eliminando Usuarios de Grupos 11. Tareas de Mantenimiento de OpenLDAP y Samba Cambiar o asignar contrasea al Root DN de OpenLDAP Agregar nuevos indices de atributos en OpenLDAP Respaldar los archivos de configuracin de OpenLDAP Respaldar y Restaurar una base de datos de OpenLDAP Respaldando archivos importante de Samba Respaldando el SID del Dominio Samba 12. Integrando Clientes Windows al Dominio Samba Requerimientos del sistema Configuracin de los parmetros de red en el equipo Windows Informacin necesaria para configurar los parmetros de red Configurando correctamente los parmetros de red Verificacin de los Parmetros de Red Configuracin del nombre de equipo Windows Uniendo el equipo Windows al Dominio Samba Como Iniciar Sesin el Dominio Samba Como permitir que un usuario cambie la contrasea de dominio Como mapear una unidad de disco en red al directorio home en el servidor Como compartir archivos en la red a usuarios y grupos de dominio Como habilitar el uso de scripts de inicio de sesin en un dominio Samba 13. Integrando Clientes Linux/Unix al Dominio Samba Informacin preliminar del equipo cliente Linux Instalando el software necesario para unir cliente Linux a Dominio LDAP Configurando la resolucin de cuentas de usuario y grupos mediante LDAP en clientes Linux Configurando la Autorizacin de cuentas de usuario y grupos mediante LDAP en clientes Linux con PAM Configuracin del modulo auth Configuracin del modulo account Configuracin del modulo session Configuracin del modulo password Probando la autorizacin mediante PAM LDAP en cliente Linux Configurando resolucin de cuentas de dominio mediante Samba Autenticacin de usuarios y grupos de dominio Samba en clientes Linux Montaje automtico de carpetas compartidas mediante pam_mount Carpetas compartidas con ACL a usuarios y grupos de dominio Autenticando cuentas de usuario de dominio de forma desconectada 14. Resolucin de Problemas 15. Referencias adicionales 16. Apendices El archivo de configuracin /etc/ldap/slapd.conf (Servidor slapd) El archivo de configuracin /etc/default/slapd El archivo de configuracin /etc/ldap/ldap.conf (Cliente LDAP) El archivo de configuracin /etc/smbldap-tools/smbldap_bind.conf El archivo de configuracin /etc/smbldap-tools/smbldap.conf El archivo de configuracin smb.conf El archivo de configuracin /etc/ldap.conf (NSS_LDAP y PAM_LDAP)
Prohibida la reproduccin total o parcial de este documento.

3 de 108

A. Historial de Revisiones B. Licencia de Documentacin Libre de GNU PREMBULO APLICABILIDAD Y DEFINICIONES COPIA LITERAL COPIADO EN CANTIDAD MODIFICACIONES COMBINACIN DE DOCUMENTOS COLECCIONES DE DOCUMENTOS AGREGACIN CON TRABAJOS INDEPENDIENTES TRADUCCIN TERMINACIN REVISIONES FUTURAS DE ESTA LICENCIA ADENDA: Cmo usar esta Licencia en sus documentos C. GNU Free Documentation License Lista de figuras 2.1. Mapa de red Example 2.2. Diagrama DIT 12.1. Propiedades de Protocolo Internet (TCP/IP) General 12.2. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS 12.3. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS - Agregar 12.4. Viendo los detalles de la conexin de red 12.5. Propiedades del sistema, Nombre de Equipo 12.6. Propiedades del sistema, Cambios en el nombre de equipo 12.7. Usando el Asistente de Identificacin de red 12.8. Asistente de identificacin de red, paso 1 12.9. Asistente de identificacin de red, paso 2 12.10. Asistente de identificacin de red, paso 3 12.11. Asistente de identificacin de red, paso 4 12.12. Asistente de identificacin de red, paso 5 12.13. Asistente de identificacin de red, paso 6 12.14. Asistente de identificacin de red, paso 7 12.15. Asistente de identificacin de red, paso 8 12.16. Asistente de identificacin de red, paso 9 12.17. Asistente de identificacin de red, Ultimo Paso 12.18. Asistente de identificacin de red, Re iniciar el equipo 12.19. Asistente de identificacin de red, Alerta de re iniciar el equipo 12.20. Inicio de sesin de Windows - Pantalla inicial 12.21. Inicio de sesin de Windows - Pantalla predeterminada de login 12.22. Inicio de sesin de Windows - Pantalla con opciones activa 12.23. Inicio de sesin - Men inicio 12.24. Mapeo de $HOME en Servidor al unidad H: Local 12.25. Listado Carpeta a compartir 12.26. Parametros de carpeta compartida 12.27. Permisos de carpeta compartida 12.28. Seleccionar Usuarios o Grupos 12.29. Permisos por usuario y gruipo 12.30. Permisos para grupo EXAMPLE\contabilidad 12.31. Permisos para EXAMPLE\efuentes Lista de tablas 4.1. Niveles severidad logs slapd 10.1. Tabla de opciones disponibles para el comando smbldap-useradd 10.2. Tabla de opciones disponibles para el comando smbldap-userdel

Prohibida la reproduccin total o parcial de este documento.

4 de 108

10.3. Tabla de opciones disponibles para el comando smbldap-usermod 10.4. Tabla de opciones disponibles para el comando smbldap-userinfo 10.5. Tabla de opciones disponibles para el comando smbldap-groupadd 11.1. Directorios de configuracin a respaldar

En este documento se describe la implementacin de un servidor controlador de dominio con Samba y OpenLDAP en un sistema GNU/LInux con la distribucin Ubuntu Server 8.04 LTS, la funcin principal del controlador de dominio es centralizar la administracin del acceso a los recursos de red de una empresa, esto en la mayora de casos se lleva a cabo mediante controles de acceso basados en cuentas de usuario y grupos. El controlador de dominio basado en Samba y OpenLDAP ofrece los siguientes principales beneficios: Controlar el inicio de sesin local (Autenticacin/Autorizacin) a sistemas GNU/Linux y Windows con controles de acceso basado en cuentas de usuarios y grupos centralizados en el servidor controlador de dominio. Centralizar la administracin de cuentas de usuario y grupos Unix/Linux, Windows y otras aplicaciones con soporte LDAP. Centralizar la autenticacin y los controles de acceso por usuarios y grupos para recursos compartidos en clientes o servidores GNU/Linux y/o Windows. Adems la implementacin aqu descrita puede servir como la base para una implementacin mayor en donde se delega la administracin de los controles de acceso a algunos otros servicios de red, ofreciendo servicios de autenticacin/autorizacin centralizada para: Servidores de correo SMTP, POP3, IMAP usando aplicaciones como Postfix, Sendmail, Courier IMAP Dovecot. Servidores Proxy HTTP como Squid. Servidores Web como Apache. Servidores DNS y DHCP como ISC bind e ISC dhcpd. Servidores FTP como Pure-ftpd. Servidores VPN como OpenVPN. Servidores de mensajera instantnea basados en Jabber como: jabberd Openfire. Aplicaciones Web como sistemas manejadores de contenido (CMS) con soporte de autenticacin va LDAP como: mediawiki, drupal, ezpublish, moodle entre otros. Nota En este documento no se describen los procedimientos para integrar la autenticacin de los servicios antes mencionados. En las siguientes secciones se describen ms a detalle las caracteristicas de la implementacin, se separn por sistema operativo.

Tabla de contenidos

Prohibida la reproduccin total o parcial de este documento.

5 de 108

Caracteristicas Generales Caracteristicas para Entornos Unix/Linux Caracteristicas para Entornos Windows Estructura del Arbol de Directorio (DIT) En este capitulo se describen las caracterisitcas principales de la implementacin del servidor controlador de dominio para la administracin centralizada de cuentas de usuarios y grupos para entornos hetereogeneos con sistemas Unix o GNU/Linux y Windows y otras aplicaciones con soporte LDAP.

La implementacin aqu descrita es para una red de computadoras ficticia de una empresa de tamaao pequeo/mediano. La instalacin del servidor controlador de dominio se realiza en la distribucin Ubuntu Server 8.04 LTS amd64, el servidor solo tiene una interfaz de red conectado al switch de la red local. La Informacin de la red de la empresa EXAMPLE S.A. de C.V se describe a continuacin: Dominio Samba/NT: EXAMPLE. Dominio DNS: example.com. Nombre NetBIOS del servidor PDC: PDC. Nombre DNS FQDN: pdc.example.com. Direccin IP de red para el dominio EXAMPLE : 192.168.221.0/24. Direccin IP del servidor PDC: 192.168.221.3. Direccin IP del gateway para la red LAN: 192.168.221.254. Direccin IP del servidor DNS primario: 192.168.221.253. Direccin IP del servidor DNS secundario: 192.168.221.254. Direccin IP del servidor WINS: 192.168.221.3. Es escencial tener a la mano la informacin de nuestra implementacin ya que ser utilizada en capitulos/secciones posteriores. En el siguiente diagrama se describe la red: Figura 2.1. Mapa de red Example

Prohibida la reproduccin total o parcial de este documento.

6 de 108

Como podemos ver en el diagrama anterior, la red ficticia de la empresa EXAMPLE usa un esquema clasico, una red local con PCs, Laptops, impresoras y algunas servidores, contando un firewall que da salida a Internet. En las siguientes secciones se describen las caracteristicas de la implementacin especificas para los diferentes entornos.

En esta seccin se describen las funcionalidades que podremos obtener al implementar un servidor Centralizado de Autenticacin para redes Unix o GNU/Linux. Para entornos basados en sistemas Unix como GNU/Linux tendremos las siguientes funcionalidades: Servidor de Autenticacin Centralizada, la base de datos de usuarios, contraseas y grupos estar almacenada en un directorio LDAP remoto lo cual permite centralizar y simplificar la administracin de cuentas de que normalmente esta almacenada en los archivos /etc/passwd, /etc/shadow y /etc/group en redes con sistemas Unix o GNU/Linux. Este tipo de implementacin permite reemplazar dominios NIS para antenticacin centralizada tanto para sistemas Unix y Linux. En los equpos clientes no se crearan cuentas locales, ya que estan en el servidor LDAP, la resolucin de nombres de usuarios (UID->Usernames), grupos (GID->Grupos) ser manejada por las herramientas NSS_LDAP, NSS_LDAP buscar los usuarios y grupos en el servidor LDAP central.

Prohibida la reproduccin total o parcial de este documento.

7 de 108

La autorizacin a los diferentes servicios locales (login, KDM, su, sudo, ssh, samba, cron, cups) ser manejada por los modulos de autenticacin PAM_LDAP, mediante estos modulos PAM decidir si se autoriza el acceso al usuario de acuerdo a sus credenciales, si son validas se le autoriza el servicio, si no, entonces se deniega el servicio. La pertenenca a grupos para manejar los permisos y accesos se har centralizado en el servidor LDAP. Mediante PAM se podr otorgar privilegios a algunos servicios de acuerdo al grupo que pertenece el usuario, estos permisos se reflejaran de forma transparente para los usuarios locales. La misma base de usuarios centralizada podr servico para autenticar otro tipo de aplicaciones: Squid, Apache, Correo Electronico, Mensajera Instantanea, etc. Soporte para netgroups de NIS, mediante netgroups usted podr crear diferentes restricciones de acceso sobre los equipos, basados en direccin IP, usuario, grupo. Facl integracin con servicios de comparticin de archivos como NFS y/o Samba para centralizar el amacenamiento de los directorios $HOME de los usuarios. Se usar un mismo usuario y grupo para autenticarse a los diferente servicios de red y no se tendrn que tener cuentas repetidas en varios servidores, esto conlleva a una administracin centralizada. Soporte para replicacin de la base de datos de usuarios mediante replicacin LDAP, se pueden poner ms de un servidor esclavo en la red para balancear las cargas y tener alta disponibilidad. Adems del soporte para centralizar la administracin de cuentas de usuarios y grupos en un directorio LDAP como OpenLDAP y el soporte de autenticacin/autorizacin de NSS_LDAP y PAM_LDAP y administraciin de permisos de acceso a recursos de red para entornos Unix/Linux, es posible agregar soporte para cuentas de usuarios y grupos de redes Windows, en especifico cuentas de dominio tipo NT4. Esta integracin permitir acceder a los recursos de la red desde sitemas con diferentes sistemas operativos.

En esta seccin describiremos que funcionalidades obtendremos al configurar un servidor Samba como Controlador de Dominio para Redes MS Windows. La mayora de las funcionalidades descritas a continuacin solo podrn ser implementadas en Sistemas Operativos MS WIndows XP Pro o superior. Para entornos basados en Sistemas Clientes Windows tendremos las siguientes funcionalidades: Servidor Centralizado para cuentas de red (Controlador Primario de Dominio - PDC). Servidor de archivos. Servidor de Impresoras (Integrado con CUPS). Soporte para Politicas de Sistema al estilo NT usando poledit (el editor de politicas de sistema). Esta caracterstica permite controlar los permisos que el usuario tiene sobre un equipo Windows, entre las caractersitcas principales se encuentran: Permite/restringe que los usuarios de Dominio puedan cambiar las configuraciones del Escritorio de Windows. Permite/restrige que los usuarios puedan cambiar las configuraciones de red de Windows Permite/restringe que los usuarios puedan entrar al Panel de Control de Windows Se pueden definir que aplicaciones puede usar el usuario en su estacin de trabajo.

Prohibida la reproduccin total o parcial de este documento.

8 de 108

Nota Este tipo de polticas pueden ser aplicadas de forma global, (para todos los usuarios del dominio) por usuario por grupo de Domino. Soporte para ejecucin de scripts de inicio de sesin (Logon Scripts) Esta caracterstica permite que cada que vez que un usuario inicie sesin en el Dominio pueda ejecutar un scripts de inicio (.bat, .vbs) donde se pueden hacer varias tareas, entre ellas: Sincronizar el reloj del sistema con el reloj del servidor de dominio (net time) Instalar aplicaciones de forma desatendida (usando WKPG) Mapear unidades de red automaticamente Instalar Impresoras en red de forma desatendida en el equpo local Nota Estas opciones se pueden aplicar a nivel global, por usuario o por grupo. Restriccin por usuario o grupo a carpetas compartidas en red. Con esta funcionalidad se pueden crear listas de control de acceso (ACL por sus siglas en Ings) para permitir no el acceso a ciertas carpetas compartidas en red, esta restriccin se puede aplicar por usuario o por grupo, as, por ejemplo, solo los usuarios del grupo Contabilidad y la directora podrn entrar a la carpeta compartida "contabilidad" y podrn: crear, modificar, borrar archivos o directorios dentro de dicha carpeta compartida. Adems se pueden tener permisos ms granulares en cuanto a los accesos de los archivos y directorios dentro de las carpetas compartidas, por medio de ACLs. Soporte para Perfiles Mviles (Roaming Profiles) para clientes Windows. Con esta caracterisitca se puede almacenar el perfil del usuario en un servidor de red, y as, cada vez que un usuario de dominio inicia sesin en un equpo podr tener sincronizado su perfil disponible en cualquier equpo en el que inicie sesin. Soporte para tener ms de un servidor Controlador de Dominio de Respaldo (BDC) por lo obtendr replicacin de la SAM y alta disponibilidad. En caso de que el servidor PDC no este disponible el servidor BDC se encargar de las tareas de autenticacin y comparticin de archivos. Antes de continuar es importante recordar que la informacin de cuentas de usuario y grupos tanto para cuentas Unix/Linux o Windows se almacenarn en un directorio LDAP en una estructura de arbol especifica, en la siguiente seccin veremos la estructura de arbol del directorio LDAP

En la jerga LDAP, la estructura del arbol de directorio se define utilizando el termino DIT (Directory Information Tree) Arbol de Informacin del Directorio. El DIT en un servidor LDAP normalmente se esquematiza utilizando la estrucura de Arbol, donde las ramas del arbol pueden ser contenedores de informacin, en done puede contener otras entradas o ms ramas/contenedores, por ejemplo una rama para almacenar cuentas de usuario, otra rama para almacenar grupos, etc. Cada entrada en el arbol posee un identificador nico llamado Distinguished Name o DN.
Prohibida la reproduccin total o parcial de este documento.

9 de 108

El primer paso para disear el DIT es definir el Base DN, el Base DN es el nivel ms alto en el arbol de directorio, es decir, la base o raz del directorio. En nuestro caso el Base DN ser definido utilizando los llamados DC Domain Components, similar a la estrucura del Sistema de Nombres de Dominio (DNS). A grandes razgos nuestro DIT quedar como se muestra en la siguiente figura: Figura 2.2. Diagrama DIT

En la figura de arriba de define: dc=example,dc=com: Raz del directorio ou=Users: Contenedor para almacenar cuentas de usuario para sistemas Linux/Unix y Windows ou=Computers: Contenedor para las cuentas de Computadoras (Trusted Machine Accounts) para sistemas Windows ou=Groups: Contenedor para alamacenar Grupos de sistema para sistemas Unix y Windows Este DIT sigue las recomendaciones de el RFC 2307bis. No usamos ou=Hosts para almacenar cuentas de computadoras ya que hay una diferencia entre hosts TCP/IP y cuentas de computadoras Microsoft Windows. Usamos el contenedor ou=DSA para almacenar cuentas de seguridad especificas para clientes LDAP). No es obligatorio utilzar este DIT para tu propia implementacin, ms sin embargo, se recomienda seguir estas recomendaciones para la configuracin inicial, en instalaciones posteriores podrs adaptar el DIT y las configuraciones a tu gusto. Para ms informacin acerca del diseo del DIT ver el documento Diseando un rbol de Directorio LDAP.

La implementacin de este documento ser hecha en la distribucin Ubuntu Server Hardy 8.04, la mayora de los pasos podrn implementarse en Ubuntu Gutsy, a excepcin de las configuracines de NSS_LDAP y PAM_LDAP ya que en Hardy se consolido el archivo de configuracin de ambos. Instalaremos el siguiente software: OpenLDAP 2.4.9-0ubuntu0.8.04.1 OpenLDAP es una implementacin libre de los protocolos LDAP. Samba 3.0.28a-1ubuntu4.7

Prohibida la reproduccin total o parcial de este documento.

10 de 108

Samba es la implementacin libre de los protocolos SMB/CIFS el cual funcionar como servidor Controlador de Dominio usando como base de informacin un directorio LDAP, adems servir como servidor de impresoras y archivos. smbldap-tools 0.9.4-1 Herramientas para administrar cuentas Unix/Posix y Samba almacenadas en un servidor OpenLDAP libnss-ldap 258-1ubuntu3 NSS son las bibliotecas de resolucin de entidades, servirn para resolver nombres de usuarios a UID y viceversa, as como nombres de grupos a GID y viceversa usando como fuente de informacin el directorio LDAP. libpam-ldap 184-2ubuntu2 PAM son los modulos de autenticacin/autorizacin para otorgar permisos de acceso a diferentes servicios locales (login, KDM, su, sudo, ssh, samba, cron, cups, etc.) usando como fuente de informacin el servidor LDAP. Es importante notar que todo el software usado es libre, todos en su mayora con licencias GPL.

Tabla de contenidos Objetivos Instalacin y Configuracin del servidor OpenLDAP Configuracin Inicial del servicio slapd Agregando los esquemas (schemas) necesarios Configurando las Listas de Control de Acceso (ACLs) Configurando los Indices de atributos ms usados Configuracin de los Registros de Eventos (logs) del servidor Slapd Configuracion de los logs en OpenLDAP Configuraciones para sysklogd Configuraciones para syslog-ng Configuracin de los limites de consulta y conexin Revisin de permisos en archivos y directorios de Configuracin Ejecutando una revisin sintactica del archivo de configuracin slapd.conf Iniciando el servidor slapd y haciendo Pruebas Preliminares Controlando el servicio Slapd Recursos adicionales Sitios web Paginas de manual

En este capitulo veremos como instalar y configurar el servidor OpenLDAP y las herramientas de configuracin y administracin cliente en el servidor Ubuntu. La instalacin se realizar usando apt-get con los depositos de software predeterminados, la configuracin se realiza usando el asistente post-instalacin del paquete slapd y de forma manual editando los archivos de configuracin.

En esta seccin instalaremos y configuraremos un servidor OpenLDAP junto con las herramientas de administracin y cliente. La instalacin inicial la realizaremos con el asistente de instalacin de APT.

Prohibida la reproduccin total o parcial de este documento.

11 de 108

root@pdc:~# apt-get install slapd ldap-utils (...) (...) (...) Setting up slapd (2.4.9-0ubuntu0.8.04.1) ... Creating initial slapd configuration... done. Creating initial LDAP directory... done. Starting OpenLDAP: slapd. Setting up ldap-utils (2.4.9-0ubuntu0.8.04.1) ... Processing triggers for libc6 ... ldconfig deferred processing now taking place

Cuando se instala el paquete slapd al final nos lanzar un asistente de configuracin del servicio slapd, ser ver como en la siguiente pantalla:

Aunque despues vamos a reconifgurar el servidor OpenLDAP (slapd), ingresaremos una contrasea para el usuario administrador del servidor LDAP: Administrator passwd: ldapadmin Confirm passwd: ldapadmin El asistente post instalacin automticamente nos configurar un directorio usando el Base DN en base al nombre de dominio que tenga configurado nuestro servidor. Se recomienda reconfigurar el paquete slapd para una configuracin ms personalizada, para reconfigurar el paquete slapd usamos el comando:

Prohibida la reproduccin total o parcial de este documento.

12 de 108

root@pdc:~# dpkg-reconfigure -plow slapd

Al reconfigurar el paquete slapd se lanzar el mismo asistente que vimos atras, pero en este caso ser reconfigurado desde cero. La primer pantalla nos pregunta si queremos omitir la configuracin inicial del servidor slapd, contestaremos: NO

Despues, nos pregunta el nombre de dominio con el que queremos configurar nuestro arbol de directorio, este nombre de dominio ser configurado con la base de nuestro directorio (Base DN) o la base de busqueda de nuestro directorio (Search Base). Si ingresamos el nombre de dominio example.com entonces en formato Domain Component (DC por sus siglas en Ingls) nos pondr nuestra base as: dc=example,dc=com.

Prohibida la reproduccin total o parcial de este documento.

13 de 108

A continuacin nos pregunta el nombre de la organizacin para la que configuraremos el directorio LDAP. Ingresaremos: example

Prohibida la reproduccin total o parcial de este documento.

14 de 108

Despues de configurar el nombre de dominio y la organizacin nos pide ingresar una contrasea para el usuario Administrador del directorio LDAP, en este caso el Distinguished Name (DN por sus siglas en Ingls) de la cuenta ser: cn=admin,dc=example,dc=com, usaremos la contrasea: ldapadmin

Prohibida la reproduccin total o parcial de este documento.

15 de 108

Ahora confirmaremos la contrasea para el Administrador del servidor LDAP, usaremos la misma que se ingreso arriba: ldapadmin

Prohibida la reproduccin total o parcial de este documento.

16 de 108

En este paso seleccionaremos el tipo de base de datos (data store) en el que almacenaremos la informacin de nuestro directorio, utilizaremos el tipo HDB la cual es la opcin recomendada por Ubuntu y por el equipo de desarrollo de OpenLDAP, anteriormente se recomendaba el tipo BDB pero se han encontrado razones por las cuales no se recomienda BDB y esas mismas razones son las que han convencido de considerar como pastura el BDB Data Store para OpenLDAP, podemos encontrar la referenca sobre los problemas presentados en BDB en la siguiente articulo The King is Dead, Long Live the King.

Prohibida la reproduccin total o parcial de este documento.

17 de 108

En el siguiente paso nos pregunta si deseamos eliminar la base de datos del directorio cuando purguemos el paquete slapd, contestaremos: No

Prohibida la reproduccin total o parcial de este documento.

18 de 108

Importante No seleccione la opcin Yes ya que si por error desinstalamos el paquete slapd no perderemos la base de datos del directorio /var/lib/ldap y podremos recuperar nuestra instalacin usando dichos archivos. Si por alguna razn ya existia una base de datos de una instalacin anterior (como en nuestro caso de re instalacin) el asistente nos pregunta si deseamos mover la base de datos vieja a un directorio de respaldo (/var/backups/), elejimos la opcin Yes. Y por ultimo nos pregunta si deseamos permitir conexiones al servidor LDAP usando la version obsoleta del protocolo LDAP 2, por defecto esta desactivado, se recomienda no activarlo ya que las todas aplicaciones que usaremos usan la versin 3 del protocolo LDAP, as que contestaremos: No

Prohibida la reproduccin total o parcial de este documento.

19 de 108

Cuando el asistente termina de configurar los parametros especificados veremos en la salida de la consola un mensaje como el siguiente:
Stopping OpenLDAP: slapd. Moving old database directory to /var/backups: - directory unknown... done. Creating initial slapd configuration... done. Creating initial LDAP directory... done. Reloading AppArmor profiles : done. Starting OpenLDAP: slapd.

La salida anterior nos dice que detuvo el servicio slapd, hizo un respaldo de la base de datos anterior en el directorio /var/backups, regener un archivo de conifguracin en base a nuestras respuestas, inicializa un directorio basico e inicia el servidor slapd con la nueva configuracin y el nuevo directorio. En la siguiente seccin veremos como configurar el servidor slapd para nuestros propositos.

Cuando instalamos el paquete slapd se cre un grupo y un usuario de nombre openldap, con los privilegios de este usuario y grupo ser con los que se ejecutar el demonio slapd, as mismo, los archivos y directorios que utilicemos en nuestra instalacin debern de pertenecer a este usuario y grupo. Verificaremos que se creo un grupo de nombre openldap:
root@pdc:~# grep ldap /etc/group

Prohibida la reproduccin total o parcial de este documento.

20 de 108

openldap:x:108:

Como vemos, nos creo el grupo openldap y tiene el GID: 108 Ahora confirmaremos que el usuario openldap fue creado:
root@pdc:~# grep ldap /etc/passwd openldap:x:105:108:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false

Como vemos nos creo el usaurio openldap, con el ID de Usuario (UID): 105, su grupo primario es el grupo de ID 108 (openldap), su directorio $HOME es /var/lib/ldap, y esta cuenta no tiene un shell vlido: /bin/false. Tambin verificaremos que los permisos del directorio /var/lib/ldap sean los correctos y nos aseguraremos que el usuario openldap tenga permiso de lectura, escritura y acceso al directorio:
root@pdc:~# ls -ld /var/lib/ldap drwx------ 2 openldap openldap 4096 2009-01-11 23:20 /var/lib/ldap

Verificaremos que el demonio slapd sea ejecutado con el usaurio y grupo openldap, esto esta definido en el archivo /etc/default/slapd, y por defecto est as:
root@pdc:~# vim /etc/default/slapd

Este es el contenido del archivo:


# System account to run the slapd server under. If empty the server # will run as root. SLAPD_USER="openldap" # System group to run the slapd server under. If empty the server will # run in the primary group of its user. SLAPD_GROUP="openldap" # Path to the pid file of the slapd server. If not set the init.d script # will try to figure it out from $SLAPD_CONF (/etc/ldap/slapd.conf) SLAPD_PIDFILE=

Antes de modificar el archivo principal de configuracin del demonio slapd, nos aseguraremos de que el demonio no este corriendo, lo verificamos as:
root@pdc:~# ps aux | grep slapd openldap 9495 0.0 2.7 22124 3560 ? Ssl 23:20 0:00 /usr/sbin/slapd -g openldap -u openldap -f /etc/ldap/slapd.conf

Si el servicio esta en ejecucin, entonces lo detendremos as:


root@pdc:~# /etc/init.d/slapd stop Stopping OpenLDAP: slapd.

Ms adelante veremos como controlar el servicio slapd.

Los esquemas (schemas) definen el tipo de objectos (objectClass) que podemos manejar en nuestro arbol de directorio, adems definen el tipo de atributos que podemos usar as como las reglas de sintaxis para cada uno de estos atributos. Los esquemas que vienen por defecto en la configuracin de slapd son los necesarios para poder almacenar informacin de cuentas Unix/POSIX, almacenar informacin para crear un tipo de Directorio Amarillo, o una agenda de contactos. Estos esquemas predeterminados no nos permiten almacenar atributos para cuentas de usuario y dominios Samba/Windows, sin embargo, OpenLDAP permite la carga de esquemas externos para almacenar diferente tipo de informacin, el esquema LDAP Samba permite almacenar la siguiente informacin:

Prohibida la reproduccin total o parcial de este documento.

21 de 108

El Nombre de Dominio Samba: sambaDomainName El SID del Dominio Samba: SambaSID Ruta al directorio del perfil del usaurio Samba: sambaProfilePath Letra de unidad de red asignada al HOME del usuario Samba: sambaHomeDrive La contrasea NT (MD4 hash) del usuario Samba: sambaNTPassword La contrasea LanManager del usuario Samba: sambaLMPassword La ruta del script de inicio de sesin (Logon Script) del usuario Samba: sambaLogonScript La Ruta al directorio HOME del usuario Samba: sambaHomePath El ID del grupo primario al que pertenece el usuario Samba: sambaPrimaryGroupID El esquema samba define ms atributos, pero los principales son estos que se mencionaron arriba, para conocer los demas atributos ver el archivo /etc/ldap/schemas/samba.schema. Los esquemas estan definidos en archivos dentro del directorio /etc/ldap/schema/, el esquema para samba no viene incluido dentro de la instalacin de slapd, as que tendremos que instalar el paquete samba-doc, el cual contiene el archivo samba.schema:
# apt-get install samba-doc

/LDAP/samba.schema.gz /etc/ldap/schema/:

El archivo del esquema de samba se encuentra en el archivo /usr/share/doc/samba-doc/examples en formato comprimido, lo descomprimiremos al vuelo y lo copiaremos al directorio

root@pdc:~# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.sc

Revisamos que tenga los permisos adecuados.


root@pdc:~# ls -l /etc/ldap/schema/samba.schema -rw-r--r-- 1 root root 19424 2009-01-11 23:41 /etc/ldap/schema/samba.schema

Ahora que ya tenemos el archivo del esquema de samba instalado necesitamos decirle al servidor slapd que lo utilize, para hacer esto modificaremos el archivo /etc/ldap/slapd.conf. Antes de modificar el archivo de configuracin de slapd haremos una copia de seguridad:
root@pdc:~# cp /etc/ldap/slapd.conf{,.orig}

Ahora modificaremos el archivo /etc/ldap/slapd.conf.


root@pdc:~# vim /etc/ldap/slapd.conf

En la seccin donde se incluyen los esquemas:


# Schema and objectClass definitions include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema

Despues del esquema inetorgperson agregar:


include /etc/ldap/schema/samba.schema

Prohibida la reproduccin total o parcial de este documento.

22 de 108

De manera que quede as:


# Schema and objectClass definitions include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/samba.schema

No cerraremos este archivo ya que lo seguiremos utilzando en las siguientes secciones.

El archivo slapd.conf(5) ya viene preconfigurado con algunas reglas de acceso, entre ellas una donde permite cambiar la contrasea a los usuarios Unix debidamente autenticados. Ya que nuestro directorio tambin almacenar informacin de cuentas Samba, debemos permitir que los usuarios Samba plenamente autenticados puedan cambiar su contrasea desde el mismo cliente Windows. Las contraseas de cuentas Samba estan almacenadas en los atributos sambaLMPassword y SambaNTPassword, por lo tanto permitiremos a los usuarios autenticados poder cambiar su contrasea. En la seccin de los ACLs, Cambiar:
access to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none

Por:
access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none

No cerraremos este archivo ya que lo seguiremos utilzando en las siguientes secciones.

Es importante que los atributos ms consultados por los clientes y aplicaciones LDAP esten debidamente indexados en la base de datos del directorio LDAP, de no ser as podramos sufrir de penalizaciones en el rendimiento del directorio, en especial en el tiempo de respuesta en las consultas, para optimizar el rendimiento del directorio agregaremos una lista de atributos a la lista de atributos a indexar. En la seccin de Indice de atributos, Cambiar:
# Indexing options for database #1 index objectClass eq

Por:
# Indexing options for database #1 index objectClass,uidNumber,gidNumber index cn,sn,uid,displayName index memberUid,mail,givenname index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq pres,sub,eq eq,subinitial eq

Prohibida la reproduccin total o parcial de este documento.

23 de 108

Si en un futuro desea agregar ms atributos a la lista de indices vea la seccin Agregar nuevos indices de atributos en OpenLDAP. No cerraremos este archivo ya que lo seguiremos utilzando en las siguientes secciones.

En esta seccin se vern los parametros requeridos para configurar el servicio slapd para el resgistro de eventos, los cuales nos ayudarn a analizar la informacin provista por el directorio LDAP, disgnosticar problemas o simplemente para verificar que todo este funcionando correctamente. Veremos las configuraciones requeridas para el legendario syslogd o sysklogd y syslog-ng.

Configuracion de los logs en OpenLDAP


Ya que esta es nuestra primer instalacin de un servidor OpenLDAP, es aconsejable que se incremente el nivel de severidad del registro de eventos del servidor slapd. el parametro loglevel definie la prioridad de los mensajes registrados, la siguiente tabla muestra los niveles de log soportados de acuerdo a la pgina del manual de slapd.conf(5): Tabla 4.1. Niveles severidad logs slapd Nivel Descripcin 1 (0x1 trace) trace function calls 2 (0x2 packets) debug packet handling 4 (0x4 args) heavy trace debugging (function args) 16 32 64 (0x10 BER) print out packets sent and received (0x20 filter) search filter processing 64 (0x40 config) configuration file processin (0x40 config) configuration file processing

128 (0x80 acl) access control list processing 256 (0x100 stats) connections, LDAP operations, results (recommended) 512 (0x200 stats2) stats log entries sent 1024 (0x400 shell) print communication with shell backends 2048 (0x800 parse) entry parsing 16384 (0x4000 sync) LDAPSync replication 32768 (0x8000 none) only messages that get logged whatever log level is set En el valor del parametro loglevel podemos usar tanto el valor nmerico o su equivalente en ingls, para desactivar el registro de eventos de slapd use el valor none. Para nuestro caso usaremos el nivel stats (256) el cual nos mostrar informacin sobre el servicio slapd, conexiones, y accesos al servidor. En la seccin de logs cambiaremos:
# Read slapd.conf(5) for possible values loglevel none

Por:
# Read slapd.conf(5) for possible values loglevel stats

No cerraremos este archivo ya que lo seguiremos utilzando en las siguientes secciones.

Prohibida la reproduccin total o parcial de este documento.

24 de 108

Configuraciones para sysklogd


En la mayora de distribuciones Linux el sistema de logs esta controlado por el demonio syslog, en Ubuntu el paquete sysklogd provee el demonio de logs predeterminado. En la configuracin predeterminada de syslog en Ubuntu, los logs del servidor slapd son enviados con un facility local4.*, y por default todos los mensajes del servidor slapd son enviados a los archivos /var/log/debug y /var/log/syslog, esta configuracin hace que los mesajes de ldap se mezclen con mensajes de sistema generales. Configuraremos el demonio sysklogd para que los logs referentes a OpenLDAP sean enviados a un archivo de logs independiente, por ejemplo, al archivo /var/log/ldap.log. El archivo de configuracin del demonio syslog es /etc/syslog.conf, haremos una copia de respaldo antes de hacer cambios.
root@pdc:~# cp /etc/syslog.conf{,.orig}

Al final del archivo /etc/syslog.conf y agregamos lo siguiente:


# OpenLDAP Logs local4.* -/var/log/ldap.log

Y tambin agregaremos unas exclusiones a los logs debug y syslog para que no se registren logs de ldap en ellos. Cambiando configuracion para el log /var/log/syslog: Cambie:
*.*;auth,authpriv.none -/var/log/syslog

Por
*.*;auth,authpriv.none;local4.none -/var/log/syslog

Ahora cambiamos la configuracin para el log /var/log/debug: Cambie:


*.=debug;\ auth,authpriv.none;\ news.none;mail.none

-/var/log/debug

Por:
*.=debug;\ auth,authpriv.none;\ news.none;mail.none;local4.none

-/var/log/debug

Creamos el archivo vacio para los de ldap:


root@pdc:~# touch /var/log/ldap.log

Ahora reiniciamos el servidor syslog para que los cambios tomen efecto:
root@pdc:~# /etc/init.d/sysklogd restart * Restarting system log daemon... [ OK ]

Ahora pruebe hacer un tail -f /var/log/debug y a /var/log/syslog, reinicie el servidor slapd y vea que no se registre ningn evento relacionado al demonio slapd, si no aparece nada en dichos logs confirme que todos los logs se estan enviando a /var/log/ldap.conf.

Prohibida la reproduccin total o parcial de este documento.

25 de 108

Si usted utiliza logrotate para rotar los logs de OpenLDAP automticamente, cree el archivo de rotacin para los logs de OpenLDAP:
# vim /etc/logrotate.d/slapd

Con el siguiente contenido:


/var/log/ldap.log { rotate 4 weekly missingok notifempty compress postrotate invoke-rc.d sysklogd reload > /dev/null endscript }

Y listo, ahora sus logs se rotarn semanalmente y sern mantenidos durante 4 semanas, al cumplir la 5a semana los logs sern rotados automticamente.

Configuraciones para syslog-ng


Ahora veremos como escribir los logs de OpenLDAP en un archivo independiente usando el servidor syslog-ng, note que este procedimiento es opcional ya que no es el servidor syslog predeterminado en Ubuntu ni en otras distribuciones GNU/Linux. El archivo de configuracin del demonio syslog es /etc/syslog-ng/syslog-ng.conf, haremos una copia de respaldo antes de hacer cambios.
root@pdc:~# cp /etc/syslog-ng/syslog-ng.conf{,.orig}

Ahora agregaremos la definicin del destino de los logs originados por el proceso slapd, al final de la seccin de los destinos agregue algo as:
# Destino para logs de proceso slapd(8). destination d_ldap { file("/var/log/ldap.log"); };

Al final de la seccin donde se definen los filtros, agregamos esto:


# Filtro para logs del proceso slapd(8). filter f_ldap { program("slapd"); };

Al final de la seccin donde se definen la definicin de el log, principalmente conformada por el origen source(src);, el filtro filter(f_ldap);, el destino destination(d_ldap);.
# Deinicin de logs para el proceso slapd(8). log { source(s_all); filter(f_ldap); destination(d_ldap); flags(final); };

Ahora agregaremos unas exclusiones para que no se registren eventos de slapd en los logs /var/log/debug y /var/log /syslog, modificando los filtros haremos los siguientes cambios. Remplazamos:
filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };

Con :
filter f_debug { level(debug) and not facility(auth, authpriv, news, mail) and not filter(f_ldap);

Y tambin remplazamos:

Prohibida la reproduccin total o parcial de este documento.

26 de 108

filter f_syslog { not facility(auth, authpriv); };

Con:
filter f_syslog { not facility(auth, authpriv) and not filter(f_ldap); };

Ahora reiniciamos el servicio syslog-ng para que los cambios tomen efecto:
root@pdc:~# invoke-rc.d syslog-ng restart * Stopping system logging syslog-ng * Starting system logging syslog-ng [ OK ] [ OK ]

Ahora ver que todos los logs referentes a slapd solo sern enviados al archivo /var/log/ldap.log. Si usted utiliza logrotate para rotar los logs de OpenLDAP automticamente, cree el archivo de rotacin para los logs de OpenLDAP:
# vim /etc/logrotate.d/slapd

Con el siguiente contenido:


/var/log/ldap.log { rotate 4 weekly missingok notifempty compress postrotate invoke-rc.d syslog-ng reload > /dev/null endscript }

Y listo, ahora sus logs se rotarn semanalmente y sern mantenidos durante 4 semanas, al cumplir la 5a semana los logs sern rotados automticamente.

Existe un limite de cuantas entradas sern devueltas en las operaciones de busqueda de los clientes LDAP, este limite por defecto esta configurado a 500 lo que significa que solo sern devueltas 500 entradas a los clientes LDAP aun cuando la consulta no tenga limite.
# The maximum number of entries that is returned for a search operation sizelimit 500

Nota Este valor ser incrementado en configuraciones posteriores, en especifico cuando se haga una replicacin/sincronizacin del DIT.

Antes de reiniciar nuestro servidor para que nuestros cambios tomen efecto, verificaremos que los permisos sean los adecuados: Verificando que los permisos del archivo /etc/ldap/slapd.conf esten como se muestra aqu:
root@pdc:~# ls -l /etc/ldap/slapd.conf -rw-r----- 1 root openldap 5079 2009-01-11 23:45 /etc/ldap/slapd.conf

Prohibida la reproduccin total o parcial de este documento.

27 de 108

Si no estan as, entonces cambiarlos con los comandos:


root@pdc:~# chown root:openldap /etc/ldap/slapd.conf

Y
root@pdc:~# chmod 640 /etc/ldap/slapd.conf

En la siguiente seccin veremos como realizar una revisin sintactica del arcihvo de configuracin del demonio slapd.

Antes de reiniciar nuestro servidor slapd realizaremos una comprobacin de que nuestras configuraciones esten correctas, el comando slaptest nos har una revisin sintactica de nuestro archivo de configuracin /etc/ldap/slapd.conf.
root@pdc:~# slaptest -v -u config file testing succeeded

Con la opcin -v habilitamos el modo verbose, esto es para que muestre detalles sobre posibles errores encontrados en la configuracin. La opcin -u permite que solo se ejeucta la revisin sintactica aun cuando no se puedan abrir los archivos de bases de datos del directorio (/var/lib/ldap/). Si el comando slaptest nos muestra algun error, posiblemente nos dir en que parte del archivo se encuentra el error. Si no nos es posible diagnosticar el error se recomienda ver el archivo de log /var/log/ldap.log correr el deminio slapd con el nivel de severidad mayor, por ejemplo:
root@pdc:~# slapd -d 16383

Esto nos mostrar todos los mensajes en la terminal y no en los logs.

Ahora que ya tenemos nuestro servidor correctamente configurado y todas los permisos estan correctos podremos iniciar nuestro servidor de forma ordinaria usando el script de inicio, para iniciar el servidor slapd usamos el comando:
root@pdc:~# /etc/init.d/slapd start Starting OpenLDAP: slapd.

Si el servidor slapd se inicia correctamente, este registrar en el log /var/log/syslog el siguiente mensaje:
Jan 11 23:51:06 pdc slapd[9753]: @(#) $OpenLDAP: slapd 2.4.9 (Aug 1 2008 01:08:50) $ ^Ibuildd@terranova:/build/buildd/openldap2.3-2.4.9/debian/build/servers/slapd Jan 11 23:51:06 pdc slapd[9755]: slapd starting

En el mensaje anterior nos muestra que el proceso slapd con el identificador de proceso (PID) 15795 se inicio correctamente. Ahora revisaremos que el servidor slapd haya abierto el socket TCP/IP, en especifico veremos que nos abra el puerto TCP/389. Con el comando netstat veremos si el proceso slapd con PID 15795 abre el puerto TCP/389.
root@pdc:~# netstat -pltn | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 9755/slapd

Prohibida la reproduccin total o parcial de este documento.

28 de 108

tcp6

0 :::389

:::*

LISTEN

9755/slapd

Ahora haremos una consulta al servidor LDAP para ver si responde con lo ms bsico. Usaremos el comando ldapsearch para buscar el namingContexts del DIT.
root@pdc:~# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts # extended LDIF # # LDAPv3 # base <> with scope baseObject # filter: (objectclass=*) # requesting: namingContexts # # dn: namingContexts: dc=example,dc=com # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1

SI el comando ldapsearch nos muestra algo similar a lo que se muestra arriba significa que nuestro servidor LDAP esta funcionando correctamente. Ahora haremos una busqueda en el directorio LDAP autenticado como el usuario admin del LDAP y haremos la buqueda usando como base dc=example,dc=com, esto es para comprobar que la autenticacin y nuestras ACLs funcionen correctamente, adems, de comprobar que el directorio se haya incializado con la estrucutra bsica..
root@pdc:~# ldapsearch -x -D "cn=admin,dc=example,dc=com" -b "dc=example,dc=com" -W Enter LDAP Password:ldapadmin # extended LDIF # # LDAPv3 # base <dc=example,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # example.com dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization o: example dc: Example S.A. de C.V. # admin, example.com dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e2NyeXB0fWUwTng4TmRUZk54Wm8= # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2

Prohibida la reproduccin total o parcial de este documento.

29 de 108

En esta seccin veremos como controla el servicio slapd, al controlar el servicio nos referimos a iniciar, detener, reiniciiar el proceso slapd. Para iniciar el servidor slapd usando los scripts de inicio, usaremos el siguiente comando:
root@pdc:~# invoke-rc.d slapd start Starting OpenLDAP: slapd.

Para detener el servidor slapd usando los scripts de inicio, usaremos:


root@pdc:~# invoke-rc.d slapd stop Stopping OpenLDAP: slapd.

Si deseamos que el servidor slapd sea iniciado automticamente al arranque del sistema, usaremos el comando:
root@pdc:~# update-rc.d slapd defaults Adding system startup for /etc/init.d/slapd ... /etc/rc0.d/K20slapd -> ../init.d/slapd /etc/rc1.d/K20slapd -> ../init.d/slapd /etc/rc6.d/K20slapd -> ../init.d/slapd /etc/rc2.d/S20slapd -> ../init.d/slapd /etc/rc3.d/S20slapd -> ../init.d/slapd /etc/rc4.d/S20slapd -> ../init.d/slapd /etc/rc5.d/S20slapd -> ../init.d/slapd

Cuando se instala el paquete slapd, este agregar el servicio slapd para que sea iniciado automaticamente al arranque del sistema, por lo que es posible que reciba un mensaje como el siguiente:
root@pdc:~# update-rc.d slapd defaults System startup links for /etc/init.d/slapd already exist.

Si deseamos que el servidor slapd NO sea iniciado al arranque del sistema usaremos el comando:
root@pdc:~# update-rc.d -f slapd remove Removing any system startup links for /etc/init.d/slapd ... /etc/rc0.d/K20slapd /etc/rc1.d/K20slapd /etc/rc2.d/S20slapd /etc/rc3.d/S20slapd /etc/rc4.d/S20slapd /etc/rc5.d/S20slapd /etc/rc6.d/K20slapd

Con el comando anterior slapd ya no ser iniciado al arranque del sistema, para controlarlo se tendr que hacer con los comandos antes mencionados.

Si desea obtener ms informacin sobre los programas y pginas de manual relacionadas se aconseja que acceda a los siguientes recursos adicionales.

Sitios web
En las paginas listadas a continuacin encontrar mayor informacin sobre los programas utilizados en este capitulo. http://www.openldap.org/doc/admin24/ - OpenLDAP Software 2.4 Administrator's Guide http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/ - The Linux Samba-OpenLDAP Howto https://help.ubuntu.com/8.04/serverguide/C/openldap-server.html - Ubuntu Server Guide - OpenLDAP Server

Prohibida la reproduccin total o parcial de este documento.

30 de 108

Paginas de manual
Para conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se recomienda leer los manuales relacionados. apt-get (8) - APT package handling utility - command-line interface dpkg-reconfigure (8) - reconfigure an already installed package slaptest (8) - Check the suitability of the OpenLDAP slapd.conf file slapd (8) - Stand-alone LDAP Daemon ldapsearch (1) - LDAP search tool syslog.conf (5) - syslogd(8) configuration file netstat (8) - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships update-rc.d (8) - install and remove System-V style init script links update-rc.d (8) - install and remove System-V style init script links

Las herramientas cliente LDAP como: ldapsearch, ldapmodify, ldapadd y otras usan los parametros de configuracin definidos en el archivo /etc/ldap/ldap.conf, bsicamente en este archivo se pueden definir los siguientes parametros: URI - Direccin del servidor o servidores LDAP predeterminados BASE - Sufijo de la base de busqueda Base DN SIZELIMIT - Tamao mximo de las busquedas TIMELIMIT - Limite de tiempo para las consultas BINDDN - DN de la cuenta con la que se efectuarn las operaciones Antes de modificar el archivo de configuracin global del cliente LDAP, respalde el archivo:
root@pdc:~# cp /etc/ldap/ldap.conf{,.orig}

Editemos el archivo de configuracin del cliente LDAP /etc/ldap/ldap.conf:


root@pdc:~# vim /etc/ldap/ldap.conf

Definimos el la direccin del servidor LDAP y la base de busqueda:


BASE URI dc=example,dc=com ldap://127.0.0.1

Los parametros antes definidos son de uso general, si desea usar parametros diferentes para un usuario de sistema en particular cree un archivo ~/.ldaprc dentro del directorio home del usuario, por ejemplo:
root@pdc:~# vim ~/.ldaprc

Con el contenido:

Prohibida la reproduccin total o parcial de este documento.

31 de 108

BASE URI BINDDN

dc=example,dc=com ldap://127.0.0.1 cn=admin,dc=example,dc=com

Para ms informacin sobre el archivo /etc/ldap/ldap.conf y ~/.ldaprc ver la pgina del manual ldap.conf(5).

Tabla de contenidos Objetivos Instalacin y configuracin del servidor Samba Instalando el servidor y cliente Samba Configuracines de Samba para Controlador de Dominio Parametros Globales del servidor Samba Configuracines del registro de eventos (logs) del servidor Samba Configuraciones de Red para el servidor Samba Configurando los Parametros para Controlador de Dominio Parametros para interaccin con el servidor LDAP Configuraciones de Codificacin y Charset El recurso compartido especial [homes] El recurso compartido especial [netlogon] El recurso compartido especial [profiles] El recurso compartido publico Realizando una Revisin Sintactica del archivo de configuracin smb.conf Especificando la contrasea del ldap admin dn Instalacin y Configuracin de las smbldap-tools Llenando el Directorio LDAP con smbldap-populate Verificando la instalacin y configuracin de Samba y LDAP Probando Samba con Cuentas en el Directorio LDAP Verificando el mapeo del grupos unix a grupos Samba Probando conexiones al servidor Samba usando cuentas en LDAP En este capitulo se explicar como configurar el servidor Samba y las herramientas smbldap-tools para configurar Samba como Controlador de Dominio PDC usando como un directorio OpenLDAP como fuente de informacin centralizada para cuentas Unix (Posix) y Windows (Samba).

Los objetivos a realizar en este capitulo son los siguientes: Instalar y configurar el servidor Samba como Controlador de Dominio PDC con LDAP. Instalar y configurar las herramientas smbldap-tools para inicializar el directorio LDAP con la informacin del controlador de dominio. Validar la instalacin y configuracin de Samba como controlador de dominio PDC con LDAP y las herramientas smbldap-tools. Siga con las siguientes secciones para realizar cada una de los procedimientos antes mencionados.

En esta seccin configuraremos el servidor Samba como un Controlador de Dominio Primario (PDC) Windows NT con la

Prohibida la reproduccin total o parcial de este documento.

32 de 108

base de datos SAM almacenada en nuestro directorio LDAP. Los parametros Generales que configuraremos son: Parametros de identificacin de red como: Dominio, Nombre Servidor. Configuracin para registro de eventos (logs) Interfaces y direcciones de red a las que esta conectado el servidor Configuracin de parametros para Controlador de Dominio Informacion del servidor LDAP y como utilizarlo Definicin de script para automatizar la administracin de las cuentas samba/ldap. Directorios compartidos especiales como homes, netlogon y profiles. La configuracin la realizaremos paso por paso tratando de explicara cada cambio.

Instalando el servidor y cliente Samba


En esta seccin instalaremos el servidor samba que en Debian/Ubuntu esta conformado principalmente por los paquetes: samba y smbclient, el primero contiene los programas para servidor y el segundo las herramientas de cliente, diagnostico y resolucin de problemas. Instalamos los paquetes para cliente y servidor Samba:
root@pdc:~# apt-get install samba smbclient

El paquete que instala la parte servidor de samba preconfigurado con algunos parmetros, adems de que importa los usuarios de sistema en /etc/passwd a la base de datos de cuentas samba, en nuestro caso esta configuracin no nos sirve por lo que eliminaremos la configuracin creada y los archivos de configuracin que se crearon, para inicializar la configuracin de samba detenemos los servicios samba siga los siguienes pasos:
root@pdc:~# /etc/init.d/samba stop * Stopping Samba daemons [ OK ]

Ahora eliminamos los archivos .tdb y .dat en /var/lib/samba:


root@pdc:~# rm -rfv /var/lib/samba/*.{tdb,dat}

Nota Todava no iniciaremos el servidor samba hasta que este nuevamente configurado. Continuaremos con la configuracn de samba.

Configuracines de Samba para Controlador de Dominio


El archivo de configuracin principal de Samba es /etc/samba/smb.conf, ya que iniciaremos con una configuracin nueva, haremos un respaldo de este archivo antes de iniciar con las modificaciones. Creamos el respaldo del archivo /etc/samba/smb.conf:
root@pdc:~# mv /etc/samba/smb.conf{,.orig}

En la siguiente seccin podemos continuar con los parametros que nos intersan.

Prohibida la reproduccin total o parcial de este documento.

33 de 108

Parametros Globales del servidor Samba El archivo de conifguracin de samba define la seccin [global], en esta seccin especificaremos parametros globales que afectarn el comportamiento del servidor Samba, los parametros principales son:: El nombre del Grupo de Trabajo/Dominio al que pertenecemos: EXAMPLE Nombre NetBIOS del Servidor Samba: PDC Descripcin del servidor Samba: Servidor PDC Adems configuraremos los siguientes parametros extras: Soporte para habilitar privilegios de Grupos de Dominio Samba: enable privileges = yes, este parametro es til por ejemplo para dar privilegios a los usuarios miembros del grupo Domain Admins para unir equpos Windows a un Dominio NT. Crearemos un archivo /etc/samba/smb.conf nuevo con los siguientes parametros: El inicio de la seccin global quedar as:
[global] workgroup = EXAMPLE netbios name = PDC server string = Servidor PDC enable privileges = yes map to guest = Bad User username map = /etc/samba/smbusers

El parametro map to guest = Bad User define que cuando un usuario no existente (en el dominio) se conecte al servidor, el servidor smbd mapear esa conexin al usuario anonimo, pero las conexines de usuarios que se autentiquen con una contrasea invalida sern rechazadas. La ultima opcin que especificamos es username map apuntando al archivo /etc/samba/smbusers, este archivo sirve para mapear nombres de usuarios (alias), por ejemplo en este archivo podemos crear un mapeo de usuario para que la cuenta root sea mapeada a Administrator que es comunmente usada en entornos de red Windows para la cuenta de administrador. Para hacer esto, creamos el archivo /etc/samba/smbusers con el siguiente contenido:
root = Administrator

No cerraremos el archivo ya que agregaremos ms informacin en la seccin [global] en las siguientes secciones
Configuracines del registro de eventos (logs) del servidor Samba

Ahora configuraremos algunos parmetros para la generacin de mensajes de logs, en la seccin [global] agregue las siguientes lneas:
syslog = 0 log level = 0 max log size = 50 log file = /var/log/samba/%m.log

La configuracin anterior especifica que no se envan los logs al demonio syslog local, el nvel de severidad de logs es 0 (ms bajo), se define un tamao de logs de 50M y los logs de las conexiones de los equipos o usuarios clientes se guardan en el directorio /var/log/samba con el formato MAQUINA.log. Para ms informacin acerca de los parmetros de configuracin para los logs vea la pgina del manual smb.conf(5).

Prohibida la reproduccin total o parcial de este documento.

34 de 108

No cerraremos el archivo ya que agregaremos ms informacin en la seccin [global] en las siguientes secciones
Configuraciones de Red para el servidor Samba

En esta seccin configuraremos los parametros de red y algunas configuraciones de seguridad recomendadas.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = eth0 lo hosts allow = 127.0.0.1, 192.168.221.0/24 hosts deny = 0.0.0.0 smb ports = 139 445 bind interfaces only = Yes name resolve order = wins hosts lmhosts bcast remote announce = 192.168.1.255

No cerraremos el archivo ya que agregaremos ms informacin en la seccin [global] en las siguientes secciones
Configurando los Parametros para Controlador de Dominio

Ahora configuraremos los parametros relacionados con la configuracin de un servidor Controlador de Dominio.
time server = Yes wins support = Yes os level = 33 domain logons = Yes preferred master = Yes logon logon logon logon path = home = drive = script =

case sensitive = No utmp = Yes

No cerraremos el archivo ya que agregaremos ms informacin en la seccin [global] en las siguientes secciones
Parametros para interaccin con el servidor LDAP

Ahora definiremos los parametros necesarios para que samba utilice el directorio LDAP.
passdb backend = ldapsam:ldap://127.0.0.1/ ldap admin dn = cn=admin,dc=example,dc=com ldap suffix = dc=example,dc=com ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Idmap idmap backend = ldap:ldap://127.0.0.1 idmap uid = 10000-20000 idmap gid = 10000-20000 winbind trusted domains only = Yes #ldap ssl = start_tls ldap passwd sync = Yes add machine script = /usr/sbin/smbldap-useradd -w "%u" add user script = /usr/sbin/smbldap-useradd -m "%u" ldap delete dn = No #delete user script = /usr/sbin/smbldap-userdel "%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"

Prohibida la reproduccin total o parcial de este documento.

35 de 108

delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

No cerraremos el archivo ya que agregaremos ms informacin en la seccin [global] en las siguientes secciones
Configuraciones de Codificacin y Charset

Ahora configuraremos los parametros para especificar el juego de caracteres predeterminado para archivos dos y unix.
dos charset = 850 Unix charset = ISO8859-1

Hasta aqu termina la seccin Global de smb.conf, en las siguientes secciones configuraremos secciones especiales para nuestro Controlador de Dominio. El recurso compartido especial [homes] El recurso compartido [homes] es un recurso compartido especial que es usado para compartir el directorio $HOME de cada usuario, por ejemplo, tenemos un usuario unix/windows de nombre jmedina, este usuario tiene un directorio $HOME en la ruta /home/jmedina, con este recurso compartido, cada vez que el usuario jmedina inicia sesin por Samba, tendr disponible un recurso compartido en el servidor con el nombre "jmedina" y por medio de l podr entrar a sus archivos privados en el servidor.
[homes] comment = Home Directories valid users = %U read only = No create mask = 0664 directory mask = 0775 browseable = No

La linea valid users = %U indica que este recurso compartido solo esta disponible para los usuarios Samba autenticados. En este recurso compartido no se especifica un path ya que podr variar dependiendo del usuario que haga login. El recurso compartido especial [netlogon] Este es otro recurso compartido especial, el recurso [netlogon] solo es utilizado cuando Samba actua como un Controlador de Dominio, el proposito de este recurso compartido es almacenar los scripts de inico (logon scripts), estos scripts son ejecutados cada vez que un usuario inicia sesin en el dominio.
[netlogon] path = /home/samba/netlogon/ browseable = No read only = yes

La opcin browseable = No especifica que este recurso compartido no ser visible en la lista de shares disponibles en el servidor, ms sin embargo, si podr ser accesado para los usuarios que hacen login en el dominio, el acceso ser de solo lectura. TODO: Meter opcin para que los usuarios miembros del grupo "Domain Admins" tengan permiso de escritura a este recurso compartido, as, estos usuarios podrn crear los logon scripts. Ahora creamos el directorio base en el cual almacenaremos los logon scripts:
root@pdc:~# mkdir -p --mode 755 /home/samba/netlogon

TODO: Cambiar los permisos a root:"Domain Admins" con permisos 775???????????

Prohibida la reproduccin total o parcial de este documento.

36 de 108

Ahora crearemos un logon script bastante simple que har las siguientes operaciones Sincronizar el reloj del servidor con el del equipo local Mapear el recurso de red \\PDC-SRV\homes a la unidad H: Creamos el archivo /home/samba/netlogon/logon.bat:
root@pdc:~# vim /home/samba/netlogon/logon.bat

Y agregue el siguiente contenido:


net time \\PDC /set /yes net use h: \\PDC\homes

Ahora convertimos el archivo a formato DOS con CR/LF


root@pdc:~# sed -i 's/$/\r/' /home/samba/netlogon/logon.bat

TODO: Verificar si el script requiere permisos de ejecucin TODO: Meter seccin sobre ntlogon.pl o ntlogon.py El recurso compartido especial [profiles] El recurso compartido [profiles] tambin es de uso especial y solo es necesario cuando Samba se configura como Controlador de Dominio, el proposito de este recurso compartido es almacenar los Perfiles de Usuarios, en especifico es usado cuando se configura que los usuarios de dominio utilizen los Perfiles Mviles (Roaming Profiles).
[profiles] path = /home/samba/profiles read only = No create mask = 0600 directory mask = 0700 browseable = No guest ok = Yes profile acls = Yes csc policy = disable force user = %U valid users = %U @"Domain Admins"

La ruta de este recurso compartido ser usado con el atributo ProfilePath para indicar la ruta en donde esta almacenado el Perfil del Usuario, por ejemplo, la entrada en la SAM del dominio para el usuario jmedina especifica: ProfilePath=\\PDC\profiles\jmedina, lo cual indica que el perfil del usuario jmedina estar en el directorio local /home/samba/profiles/jmedina. Creamos el directorio para el recurso compartido profiles:
root@pdc:~# mkdir -p --mode 1777 /home/samba/profiles

Continue editando el archivo para agregar el recurso compartido publico. El recurso compartido publico Crearemos un recurso compartido publico con documentos, programas e imagenes en donde cualquier usuario del dominio puede acceder, incluso usuarios anonimos, el recurso compartido se llamar publico, y en samba lo definimos as:
[publico] comment = Directorio de datos publicos path = /home/samba/publico read only = Yes

Prohibida la reproduccin total o parcial de este documento.

37 de 108

guest ok = yes

Creamos el directorio:
root@pdc:~# mkdir -p /home/samba/publico/{docs,programas,imagenes}

Ahora si puede ugardar el archivo y continuar con las configuraciones. Realizando una Revisin Sintactica del archivo de configuracin smb.conf Despues de haber editado el archivo de conifguracin smb.conf ejecutaremos el comando testparm para realizar un revisin sintactica del archivo smb.conf, este comando nos dir si hay algn error de configuracin, o si algun parametro esta mal escrito. Para correr la revisn ejecutamos:
root@pdc:~# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[profiles]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions

Si le aparece el mensaje "ERROR: the 'unix password sync' parameter is set and the 'passwd program' (/usr/sbin/smbldappasswd) cannot be executed (error was No such file or directory)." ignorelo, en la siguiente seccin instalaremos el paquete smbldap-tools. Si hubiera algun error en la sintaxis el comando testparm no lo reportar y nos dir en que linea se encuentra el error y alguna descripcin corta sobre el error. Nota Todava no es momento de iniciar el servidor samba. Para ms informacin acerca de los parametros en el archivo de configuracin /etc/samba/smb.conf ver la pgina del manual smb.conf(5). Especificando la contrasea del ldap admin dn Para que Samba pueda agregar/modificar cuentas almacenadas en el directorio LDAP es necesario que sepa la contrasea del usuario ldap admin dn especificada en el archivo smb.conf. La cuenta del ldap admin dn debe de tener los suficientes permisos para leer, agregar y modificar entradas en el directorio LDAP. Para especificar la contrasea del admin dn, usamos el comando:
root@pdc:~# smbpasswd -W Setting stored password for "cn=admin,dc=example,dc=com" in secrets.tdb New SMB password:ldapadmin Retype new SMB password:ldapadmin

La contrasea ser almacenada en el archivo /var/lib/samba/secrets.tdb. Se almacena aqu para no tener que espcificarla cada vez que se vaya a ejecutar alguna operacin relacionada a cuentas Samba en el directorio LDAP. El archivo secrets.tdb debe de tener los permisos as:
root@pdc:~# ls -l /var/lib/samba/secrets.tdb -rw------- 1 root root 8192 2008-06-18 23:29 /var/lib/samba/secrets.tdb

Prohibida la reproduccin total o parcial de este documento.

38 de 108

Nota Para poder manipular los archivos tdb podemos utilizar las herramientas del paquete tdb-tools. Ahora si podemos iniciar el servidor samba
root@pdc:~# /etc/init.d/samba start * Starting Samba daemons [ OK ]

En la siguiente seccin veremos como configurar las herramientas smbldap-tools para facilitar la administracin de cuentas de usuario y grupos en sistemas basados en Samba y OpenLDAP.

Ahora configuraremos las herramientas smbldap-tools para predefinir los parametros de configuracin para la administracin de cuentas Unix y Samba. Primero instalaremos el paquete smbldap-tools as:
root@pdc:~# apt-get install smbldap-tools

Los archivos de configuracin de las herramientas smbldap-tools se encuentran en el directorio /etc/smbldap-tools, en este directorio deben de existir dos archivos de configuracin, el archivo smbldap.conf contiene directivas de configuracin tanto para la creacin y modificacin de cuentas Unix y Samba y el archivo smbldap_bind.conf contiene el usuario y la contrasea del usuario con el que nos conectaremos al servidor LDAP para efectura las operaciones de administracin de usuarios y grupos Unix/Samba. Ya que el archivo /etc/smbldap-tools/smbldap.conf no existe, usaremos un archivo de ejemplo que se instala junto con el paquete smbldap-tools, lo copiamos as:
root@pdc:~# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap

El archivo smbldap_bind.conf tampoco existe por lo que utilizaremos el archivo de ejemplo:


root@pdc:~# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/

Antes de empezar a configurar estas herramientas cambiaremos los permisos de acceso para estos archivos, Entramos al directorio /etc/smbldap-tools:
root@pdc:~# cd /etc/smbldap-tools

Cambiamos el usuario y grupo propietarios para los archivos, el usaurio dueo debe de ser root y el grupo dueo debe de ser openldap.
root@pdc:~# chown root:openldap smbldap*

Nadie ms a exepcion del usuario root tendr permiso de lecutra y escritura sobre los archivos, el grupo openldap solo tendr permisos de lectura.
root@pdc:~# chmod 640 smbldap*

Editaremos el archivo de configuracin smbldap_bind.conf para especificar el usuario con con el que haremos las operaciones de administracion de usurios y grupos en el servidor LDAP.
root@pdc:~# vim smbldap_bind.conf

Prohibida la reproduccin total o parcial de este documento.

39 de 108

Cambiar:
slaveDN="cn=Manager,dc=company,dc=com" slavePw="secret" masterDN="cn=Manager,dc=company,dc=com" masterPw="secret"

Por:
slaveDN="cn=admin,dc=example,dc=com" slavePw="ldapadmin" masterDN="cn=admin,dc=example,dc=com" masterPw="ldapadmin"

Nota Aunque aun no tengamos configurado un servidor LDAP esclavo usaremos el mismo cn=admin que en nuestro servidor Maestro. En el archvo smbldap.conf se debe de especificar el SID del dominio Samba con el que estaremos trabajando, para obtener el SID de nuestro servidor utilizaremos el comando net. Obteniendo el SID local:
root@pdc:~# net getlocalsid SID for domain PDC-SRV is: S-1-5-21-2911508632-2405292923-4115677068

El SID resultante lo copiaremos, en este caso el SID es: S-1-5-21-2911508632-2405292923-4115677068 Como minimo debemos de configurar los parametros que estan marcados en negritas. Ahora editamos el archivo principal de configuracin de smbldap-tools /etc/smbldap-tools/smbldap.conf:
root@pdc:~# vim /etc/smbldap-tools/smbldap.conf

TODO: Dividir los parametros globales para el dominio Samba y los parametros para especificar en que servidor LDAP almacenaremos la informacin de cuentas Unix/Samba. Primero editaremos los parametros referentes al dominio Samba:
# Put your own SID. To obtain this number do: "net getlocalsid". # If not defined, parameter is taking from "net getlocalsid" return SID="S-1-5-21-2911508632-2405292923-4115677068" # Domain name the Samba server is in charged. # If not defined, parameter is taking from smb.conf configuration file # Ex: sambaDomain="IDEALX-NT" sambaDomain="EXAMPLE" # Slave LDAP server # Ex: slaveLDAP=127.0.0.1 # If not defined, parameter is set to "127.0.0.1" slaveLDAP="127.0.0.1" # Slave LDAP port # If not defined, parameter is set to "389" slavePort="389" # Master LDAP server: needed for write operations # Ex: masterLDAP=127.0.0.1 # If not defined, parameter is set to "127.0.0.1" masterLDAP="127.0.0.1"

Prohibida la reproduccin total o parcial de este documento.

40 de 108

# Master LDAP port # If not defined, parameter is set to "389" masterPort="389"

Conifguraciones de TLS/SSL: Ya que en esta instalacin inicial no usaremos comunicacione seguras por SSL/TLS desactivaremos el uso de TLS en nuestra configuracin.
# Use TLS for LDAP # If set to 1, this option will use start_tls for connection # (you should also used the port 389) # If not defined, parameter is set to "1" ldapTLS="0"

Ahora especificaremos el Base DN de nuestro directorio LDAP, esta configuracin servir como variable para otras configuraciones, todos los contenedores para almacenar cuentas y grupos estarn bajo este Base DN.
# LDAP Suffix # Ex: suffix=dc=IDEALX,dc=ORG suffix="dc=example,dc=com" # Where to store next uidNumber and gidNumber available for new users and groups # If not defined, entries are stored in sambaDomainName object. # Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" # Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" # Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT) hash_encrypt="SSHA" # if hash_encrypt is set to CRYPT, you may set a salt format. # default is "%s", but many systems will generate MD5 hashed # passwords if you use "$1$%.8s". This parameter is optional! crypt_salt_format="%s" # Domain appended to the users "mail"-attribute # when smbldap-useradd -M is used # Ex: mailDomain="idealx.com" mailDomain="example.com"

Configure algunos parmetros predeterminados para cuentas de usuario y grupos Unix:


# Login defs # Default Login Shell # Ex: userLoginShell="/bin/bash" userLoginShell="/bin/false" # Home directory # Ex: userHome="/home/%U" userHome="/home/%U" # Default mode used for user homeDirectory userHomeDirectoryMode="700" # Gecos userGecos="System User" # Default User (POSIX and Samba) GID defaultUserGid="513" # Default Computer (Samba) GID defaultComputerGid="515" # Skel dir skeletonDir="/etc/skel" # Default password validation time (time in days) Comment the next line if

Prohibida la reproduccin total o parcial de este documento.

41 de 108

# you don't want password to be enable for defaultMaxPasswordAge days (be # careful to the sambaPwdMustChange attribute's value) defaultMaxPasswordAge="99999"

Nota En este ejemplo se usa el valor 99999 para deshabilitar la expiracin de contraseas. Configure la ruta y unidad para el montaje de el directorio home automticamente en clientes windows a travs del logon script:
# The UNC path to home drives location (%U username substitution) # Just set it to a null string if you want to use the smb.conf 'logon home' # directive and/or disable roaming profiles # Ex: userSmbHome="\\PDC-SMB3\%U" userSmbHome="\\PDC\%U" # The UNC path to profiles locations (%U username substitution) # Just set it to a null string if you want to use the smb.conf 'logon path' # directive and/or disable roaming profiles # Ex: userProfile="\\PDC-SMB3\profiles\%U" userProfile="\\PDC\profiles\%U" # The default Home Drive Letter mapping # (will be automatically mapped at logon time if home directory exist) # Ex: userHomeDrive="H:" userHomeDrive="H:" # The default user netlogon script name (%U username substitution) # if not used, will be automatically username.cmd # make sure script file is edited under dos # Ex: userScript="startup.cmd" # make sure script file is edited under dos userScript="logon.bat"

En la siguiente seccin veremos como actualizar el directorio LDAP con la informacin de Samba requerida para un controlador de dominio.

Ahora que ya hemos editado los archivos de configuracin de las herramientas smbldap-tools, inicializaremos nuestro directorio LDAP con la informacin para el dominio NT: EXAMPLE. El comando smbldap-populate inicializar nuestro directorio LDAP con la siguiente informacin: Base DN: dc=example,dc=com Contenedor (OU= Unidad Organizativa ) para las cuentas Unix/Samba: ou=Users En el contenedor para los Usuarios, se crearn por defecto los usuarios: root y nobody los cuales sern mapeados al usuarios Administrador y Guest Samba respectivamente. Contenedor (OU= Unidad Organizativa ) para los Grupos Unix/Samba: ou=Groups En el contenedor de los Grupos, se crearn por defecto los Grupos Predeterminados de un dominio Samba: Domain Admins, Domain Users, Domain Guests, Domain Computers. Contenedor (OU= Unidad Organizativa ) para las cuentas de Computadoras Windows: ou=Computers Contenedor (OU= Unidad Organizativa ) para los mapeos de Cuentas Unix a Cuentas Samba/Windows (SID): ou=Idmap

Prohibida la reproduccin total o parcial de este documento.

42 de 108

Para inicializar nuestro directorio LDAP con la informacin de arriba usaremos el comando smbldap-populate de la siguiente manera:
root@pdc:~# smbldap-populate Populating LDAP directory for domain EXAMPLE (S-1-5-21-2911508632-2405292923-4115677068) (using builtin directory structure) entry dc=example,dc=com already exist. adding new entry: ou=Users,dc=example,dc=com adding new entry: ou=Groups,dc=example,dc=com adding new entry: ou=Computers,dc=example,dc=com adding new entry: ou=Idmap,dc=example,dc=com adding new entry: uid=root,ou=Users,dc=example,dc=com adding new entry: uid=nobody,ou=Users,dc=example,dc=com adding new entry: cn=Domain Admins,ou=Groups,dc=example,dc=com adding new entry: cn=Domain Users,ou=Groups,dc=example,dc=com adding new entry: cn=Domain Guests,ou=Groups,dc=example,dc=com adding new entry: cn=Domain Computers,ou=Groups,dc=example,dc=com adding new entry: cn=Administrators,ou=Groups,dc=example,dc=com adding new entry: cn=Account Operators,ou=Groups,dc=example,dc=com adding new entry: cn=Print Operators,ou=Groups,dc=example,dc=com adding new entry: cn=Backup Operators,ou=Groups,dc=example,dc=com adding new entry: cn=Replicators,ou=Groups,dc=example,dc=com entry sambaDomainName=EXAMPLE,dc=example,dc=com already exist. Updating it... Please provide a password for the domain root: Changing UNIX and samba passwords for root New password:dominioadmin Retype new password:dominioadmin

Al final se nos solicita que asignemos una contrasea para el usuario root del dominio, utilizaremos la contrasea: dominioadmin Si al llenar el directorio LDAP no se presenta error alguno, entonces al final tendremos nuestro arbol de directorio con la siguiente estructura.
dc=EXAMPLE,dc=COM | ,___ ou=Users | | | ,_______uid=root | | | ,_______uid=nobody | ,___ ou=Computers | ,___ ou=Groups | | ,_______cn=Domain Admins | ,_______cn=Domain Users | ,_______cn=Domain Computers

Contenedor para almacenar cuentas de usuario para sistemas Li Usuario Unix/Samba root (Administrador Unix y Administrador d Usuario Unix/Samba nobody (Cuenta anonima para entornos Unix Contenedor para las cuentas de Computadoras (Trusted Machine Contenedor para alamacenar Grupos de sistema para sistemas Un ( o para cualquier otro sistema LDAP-aware). Grupo Global para los Administradores del Dominio NT: EXAMPLE Grupo Global para los Usuarios de Dominio NT: EXAMPLE Grupo Global para las Cuentas de Computadoras del Dominio NT: EXAMP

Es importante que se tenga en consideracin la estrucutra de nuestro arbol de Directorio, ya que esta misma estrucutra podr ser utilizada al configurar otras aplicaciones para que interactuen con el directorio LDAP. Las herramientas smbldap-populate crean 5 grupos locales (built-in): Account Operators, Administrators, Backup Operators, Print Operators, Replicators, a estos grupos les agrega el atributo sambaGroupType con el valor 5, el tipo de grupo samba 5 es usado para grupos de dominio y no para grupos locales, para los grupos samba locales debe usar el tipo 4, ms informacin sobre el bug ver el bug 5551 de samba y el bug td18119198 de smbldap-tools. Use el comando ldapmodify para cambiar los atributos en los dn de los grupos, cree el archivo /tmp/samba-builtinchangetype.ldif:

Prohibida la reproduccin total o parcial de este documento.

43 de 108

# vim /tmp/samba-builtin-changetype.ldif

Con el siguiente contenido:


dn: cn=Account Operators,ou=Groups,dc=example,dc=com changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Administrators,ou=Groups,dc=example,dc=com changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Backup Operators,ou=Groups,dc=example,dc=com changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Print Operators,ou=Groups,dc=example,dc=com changetype: modify replace: sambaGroupType sambaGroupType: 4

Ahora realizamos la modificacin con el comando ldapmodify usando el DN cn=admin.


root@pdc:~# ldapmodify -h localhost -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/samba-builtin-cha Enter LDAP Password:ldapadmin modifying entry "cn=Account Operators,ou=Groups,dc=example,dc=com" modifying entry "cn=Administrators,ou=Groups,dc=example,dc=com" modifying entry "cn=Backup Operators,ou=Groups,dc=example,dc=com" modifying entry "cn=Print Operators,ou=Groups,dc=example,dc=com"

Despues de haber llenado el directorio con los usuarios y grupos de dominio predeterminados, es necesario reiniciar samba para que tenga conocimiento de la nueva informacin.
root@pdc:~# /etc/init.d/samba restart * Stopping Samba daemons * Starting Samba daemons [ OK ] [ OK ]

En esta seccin veremos algunos comandos que nos podrn servir para verificar que las cuentas de samba sean las almacenadas en el directorio ldap, y tambin se hace una prueba de conexin al servidor samba.

Probando Samba con Cuentas en el Directorio LDAP


El comando pdbedit nos servir para hacer un listado de usuarios Samba, el comando pdbedit se conectar al servidor LDAP para obtener la informacin, si todo fue configurado correctamente nos deber de mostrar los siguiente:
root@pdc:~# pdbedit -L root:0:root nobody:65534:nobody

Como se vio antes, los usuarios samba deben de estar mapeados al UID de un usuario Unix, en este caso el usuario root Samba esta mapeado al usuario root Unix con UID 0 y el usuario nobody Samba esta mapeado al usuario nobody Unix con UID 65534. Si deseamos mostrar los detalles de informacin de un usuario samba usamos el comando pdbedit de la siguiente manera:

Prohibida la reproduccin total o parcial de este documento.

44 de 108

root@pdc:~# pdbedit -Lv root Unix username: root NT username: root Account Flags: [U ] User SID: S-1-5-21-2911508632-2405292923-4115677068-500 Primary Group SID: S-1-5-21-2911508632-2405292923-4115677068-513 Full Name: root Home Directory: \\PDC\root HomeDir Drive: H: Logon Script: Profile Path: \\PDC\profiles\root Domain: EXAMPLE Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: Wed, 14 Jan 2009 10:50:24 CST Password can change: Wed, 14 Jan 2009 10:50:24 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Este comando nos muestra a detalle la informacin/atributos de una cuenta Samba La cuenta root que se creo en el directorio LDAP, es la que se usar como usuario root local y como administrador de dominio, se debe de cambiar la ruta al $HOME de root y asignarle el shell /bin/bash.
root@pdc:~# smbldap-usermod -d /root -s /bin/bash root

Deshabilite el uso de perfil mvil para la cuenta Samba root:


root@pdc:~# smbldap-usermod -C "" root root@pdc:~# smbldap-usermod -D "" root root@pdc:~# smbldap-usermod -F "" root

Si desea cambiar la contrasea de la cuenta root/Administrator use el comando:


root@pdc:~# smbldap-passwd root

Listo, podemos continuar.

Verificando el mapeo del grupos unix a grupos Samba


En un sistema controlador de dominio basado en Samba, las cuentas de usuario de Windows/Samba son mapeadas a una cuenta de usuario Unix, es decir, se mapea el SID (Security Identifier) de la cuenta Windows/Samba con el UID (User ID) de la cuenta Unix, as mismo se mapean los grupos Wwindows/Samba a grupos Unix a travs del SID del grupo Windows/Samba al GID del grupo Unix, para validar que el mapeo de grupos se haya realizado correctamente use el comando net, por ejemplo:
root@pdc:~# net groupmap list Domain Admins (S-1-5-21-2911508632-2405292923-4115677068-512) -> 512 Domain Users (S-1-5-21-2911508632-2405292923-4115677068-513) -> 513 Domain Guests (S-1-5-21-2911508632-2405292923-4115677068-514) -> 514 Domain Computers (S-1-5-21-2911508632-2405292923-4115677068-515) -> 515 Administrators (S-1-5-32-544) -> 544 Account Operators (S-1-5-32-548) -> 548 Print Operators (S-1-5-32-550) -> 550 Backup Operators (S-1-5-32-551) -> 551 Replicators (S-1-5-32-552) -> 552

En la salida anterior, la informacin del grupo Windows/Samba se encuentra del lado izquierdo separada de la informacin del grupo Unix del lado derecho. Por ejemplo, podemos ver que el grupo Domain Admins con SID

Prohibida la reproduccin total o parcial de este documento.

45 de 108

S-1-5-21-2911508632-2405292923-4115677068-512 esta mapeado al grupo Unix con GID 512. Si desea conocer una lista de los SID bien conocidos en sistemas Windows ver el articulo Well-known security identifiers in Windows operating systems. En el captulo siguiente Configuracin de la resolucin de Identidades con NSS_LDAP veremos como obtener la informacin de los grupos Unix va LDAP usando NSS_LDAP para la centralizacin de usuarios y grupos Unix en un directorio OpenLDAP y as tener un mapeo consistente de informacin de usuarios y grupos WIndows y Unix almacenados en un servidor de directorio centralizado con OpenLDAP.

Probando conexiones al servidor Samba usando cuentas en LDAP


Cuando realizamos el llenado el directorio con smbldap-populate se creo la cuenta de usuario Windows de nombre root mapeada al administrador del dominio, realicemos una prueba de conexin utilizando la cuenta root del dominio, deberemos de utilizar la contrasea que se asigno al llenar el directorio con el comando smbldap-populate y no la contrasea del usuario root local.
root@pdc:~# smbclient //localhost/netlogon -U root Password:dominioadmin Domain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a] smb: \> quit root@pdc:~#

Ya que configuramos el uso del archivo /etc/samba/smbusers para el mapeo de usuarios, podremos hacer una prueba utilizando la cuenta Administrator, deberemos de utilizar la misma contrasea del usuario root.
root@pdc:~# smbclient //localhost/netlogon -U Administrator Password:dominioadmin Domain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a] smb: \> quit root@pdc:~#

Pruebe realizando una conexin annima al recurso compartido publico:


# smbclient //localhost/publico -N Anonymous login successful Domain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a] smb: \> quit

Si las ultimas pruebas no funcionan entonces debe de revisar su configuracin y probablemente volver a empezar verificando que todo se haya seguido al pie de la letra. NOTA: Meter referencia a seccin de empezando desde ceros.

En los sistemas Unix como GNU/Linux los nombres comnes de las cuentas de usuario y grupo son mapeadas a un identificador nmerico llamado UID (User ID) y GID (Group ID) respectivamente, el mapeo de un nombre comn a uno nmerico es llevado a cabo por la biblioteca de sistema NSS (Name Service Switch), la cual es invocada cada vez que algn comando o aplicacin realizan alguna operacin que requiera la resolucin de un nombre, sea un usuario, un grupo, un nodo de red, entre otras entidades, tambin es usada cuando se realizan operaciones relacionadas con permiso de archivos y autenticacin de usuarios. Por default la bibliteca de sistema NSS realiza la consulta de usuarios, grupos y shadow usando archivos locales, es decir, /etc/passwd, /etc/group y /etc/shadow respectivamente, ya que nuestro sistema usar un directorio LDAP para almacenar la informacin de los usurios y grupos ser necesario indicarle a la biblioteca NSS que debe usar un directorio LDAP para obtener informacin sobre dichas identidades, es aqu donde entra el paquete nss_ldap, el paquete nss_ldap es un plugin para la biblioteca de sistema NSS para podere realizar la resolucin de identidades usando como fuente de
Prohibida la reproduccin total o parcial de este documento.

46 de 108

origen un directorio LDAP. En Debian/Ubuntu el plugin LDAP para la biblioteca NSS es provisto por el paquete libnss-ldap, lo instalaremos en el sistema va apt-get usando el siguiente el comando:
root@pdc:~# apt-get install libnss-ldap

Al instalar el paquete libnss-ldap se instalarn otros paquetes como libpam-ldap que lo utilizaremos en la siguiente seccin para configurar la autorizacin a los servicios del sistema. El sistema de administracin de paquetes apt nos lanzar un asistente para configuracin, la configuracin del asistente no es exactamente como nosotros la necesitamos, por lo que solo contestaremos las preguntas con cualquier cosa para despues reconfigurar libnss-ldap manualmente. Deberemos de contestar lo siguiente: LDAP server Uniform Resource Identifier: ldapi://127.0.0.1 Distinguished name of the search base: dc=example,dc=com LDAP version to use: 3 Make local root Database admin: No Does the LDAP database require login?: No Este asistente genero un archivo de configuracin /etc/ldap.conf, ya que nosotros crearemos una configuracin nueva este archivo lo podemos renombrar.
root@pdc:~# mv /etc/ldap.conf{,.orig}

Importante No confundir con el archivo de los clientes LDAP /etc/ldap/ldap.conf. Ahora editamoe el archivo de configuracin /etc/ldap.conf:
root@pdc:~# vim /etc/ldap.conf

Agregamos el siguiente contenido solamente:


# Informacin del servidor LDAP uri ldap://127.0.0.1/ ldap_version 3 # Base de busqueda base dc=example,dc=com # Contenedores para cuentas de usuario, grupos y computadoras nss_base_passwd ou=Users,dc=example,dc=com?sub nss_base_passwd ou=Computers,dc=example,dc=com?sub nss_base_shadow ou=Users,dc=example,dc=com?sub nss_base_group ou=Groups,dc=example,dc=com?sub # Tipo binding bind_policy soft nss_initgroups_ignoreusers daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,www-data,backup,li # Filtros PAM pam_login_attribute uid pam_member_attribute memberuid pam_filter objectclass=posixAccount

Prohibida la reproduccin total o parcial de este documento.

47 de 108

# Cambio contrasea via passwd(1) pam_password exop

Nota El parmetro nss_initgroups_ignoreusers define una lista de usuarios para los cuales se van a ignorar los grupos almacenados en el directorio LDAP, esto necesario para servicios que inician antes del servidor OpenLDAP o la red. Los permisos del archivo /etc/ldap.conf deben de ser 644, como se muestra a continuacin:
root@pdc:~# ls -l /etc/ldap.conf -rw-r--r-- 1 root root 467 2008-06-18 23:37 /etc/ldap.conf

Ahora debemos de configurar la resolucin de entidades va LDAP en el archivo de configuracin de la biblioteca NSS: /etc/nsswitch.conf y modificar las entradas para las entidades: passwd, group y shadow. Antes de modificar el archivo de configuracin de resolucin de entidades haremos una copia de seguridad:
root@pdc:~# cp /etc/nsswitch.conf{,.FILES}

Ahora editamos el archivo para decirle que para obtener la informacin de usuarios, grupos tambin consulte el directorio LDAP especificado en el archivo /etc/ldap.conf.
root@pdc:~# vim /etc/nsswitch.conf

Cambiar:
passwd: group: shadow: compat compat compat

Por:
passwd: group: shadow: hosts: compat ldap compat ldap compat ldap files wins dns

Nota Tambin aprovechamos para que la resolucin de nombres de hosts incluya al servidor WINS incorporado con Samba para resolver nombres netbios. Despues de guardar los cambios haremos unas pruebas con el comando getent para verificar que si este haciendo las consultas al directorio LDAP. Verificando la resolucin de usuarios:
# getent passwd | grep -E 'root|nobody' root:x:0:0:root:/root:/bin/bash nobody:x:65534:65534:nobody:/nonexistent:/bin/sh root:x:0:0:Netbios Domain Administrator:/root:/bin/bash nobody:x:65534:65534:nobody:/nonexistent:/bin/sh

En la salida del comando anterior deberemos de ver dos resultados para root y nobody, una fue obtenida del archivo /etc/passwd y otra del directorio LDAP.

Prohibida la reproduccin total o parcial de este documento.

48 de 108

Ahora haremos una prueba para que podamos obtener la lista de grupos tanto del archivo /etc/group como del directorio LDAP.
root@pdc:~# getent group | grep -E 'root|Domain' root:x:0: Domain Admins:*:512:root Domain Users:*:513: Domain Guests:*:514: Domain Computers:*:515:

En la salida del comando anterior la entrada para el grupo root fue obtenida del archivo /etc/group y las entradas de los grupos Domain XXXX fueron obtenidas del directorio LDAP. Podemos utilizar el comando id para verificar que la resolucin de entidades muestre a que grupos pertenece el usuario root. Inicie una nueva sesin como root en el equipo ya sea por ssh o localmente en una TTY, y despues ejecute lo siguiente:
root@pdc:~# id root uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)

En este caso, el usuario root pertenece al grupo 512 (Domain Admins) que esta en el directorio LDAP. Importante Si agrego el usuario root al parmetro nss_initgroups_ignoreusers del archivo de configuracin /etc/ldap.conf no ver los grupos Samba que estan en el directorio LDAP, como por ejemplo Domain Admins. Ahora verifique que el mapeo de grupos Windows a grupos Unix se realice correctamente, mostrando el nombre comn del grupo Unix en la salida del comando net groupmap list, por ejemplo:
root@pdc:~# net groupmap list Domain Admins (S-1-5-21-2911508632-2405292923-4115677068-512) -> Domain Admins Domain Users (S-1-5-21-2911508632-2405292923-4115677068-513) -> Domain Users Domain Guests (S-1-5-21-2911508632-2405292923-4115677068-514) -> Domain Guests Domain Computers (S-1-5-21-2911508632-2405292923-4115677068-515) -> Domain Computers Administrators (S-1-5-32-544) -> Administrators Account Operators (S-1-5-32-548) -> Account Operators Print Operators (S-1-5-32-550) -> Print Operators Backup Operators (S-1-5-32-551) -> Backup Operators Replicators (S-1-5-32-552) -> Replicators

El archivo /etc/ldap.conf tambin es usado por el mdulo ldap de las bibliotecas de autenticacin PAM, en la siguiente seccin veremos como configurar PAM con soporte LDAP para la autorizacin de usuarios y grupos a los servicios del sistema..

Tabla de contenidos Introduccin a los Modulos de Autenticacin PAM Respaldando la configuracin de PAM Configurando los modulos de autenticacin PAM con LDAP Configuracin del modulo auth Configuracin del modulo account Configuracin del modulo session Configuracin del modulo password Instalando el modulo Cracklib de PAM

Prohibida la reproduccin total o parcial de este documento.

49 de 108

Probando la autenticacin de usuarios de sistema va PAM_LDAP

Que es PAM? PAM son las siglas de Plugable Authentication Modules que basicamente es un mecanismo flexible para autenticar usuarios. Cada linea de los archivos de configuracin de PAM contiene tres columnas ms argumentos opcionales, a continuacin se muestra un ejemplo:
password requisite pam_unix.so nullok obscure md5

A continuacin se explica que es cada elemento: password La primer columna sirve para indicar el tipo de modulo de autenticacin requisite La segunda columna (Control Flag) sirve para indicarle a PAM como es que debe de actuar d pam_unix.so La tercer columna se usa para especificar el nombre del modulo a usar nullok obscure md5 La cuarta columna (opcional) sirve para especificar argumentos a los modulos. La siguiente tabla muestra los la estrucutra de de una configuracin de PAM METER OTRA TABLA con la misma info, igual en diagrama. A continuacin se describe cada una de las columnas involucradas en las configuraciones de PAM: Tipos de Modulos Hay cuatro tipos de modulos PAM que a continuacin se describen. authentication (autenticacin) Tareas encaminadas a comprobar que, efectivamente, o el usuario es realmente quien dice ser. A menudo, cuando se habla de PAM, slo o se tiene en cuenta esta tarea, ignorando las dems. Estas tareas ofrecen incluso un a sistema de credenciales que permiten al usuario ganar ciertos privilegios jados por el administrador. Estos modulos proveen dos formas de autenticar el usuario. Primero, los modulos establecen que el usuario es quien dice ser instruyendo la aplicacion (servicio) que le pregunte al usuario una contrasea u otro mecanismo de identificacin. Segundo, el modulo puede otorgar membrecia a un grupo u otros privilegios a traves de las propiedades de las credenciales del usaurio. account (cuenta)

Prohibida la reproduccin total o parcial de este documento.

50 de 108

En este grupo se engloban tareas que no estn relacionadas a directamente con la autenticacin. Algunos ejemplos son permitir/denegar el acceso o en funcin de la hora, los recursos disponibles o, incluso, la localizacin. Ofrece o o vericacin de cuentas de usuario. Por ejemplo, se encarga de determinar si el usuario o tiene o no acceso al servicio, si su contrasea ha caducado, etc. n Estos modulos realizan nonauthentication based account management. Estos modulos son tipicamente usados para restringuir o permitir el acceso a un servicio basado en la hora del da, los recursos del sistemas actualmente disponibles (mximo nmero de usuarios) o quizaso quizas la localizacin de el usuario ( por ejemplo, para limitar el login al usuario root en la consola). password (contrasea) Se encarga de mantener actualizado el elemento de autenti- n cacin asociado a cada usuario por ejemplo, su contrasea. Acciones como o n comprobar la fortaleza de una clave son t picas de este grupo. Este ltimo tipo de modulo es requerido para actualizar el token de autenticacin asociado a un usuario. session (sesin) En este grupo se engloban tareas que se deben llevar a cabo antes o de iniciarse el servicio y despus de que este nalice. Es especialmente util para e mantener registros de acceso o hacer accesible el directorio home del usuario. Estos modulos estan asociados a las realizacin de tareas que necesitas que sean hechas para el usuario antes de que se le pueda dar acceso a un servicio o despues de que el servicio ha sido provisto. Tales tareas incluyen registrar (logging) informacin correspondiente al usuario, montar directorios, and the opening and closing o f some data exchange with another user. Banderas de Control (Control Flags) Modulo Argumentos (opcional)

Ya que la configuracin de PAM y sus modulos es muy importante, y cualquier configuracin mal hecha podra causar que ya no podamos iniciar sesin localmente ( ni como root), haremos un respaldo antes de realizar nuestras modificaciones: Todas las configuraciones de PAM estan en el directorio /etc/pam.d/, respaldaremos todo el directorio
root@pdc:~# cp -va /etc/pam.d{,.FILES}

Nuestro respaldo tendr el sufijo .FILES para indicar que son las configuraciones que usan los archivos /etc/passwd, /etc/group y /etc/shadow.

El mdulo de autenticacin pam_ldap debe ser llamado por el nombre pam_ldap.so en los archivos de configuracin, el mdulo pam_ldap.so utiliza los parmetros de configuracin definidos en el archivo /etc/ldap.conf para conectarse y consultar el servidor LDAP en donde buscar la informacin de cuentas UNIX. Para nuestro usaremos los parmetros definidos en la seccin anterior ya que los parmetros para NSS LDAP y PAM LDAP son los mismos.

Prohibida la reproduccin total o parcial de este documento.

51 de 108

Configuracin del modulo auth


Para configurar el mdulo auth con pam_ldap.so edite el archivo /etc/pam.d/common-auth:
root@pdc:~# vim /etc/pam.d/common-auth

Solo agregue el siguiente contenido:


auth auth auth sufficient sufficient required pam_unix.so likeauth nullok pam_ldap.so use_first_pass pam_deny.so

Configuracin del modulo account


Para configurar el mdulo account con pam_ldap.so edite el archivo /etc/pam.d/common-account:
root@pdc:~# vim /etc/pam.d/common-account

Solo agregue el siguiente contenido:


account account required sufficient pam_unix.so pam_ldap.so

Configuracin del modulo session


Para configurar el mdulo session con pam_ldap.so edite el archivo /etc/pam.d/common-session:
root@pdc:~# vim /etc/pam.d/common-session

Solo agregue el siguiente contenido:


session session required optional pam_unix.so pam_ldap.so

Configuracin del modulo password


Para configurar el mdulo password con pam_ldap.so edite el archivo /etc/pam.d/common-password:
root@pdc:~# vim /etc/pam.d/common-password

Solo agregue el siguiente contenido:


password password password sufficient sufficient required pam_unix.so nullok use_authtok md5 shadow pam_ldap.so use_authtok pam_deny.so

Instalando el modulo Cracklib de PAM


En el modulo de autenticacin password especificamos que es requerido el uso de pam_cracklib, cracklib es un conjunto de bibliotecas que nos servirn para verificar que las contraseas suministradas por usuarios unix sean lo suficientemente fuertes, el chequeo lo hace contra un diccionario de palabras, as, si un usuario ingresa una contrasea basada en alguna palabra del diccionario cracklib nos alertar. Por medio del modulo pam_cracklib tambien podemos especificar el tamao minimo de una contrasea. Para habilitar el soporte instale el paquete libpam-cracklib, as:
root@pdc:~# apt-get install libpam-cracklib

Prohibida la reproduccin total o parcial de este documento.

52 de 108

Y edite el archivo de configuracin del mdulo password:


root@pdc:~# vim /etc/pam.d/common-password

Al inicio del archivo y antes de la carga del mdulo pam_unix.so agregue la carga del modulo pam_cracklib.so, por ejemplo:
password password password password required sufficient sufficient required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 pam_unix.so nullok use_authtok md5 shadow pam_ldap.so use_authtok pam_deny.so

Crear usuario con smbldap-useradd


root@pdc:~# smbldap-useradd -m -s /bin/bash -P jmedina Changing UNIX password for jmedina New password:123456 Retype new password:123456

Nota Para ms informacin de como crear cuentas unix con las herramientas smbldapt-tools ver la Seccin Administracin de cuentas Unix y Samba va smbldap-tools. Mostrando la informacin del nuevo usuario:
root@pdc:~# smbldap-usershow jmedina dn: uid=jmedina,ou=Users,dc=example,dc=com objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount cn: jmedina sn: jmedina givenName: jmedina uid: jmedina uidNumber: 1008 gidNumber: 513 homeDirectory: /home/jmedina loginShell: /bin/bash gecos: System User userPassword: {SSHA}dFAiW/BAWzSnLVuQXfrtN3Ne/RxHSlgz shadowLastChange: 14049 shadowMax: 99999

Verificando resolucin de identidades:


root@pdc:~# id jmedina uid=1002(jmedina) gid=513(Domain Users) groups=513(Domain Users)

Verificando que no existe localmente (archivos)


root@pdc:~# grep jmedina /etc/passwd

Probando la autenticacin pam con pamtest: Instale el paquete libpam-dotfile para realizar la prueba de la nueva cuenta:
root@pdc:~# apt-get install libpam-dotfile

Ahora pruebe la cuenta jmedina:

Prohibida la reproduccin total o parcial de este documento.

53 de 108

root@pdc:~# pamtest passwd jmedina Trying to authenticate <jmedina> for service <passwd>. Password:123456 Authentication successful.

Realizamos una conexin SSH al localhost para probar el login:


root@pdc:~# ssh jmedina@localhost jmedina@localhost's password: Linux pdc 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Last login: Thu Jun 19 18:16:12 2008 from localhost jmedina@pdc:~$ pwd /home/jmedina

Verificando que los UID y GID sean consistentes con los del LDAP:
jmedina@pdc:~$ id uid=1008(jmedina) gid=513(Domain Users) groups=513(Domain Users)

Probando crear archivos y directorios y ver que reporte los UID y GID en los archivos y dirs creados:
jmedina@pdc:~$ mkdir jmedina@pdc:~$ touch jmedina@pdc:~$ ls -l total 4 -rw-r--r-- 1 jmedina drwxr-xr-x 2 jmedina DirPrueba ArchivoPrueba

Domain Users 0 2008-07-17 21:24 ArchivoPrueba Domain Users 4096 2008-07-17 21:24 DirPrueba

El usuario puede cambiar su propia contrasea desde un shell usando el comando passwd.
jmedina@pdc:~$ passwd Enter login(LDAP) password:123456 New UNIX password:NuevaContraseA Retype new UNIX password:NuevaContraseA LDAP password information changed for jmedina passwd: password updated successfully jmedina@pdc:~$

Nota Recuerde que el comando passwd esta ligado a la bilioteca NSS y NSS a su vez con LDAP y realizar una operacin de cambio de contrasea en el directorio LDAP. Si utiliza una nueva contrasea debil el sistema (con ayuda de pam_cracklib) le notificar, por ejemplo:
jmedina@pdc:~$ passwd Enter login(LDAP) password: New UNIX password: BAD PASSWORD: it's WAY too short New UNIX password: BAD PASSWORD: it is based on your username New UNIX password: BAD PASSWORD: it is too simplistic/systematic New UNIX password:

Prohibida la reproduccin total o parcial de este documento.

54 de 108

BAD PASSWORD: it is based on a dictionary word passwd: Authentication token manipulation error passwd: password unchanged

Note que las reglas de cracklib estan funcionando ya que no permite contraseas simples e inseguras.

Tabla de contenidos Migracin de Usuarios (/etc/passwd y /etc/shadow) Migracin de Grupos (/etc/group) En este cpitulo explicaremos como migrar las cuentas locales de sistema (/etc/passwd) y los grupos locales (/etc/group) a nuestro directorio LDAP. En Ubuntu no se incluyen las herramientas necesarias para migrar cuentas Unix a LDAP, sin embargo, estas herramientas estan como ejemplos en el directorio /usr/share/doc/smbldap-tools/examples/migration_scripts/, necesitaremos copiar estas herramientas a /usr/sbin/, lo haremos as: Instalando el script para migrar cuentas unix:
root@pdc:~# zcat /usr/share/doc/smbldap-tools/examples/migration_scripts/smbldap-migrate-unix-accou /usr/sbin/smbldap-migrate-unix-accounts

Instalando el script para migrar grupos Unix:


root@pdc:~# zcat /usr/share/doc/smbldap-tools/examples/migration_scripts/smbldap-migrate-unix-group /usr/sbin/smbldap-migrate-unix-groups

Ahora le configuraemos los permisos a estos dos scripts para que puedan ser ejecutados sin probleas:
root@pdc:~# chmod 755 /usr/sbin/smbldap-migrate-unix-*

Y por ltimo verificamos que los permisos se hayan puesto correctamente:


root@pdc:~# ls -l /usr/sbin/smbldap-migrate-unix-* -rwxr-xr-x 1 root root 11640 2008-07-18 00:49 /usr/sbin/smbldap-migrate-unix-accounts -rwxr-xr-x 1 root root 5533 2008-07-18 00:50 /usr/sbin/smbldap-migrate-unix-groups

Ahora que ya tenemos los scripts para migrar cuentas locales al directorio LDAP seguiremos con las secciones para migrar cuentas y grupos.

La informacin de cuentas de usuario estan almacenadas en el archivo /etc/passwd, y en el archivo /etc/shadow principalmente esta almacenado el hash de la contrasea del usuario. Migraremos la informacin de ambos archivos siguiendo el siguiente procedimiento: 1. Hacer una copia de los archivos /etc/passwd y /etc/shadow en un directorio temporal:
root@pdc:~# cp /etc/passwd /etc/shadow /tmp/

2. Eliminar de ambos archivos todas las cuentas que no quieras importar en el directorio LDAP
root@pdc:~# for user in root nobody bin daemon do

Prohibida la reproduccin total o parcial de este documento.

55 de 108

export user perl -i -pes@^$ENV{user}:(.*)\n@@ /tmp/passwd perl -i -pes@^$ENV{user}:(.*)\n@@ /tmp/shadow done

3. Ahora migramos las cuentas de /tmp/passwd y /tmp/shadow a nuestro directorio:


root@pdc:~# smbldap-migrate-accounts -a -P /tmp/passwd -S /tmp/shadow

Nota Con la opcin -a de smbldap-migrate-accounts, el atributo sambaSAMAccount ser agregado a los usuarios importados. Todos los usuarios que previamente tenan definido un shell valido en /etc/passwd entonces sern capaces de conectarse a el servidor y actualizar su contrasea Windows usando el script /usr/sbin/smbldap-passwd el comando passwd. 4. Eliminando los archivos temporales
root@pdc:~# rm -i /tmp/passwd /tmp/shadow rm: remove regular file `/tmp/passwd'? y rm: remove regular file `/tmp/shadow'? y

En la siguiente seccin veremos como migrar los grupos.

Ahora migraremos los grupos de el archivo /etc/group. El proceso de Migracin deber de hacerse como sigue: 1. Hacer una copia del archivo /etc/grooup a un directorio temporal:
root@pdc:~# cp /etc/group /tmp/

2. Elimina todos los grupos que no quieres que se importen al directorio LDAP
root@pdc:~# for group in root bin daemon do export group perl -i -pes@^$ENV{group}:(.*)\n@@ /tmp/group done

3. Ahora si migramos los grupos al directorio LDAP


root@pdc:~# smbldap-migrate-groups -a -G /tmp/group

4. Eliminando el archivo temporal


root@pdc:~# rm -i /tmp/group rm: remove regular file `/tmp/group'? y

Nota Con la opcin -a de smbldap-migrate-groups, el atributo sambaGroupMapping ser agregado a los grupos de manera que ellos podrn ser usados como grupos Windows (entonces Samba mapeara los grupos Unix a los grupos Windows). Deberas de eliminar esta opcin si no deseas hacer el mape de grupos unix a windows. Podemos usar el comando getent para verificar que los usuarios y grupos migrados esten en el directorio LDAP.

Prohibida la reproduccin total o parcial de este documento.

56 de 108

Tabla de contenidos Introduccin Atributos predenidos para la creacin de usuarios Creacin de cuentas de usuario Eliminacin de cuentas de usuarios Cambiando la contrasea de un usuario Modificacin de cuentas de usuario Administracin de Grupos de Sistema y Grupos Samba Agregando Grupos Eliminando Grupos Agregando usuarios a Grupos Eliminando Usuarios de Grupos En este capitulo veremos los comandos y archivos involucrados en la administracin de usuarios y grupos tanto unix como samba, para cada comando veremos las opciones disponibles con su descripcin y ejemplos de como utilizarlos para casos reales.

Normalmente la informacin de las cuentas de usuario y grupos de sistema (Posix) y Samba estn almacenadas en una serie de archivos comunes, como /etc/passwd, /etc/group, /etc/shadow y /etc/samba/smbpasswd, pero en esta instalacin toda esta informacin esta almacenada en una base de datos de usuarios y grupos centralizada, es decir, en un directorio LDAP. Para administrar los usuarios y grupos ya no podremos utilizar las herramientas ordinarias como: useradd, passwd, groupadd, etc, en su lugar usaremos las herramientas smbldap-tools, estas herramientas estn especialmente diseadas para administrar usuarios y grupos de sistema y samba almacenados en un directorio LDAP. A continuacin se describirn estas herramientas para realizar las tareas comunes de administracin de usuarios y grupos.

Las herramientas smbldap-tools tienen algunos archivos de conguracin que son usados para congurar las cuentas en el directorio LDAP, adems se pueden establecer valores predenidos para algunos atributos de cuentas y grupos, tanto Posix como Samba. El archivo principal de conguracin de las smbldap-tools es: /etc/smbldap-tools/smbldap.conf. Este archivo fue generado en el cpitulo Configuracin de Samba y las herramientas smbldap-tools en la seccin Instalacin y Configuracin de las smbldap-tools.

Para la administracin de usuarios, en especico agregar usuarios, usaremos el comando smbldap-useradd. Una lista de las opciones que podemos usar a la hora de crear usuarios se muestran en la siguiente tabla. Como ya vimos arriba, muchas opciones las podemos predeterminar en el archivo /etc/smbldap-tools/smbldap.conf, algunas cadenas que inician con $ se reeren a parmetros variables denidas en archivo de conguracin /etc/smbldaptools/smbldap.conf. Tabla 10.1. Tabla de opciones disponibles para el comando smbldap-useradd Opcin Descripcin Ejemplo Valor Predeterminado

Prohibida la reproduccin total o parcial de este documento.

57 de 108

Opcin -a -w -u -g

Descripcin Crea una cuenta Windows, si no se especifica esta opcin el comando smbldap-useradd solo crear una cuenta Unix/POSIX Crea una cuenta de Computadora Windows (Windows Workstation) Establece el valor del User ID (UID) del usuario

Ejemplo

Valor Predeterminado

-u 1003

Primer siguiente UID disponible Primero siguiente GID disponible

Estable el valor para el Group ID (GID). Este ser el grupo -g 1003 primario del usuario Agrega la cuenta a uno o ms grupos suplementarios (Secundarios), si se van a establecer varios grupos suplementarios, cada nombre de grupo va seprado por coma. Establece la ruta del directorio $HOME del usuario Estable el shell de login para el usuario Establece el campo gecos del la cuenta de usuario, preferiblemente usar -N y -S para asignar Nombre y Apellido Crea el directorio $HOME para el nuevo usuario y copia el contenido de /etc/skel dentro del directorio. Al terminar el comando smbldap-useradd, smbldappasswd es invocado para establecer la contrasea del usuario El usuario puede cambiar su contrasea: 0 = No, 1 = S El usuario debe cambiar su contrasea la primer vez que inicia sesin: 0 = No, 1 = S Establece la ruta para el recurso compartido homes en el servidor Samba, usado por la opcin -D NOTA: Si se desea desactivar el mapeo del directorio home en el servidor al usuario, se asigna un valor vaco: Estable la letra de la unidad de red con la que se mapear el $HOME del usuario en el servidor (-C) al usuario cuando inicie sesin en el dominio. NOTA: Hay que agregar los ":" (dos puntos) al final de la letra. NOTA: Si no se desea mapear el home del usaurio, debemos de asignar un valor vaco. Establece la ruta al directorio (el el servidor) del perfil de Windows para uso con perfiles mviles (Roaming Profiles) NOTA: Si no se desea activar el uso de roaming profiles para el usuario se debe de asignar un valor vacio. Establece el nombre cannico del usuario Establece el surname (apellido) del usuario -G 512,550 -d /var/usuario -s /bin/ksh -c "Usuario Administrador"

-G -d -s -c -m -P -A -B -C

$userHomePrefix/usuario $userLoginShell $userGecos

-A 1 -B 1 -C \\PDC\homes -C ""
$userSmbHome

-D

-D H:

$userHomeDrive

-D "" -F \\PDC\profiles \usuario -F "" -N Juan -S Perez


$userProfile

-F

-N -S

Por ejemplo, Agregaremos uno usuario a Usuario Red 1 con el login usuariored1 el cual: Es un usuario de Windows (-a) El grupo primario del usuario ser el grupo con el GID 512 (Domain Users) (-g)

Prohibida la reproduccin total o parcial de este documento.

58 de 108

Tiene un directorio home en /home/usuariored1 (-d) No tiene un login shell (-s) La cuenta NO tendr soporte para perles mviles (roaming proles) (-F "") Y al nal del comando se preguntar la contrasea del usuario (-P) El nombre cannico es Juan (-N) El apellido es Red 1 (-S) Lo hacemos con el siguiente comando:
root@pdc:~# smbldap-useradd -a -g 512 -m -N "Usuario" -S "Red 1" -s /bin/false -d /home/usuariored1 Changing UNIX and samba passwords for usuariored1 New password:CONTRASEADEUSUARIORED1 Retype new password:CONTRASEADEUSUARIORED1

Ya que algunos atributos ya los predenimos, entonces podemos obviarlos y ejecutar:


root@pdc:~# smbldap-useradd -a -m -P usuariored1 Changing UNIX and samba passwords for usuariored1 New password:CONTRASEADEUSUARIORED1 Retype new password:CONTRASEADEUSUARIORED1

Digamos que para agregar un usuario que solo sera usado para ejecutar comandos administrativos y agregar maquinas al dominio, entonces deber de pertenecer al grupo Domain Admins: Ejecutamos:
root@pdc:~# smbldap-useradd -a -m -G 512 -s /bin/bash -P usuarioadmin Changing UNIX and samba passwords for usuarioadmin New password:CONTRASEADEUSUARIOADMIN Retype new password:CONTRASEADEUSUARIOADMIN

Nota Para conocer acerca de las dems opciones del comando smbldap-useradd ver la pgina del manual del comand smbldap-useradd(8). Hay opciones como -C, -D, -E tools/smbldap.conf. y -F que sera mejor desactivarlas de forma global en el archivo /etc/smbldap-

Para ver como configurar los privilegios para que usuarioadmin pueda unir maquinas al dominio ver la seccin Delegando tareas y privilegios a los miembros del dominio.

Para eliminar una cuenta de usuario, se usa el comando smbldap-userdel, por ejemplo:
root@pdc:~# smbldap-userdel usuariored1

Si deseas eliminar la cuenta usuariored1 del directorio LDAP, y si tambin deseas eliminar el directorio $HOME, use el parmetro -r, por ejemplo: comando:
root@pdc:~# smbldap-userdel -r usuariored1

Otros parmetros para eliminar cuentas de usuario: Tabla 10.2. Tabla de opciones disponibles para el comando smbldap-userdel

Prohibida la reproduccin total o parcial de este documento.

59 de 108

Opcin Descripcin -r Elimina el directorio $HOME del usuario -R Elimina el directorio $HOME del usuario de forma interactiva Aviso El usar la opcin -r es peligroso ya que puede eliminar datos importantes del usaurio, usalo con cuidado.

Para cambiar la contrasea de un usuario usamos el comando smbldap-passwd como se muestra en el siguiente ejemplo:
root@pdc:~# smbldap-passwd usuariored1 Changing UNIX and samba passwords for usuariored1 New password:NUEVACONTRASEADEUSUARIORED1 Retype new password:NUEVACONTRASEADEUSUARIORED1

Si desea permitir que los usuarios Windows puedan cambiar su contrasea desde el mismo Windows vea la seccin Permitiendo que usuarios Windows cambien su contrasea de dominio.

Para modicar una cuenta de usuario, usamos el comando smbldap-usermod. Las opciones disponibles estn listadas en la siguiente tabla: Tabla 10.3. Tabla de opciones disponibles para el comando smbldap-usermod Opcin -c -d -u -g -G -s -N -S -P -a -e -A -B -C Descricpcin Establece el campo gecos del la cuenta de usuario Establece la ruta del directorio $HOME del usuario Estable el valor del User ID (UD) del usuario Ejemplo -c "Usuario Administrador" -d /var/user -u 1003

Estable el valor para el Group ID (GID). Este ser el grupo primario del usuario -g 1003 Agrega la cuenta a uno o ms grupos suplementarios (Secundarios), si se van a establecer -G 512, 550 varios grupos suplementarios, cada nombre de grupo va seprado por coma. Estable el shell de login para el usuario Estable el nombre cannico del usaurio Estable el surname (apellido) del usaurio Al terminar el comando smbldap-useradd, smbldap-passwd es invocado para establecer la contrasea del usuario Agrega el objectClass sambaSAMAccount a la cuenta, es decir, le agrega los atributos necesarios para que el usuario pueda conectarse a recursos compartidos en red (SMB/CIFS) y pueda hacer login en el dominio NT/Samba. Establece la fecha de expiracin para la contrasea del usuario, (Formato: YYYY-MM-DD HH:MM:SS) El usuario puede cambiar su contrasea: 0 = No, 1 = S El usuario debe cambiar su contrasea la primer vez que inicia sesin: 0 = No, 1 = S Establece la ruta para el recurso compartido homes en el servidor Samba, usado por la opcin -D -A 1 -B 1 -C \\PDC\homes -s /bin/ksh

Prohibida la reproduccin total o parcial de este documento.

60 de 108

Opcin

Descricpcin NOTA: Se se desea desactivar el mapeo del directorio home en el servidor al usuario, se asigna un valor vaco: Estable la letra de la unidad de red con la que se mapear el $HOME del usuario en el servidor (-C) al usuario cuando inicie sesin en el dominio. NOTA: Hay que agregar los ":" (dos puntos) al final de la letra. NOTA: Si no se desea mapear el home del usaurio, debemos de asignar un valor vaco.

Ejemplo -C "" -D H: -D ""

-D

-E

Nombre del script batch (DOS) para ejecutarse al inicio de sesin del usuario. NOTA: La -E common.bat ruta al logon script debe de ser relativa a la ruta del recurso [netlogon] NOTA: Si no se desea ejecutar un logon script para el usuario se debe de especificar un valor vaco. -E ""

-F

Establece la ruta al directorio (el el servidor) del perfil de Windows para uso con perfiles -F \\PDC\profiles \usuario mviles (Roaming Profiles) NOTA: Si no se desea activar el uso de roaming profiles para el usuario se debe de asignar un valor vacio. -F "" -I 1 -J 1

-I -J

Desabilita (desactiva) la cuenta de usuario Habilita (despues de haber sido desactivada) la cuenta de usaurio

Tambin puedes usar el comando smbldap-userinfo para actualizar la informacin del usuario. Este comando tambin puede ser usado por los usuarios para actualizar su propia informacin, la informacin que pueden cambiar los usaurios esta listada en la siguiente tabla: Nota Si se permite que los usuarios modifiquen su propia informacin, entonces se debern de configurar los ACL (Listas de Control de Acceso) apropiadamente en el servidor LDAP. TODO: POner una nota de que atributos se deben de permitr y alguna otra recomendacin. Tabla 10.4. Tabla de opciones disponibles para el comando smbldap-userinfo Opcin Descipcin -f Estable el nombre completo del usuario -w Establece el nmero telefnico del Trabajo -h -s Ejemplo -f Mi Nombre con Apellidos -w 55 44 33 22 11

Establece el nmero telefnico de Casa -h 22 11 22 33 44 Establee el login shell predeterminado del usuario -s /bin/bash

Hay opciones como -C, -D, -E y -F que sera mejor desactivarlas de forma global en el archivo /etc/smbldaptools/smbldap.conf.

Para la administracin de grupos se usarn diferentes comandos que se explican a continuacin.

Agregando Grupos
Para agregar un nuevo grupo usaremos el comando smbldap-groupadd. Una lista de opciones disponibles se encuentran en la siguiente tabla:

Prohibida la reproduccin total o parcial de este documento.

61 de 108

Tabla 10.5. Tabla de opciones disponibles para el comando smbldap-groupadd Opcin -a -g gid -o Descipcin El grupo ser automaticamente mapeado a un grupo de Dominio (Windows). El mapeo de GID a SID es automatico. Establece el Group ID (GID) del grupo El GID del grupo no es nico. -r 1002 -s S-1-5-21-37034719493718591838-2324585696-1002 -t 4 -g 1002 Ejemplo

-r Establece el ID Relativo (RID) para el grupo Samba RID-GRUPO -s Establece el SID del grupo a SID-GRUPO SID-GRUPO -t -p Establece el tipo de grupo (solo grupos samba), Los valores disponibles son: 2 (domain group), 4 (local group) y 5 (builtin group). El tipo de grupo predeterminado es el tipo 2 (grupo de dominio). Imprime el GID a la salida estandar (stdout)

Por ejemplo, si queremos agregar un grupo llamado contabilidad, el cual: Automaticamente se mapeara a un grupo de Samba (Windows) (-a) Se le asignar el ID de Grupo (GID) 3000 (-g 3000) Y le agregaremos el RID 300, al igual que el GID (-r 3000) Ejecutamos el siguiente comando:
root@pdc:~# smbldap-groupadd -a -g 3000 -r 3000 contabilidad

Normalmente no es necesario especificar el gid ni el rid manualmente, ya que dejaremos que elija el siguiente disponible, por lo que solamente podemos ejecutar:
root@pdc:~# smbldap-groupadd -a contabilidad

Para visualizar la informacin del nuevo grupo podemos usar el comando smbldap-groupshow, por ejemplo:
root@pdc:~# smbldap-groupshow contabilidad dn: cn=contabilidad,ou=Groups,dc=example,dc=com objectClass: top,posixGroup,sambaGroupMapping cn: contabilidad gidNumber: 1001 sambaSID: S-1-5-21-1482872308-118742792-2317756604-3003 sambaGroupType: 2 displayName: contabilidad

TODO: ????

Eliminando Grupos
Para eliminar grupos, usaremos el comando smbldap-groupdel, por ejemplo, para eliminar el grupo contabilidad usaremos el siguiente comando:
root@pdc:~# smbldap-groupdel contabilidad

Este comando no requiere de opcin alguna.

Prohibida la reproduccin total o parcial de este documento.

62 de 108

Agregando usuarios a Grupos


Para agregar un usuario a un grupo usamos el comando smbldap-groupmod, por ejemplo, queremos agregar el usuario jmedina al grupo recin creado contabilidad, usaremos el comando:
root@pdc:~# smbldap-groupmod -m jmedina contabilidad adding user jmedina to group contabilidad

Si queremos agregar ms de un usuario a un grupo deberemos de separar cada nombre de usuario por coma, por ejemplo: Queremos agregar el usuario miguel, carlos y sara al grupo contabilidad
root@pdc:~# adding user adding user adding user smbldap-groupmod -m miguel,carlos,sara contabilidad miguel to group contabilidad carlos to group contabilidad sara to group contabilidad

Eliminando Usuarios de Grupos


Para eliminar algn usuario mienbro de un grupo usamos el comando:
root@pdc:~# smbldap-groupmod -x miguel contabilidad deleting user miguel from group contabilidad

Si queremos eliminar ms de un usuario a la vez separamos cada nombre de usuario por coma, como en el siguiente ejemplo:
root@pdc:~# smbldap-groupmod -x carlos,sara contabilidad deleting user carlos from group contabilidad deleting user sara from group contabilidad

Tabla de contenidos Cambiar o asignar contrasea al Root DN de OpenLDAP Agregar nuevos indices de atributos en OpenLDAP Respaldar los archivos de configuracin de OpenLDAP Respaldar y Restaurar una base de datos de OpenLDAP Respaldando archivos importante de Samba Respaldando el SID del Dominio Samba En esta seccin se describen algunas de las tareas de mantenimiento bsicas para el servidor OpenLDAP y Samba.

En OpenLDAP el DN definido en la directiva rootdn del archivo slapd.conf(5) no es sujeto a las restricciones impuestas por las ACLs, ya que esta es una cuenta privilegiada se recomienda que se asigne una contrasea fuerte y que dicha cuenta solo se use para tareas que requieran privilegios elevados. En nuestro ejemplo en el archivo slapd.conf(5) tenemos nuestra definicin de base de datos tenemos las siguientes directivas:
rootdn "cn=Manager,dc=example,dc=com" rootpw secret

En este ejemplo la contrasea del rootdn esta en texto plano, para cambiarla y protegerla usando un hash criptogrfico siga los siguientes pasos:

Prohibida la reproduccin total o parcial de este documento.

63 de 108

1. Genere el hash de la contrasea usando slappasswd:


# slappasswd New password: Re-enter new password: {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

Nota El hash predefinido es SSHA, si desea cambiar el tipo de hash use la opcin -h para definir un hash diferente, por ejemplo: -h {CRYPT}, para ms informacin vea la pagina del manual de slappasswd(8). 2. Copie el HASH {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6 y cambielo en el valor rootpw del archivo slapd.conf(5), por ejemplo:
... rootdn "cn=Manager,dc=example,dc=com" rootpw {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

Importante Asegurese de que el archivo slapd.conf(5) tenga los permisos adecuados, por ejemplo en Debian/Ubuntu se recomiendan los permisos: root:openldap / 640. Para que el cambio tome efecto reinicie el servicio LDAP:
# /etc/init.d/slapd restart

Tambien puede mantener la contrasea del rootdn fuera del archivo slapd.conf(5), es decir, puede eliminar la directiva rootpw del archivo slapd.conf(5) y agregar una entrada para el DN en el directorio LDAP. Los beneficios que obtenemos al mantener la entrada el rootdn en el directorio son: Puede actualizar la contrasea de forma dinamica sin reiniciar el servicio usando una operacin de modificacin desde cualquier cliente LDAP. Si olvida la contrasea siempre puede realizar la configuracin manual usando slappasswd(8) y slapd.conf(5). Para mantener la entrada del RootDN en el directorio LDAP siga este procedimiento: 1. Cree el archivo /tmp/rootdn.ldif con la entrada para la cuenta del root dn en formato LDIF:
dn: cn=Manager,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: Manager description: LDAP Manager userPassword: {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

2. Agrega el LDIF usando ldapadd:


# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/rootdn.ldif

Se recomienda que no use la cuenta cn=Manager,dc=example,dc=com en sus tareas de administracin de rutina, en su lugar se recomienda que cree una cuenta privilegiada para tales propositos, por ejemplo en Debian/Ubuntu se usa el DN de la cuenta cn=admin,dc=example,dc=com la cual ya tiene los ACLs predefinidos para que tenga permisos completos sobre la base de datos predefinida.

Prohibida la reproduccin total o parcial de este documento.

64 de 108

Referencias adicionales: man slapd.conf(5) man slapd(8) man slappasswd(8) man slapadd(8) OpenLDAP Software 2.4 Administrators Guide - Directory Backups

Cuando usa OpenLDAP con backends basados en Berkeley DB por ejemplo el backend tipo hdb debe de tener indexados los atributos ms utilizados en las consultas LDAP y as incrementar el rendimiento en las consultas desde las aplicaciones y clientes LDAP, un ejemplo de un atributo no indexado lo podemos ver en los logs de OpenLDAP:
slapd[4164]: <= bdb_equality_candidates: (uniqueMember) not indexed

El mensaje anterior nos muestra que se estan haciendo consultas para el atributo uniqueMember y no esta indexado lo cual se puede reflejar en bajo rendimiento del servicio LDAP. Para agregar uno o ms atributos a la lista de indices para una base de datos en OpenLDAP debe de seguir el siguiente procedimiento: 1. Agregar definicin de indice para los atributos deseados al archivo de configuracin del servicio OpenLDAP:
# vim /etc/ldap/slapd.conf

Nota Estas tareas se realizan sobre distribuciones basadas en Debian como Unbuntu. Bajo la definicin de la base de datos en cuestion agregue los indices:
index memberUid,uniqueMember eq

En este caso agregamos los atributos memberUid y uniqueMember de tipo Equality. Si solo reinicia el servicio slapd solo se indexarn los atributos para las nuevas entradas, para que los atributos existentes tambin sean indexados debe detener el servicio slapd y ejecutar el programa slapindex 2. Detener servicio slapd:
# /etc/init.d/slapd stop

3. Indexar los atributos memberUid y uniqueMember:


# slapindex -v memberUid uniqueMember

4. Re establecer permisos para archivos de bases de datos de slapd:


# chown -R openldap:openldap /var/lib/ldap

5. Ahora ya puede iniciar el servicio slapd con todos los atributos indexados.
# /etc/init.d/slapd stop

Prohibida la reproduccin total o parcial de este documento.

65 de 108

Referencias adicionales: slapindex(8) FAQ de OpenLDAP sobre Performance Tunning

Se recomienda respaldar los directorios de configuraciones tanto de Samba, OpenLDAP, smbldap-tools, NSS LDAP y PAM. En la siguiente tabla se muestra una lista: Tabla 11.1. Directorios de configuracin a respaldar Servicio Archivos y Directorios OpenLDAP /etc/ldap/, /etc/default/slapd Samba /etc/samba smbldap-tools /etc/smbldap-tools/ libnss-ldap /etc/ldap.conf, /etc/ldap.secret, /etc/nsswitch.conf PAM /etc/pam.d

Incluya los archivos y directorios mencionados en la tabla de arriba en su sistema de respaldos.

En esta seccin explicar como crear una copia de seguridad de una base de datos en un servidor OpenLDAP, generaremos respaldos en frio y en caliente, los respaldos sern generados en formato LDIF. Suponiendo que en el archivo slapd.conf(5) tenemos una definicin de base de datos as:
# Specific Backend Directives for hdb: backend hdb # Specific Directives for database #1, of type hdb: database hdb # The base of your directory in database #1 suffix "dc=example,dc=com" # Where the database file are physically stored for database #1 directory "/var/lib/ldap"

El programa slapcat(8) lee la informacin de la base de datos en orden secuencial y genera la salida correspondiente en formato LDIF incluyendo atributos de usuario y operacionales, el programa slapcat solo respaldara las entradas que se leyeron en el momento de la ejecucin, si en el momento de que slapcat esta ejecutandose se realiza una operacin de escritura sobre alguna entrada dicho cambio no ser incluido en el respaldo. En OpenLDAP las bases de datos de tipo hdb y bdb pueden ser respaldadas mientras el servicio slapd(8) esta en ejecucin usando el programa slapcat, a este tipo de respaldo se le llama en caliente. Si no esta seguro de que no habr modificacioens en los datos de las bases de datos de OpenLDAP y no sabe si dichos cambios puedan afectar las aplicaciones o clientes LDAP se recomienda que detenga el servicio slapd antes de generar el respaldo con slapcat, a este tipo de respaldo se le llama en frio. Para crear un respaldo en frio de una base de datos de OpenLDAP siga el siguiente procedimiento: 1. Detener el servicio slapd:
# /etc/init.d/slapd stop

Prohibida la reproduccin total o parcial de este documento.

66 de 108

2. Respaldar la base de datos usando el programa slapcat:


# slapcat -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

El comando slapcat generar un respaldo de la base de datos dc=example,dc=com definida por el parametro -b en el archivo respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif definido por el parametro -l. Para crear un respaldo en caliente de una base de datos de OpenLDAP solo ejecute el comando slapcat como en el paso dos del ejemplo anterior. Se recomienda que el archivo del respaldo sea movido a un lugar fuera del servidor. Para restaurar la base de datos a partir del archivo LDIF generado por slapcat siga el siguiente procedimiento: 1. Apagar el servicio slapd:
# /etc/init.d/slapd stop

2. Limpiar el directorio de base de datos de slapd:


# (cd /var/lib/ldap/; rm -fv alock __db.* *.bdb log.*)

3. Restaurar directorio a partir del archivo LDIF:


# slapadd -v -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

4. Opcionalmente Re indexe todos los atributos:


# slapindex -v

5. Re establecer permisos al directorio de datos:


# chown -R openldap:openldap /var/lib/ldap

6. Iniciar el servicio slapd:


# /etc/init.d/slapd start

Y listo, puede usar el comando slapcat para verificar los datos, y no olvide verificar sus aplicaciones cliente. Referencias adicionales: El formato LDIF man slapd.conf(5) man slapd(8) man slapcat(8) man slapadd(8) OpenLDAP Software 2.4 Administrators Guide - Directory Backups

Respaldar los archivos en el directorio /etc/samba/ y /var/lib/samba/ TODO: Meter ejemplo real: detener samba, crear directorio de respaldos mkdir -p /var/backups/samba/, cp -va /var/lib

Prohibida la reproduccin total o parcial de este documento.

67 de 108

/samba/* /var/backups/samba/var/lib/samba/, cp -va /etc/samba/* /var/backups/samba/etc/samba/

Es prudente almacenar el SID de la maquina y/o dominio en un archivo por seguridad, Porque? Porque un cambio en el nombre de la maquina (hostname) o en el nombre de dominio (workgroup) puede resultar en un cambio en el SID. As, cuando tienes el SID a la mano, es simple restaurarlo. La alternativa sera sufrir el dolor de tener que recuperar los perfiles de los usuarios de escritorio y quizas re-unir todos las maquinas miembras del dominio. Primero, no olvides almacenar el SID local a un archivo. Es una buena idaa ponerlo en el directorio en el que el archivo smb.conf esta almacenado, un ejemplo simple seria:
root@pdc:~# net getlocalsid > /etc/samba/EXAMPLE-SID

Para restaurar el SID usamos el comando:


root@pdc:~# net setlocalsid S-1-5-21-1482872308-118742792-2317756604

Tabla de contenidos Requerimientos del sistema Configuracin de los parmetros de red en el equipo Windows Informacin necesaria para configurar los parmetros de red Configurando correctamente los parmetros de red Verificacin de los Parmetros de Red Configuracin del nombre de equipo Windows Uniendo el equipo Windows al Dominio Samba Como Iniciar Sesin el Dominio Samba Como permitir que un usuario cambie la contrasea de dominio Como mapear una unidad de disco en red al directorio home en el servidor Como compartir archivos en la red a usuarios y grupos de dominio Como habilitar el uso de scripts de inicio de sesin en un dominio Samba En este capitulo veremos como unir un equipo windows a una red basada en un dominio Samba/NT. cuando el equipo windows es unido al dominio se dice que es un equipo miembro de dominio, el procedimiento para unir un equipo Windows a un Dominio Samba/NT incluye los siguientes pasos: Configurar los parmetros de red en el equipo Windows. Configuracin del nombre de equipo Windows. Unir el equipo al dominio Samba. Iniciar sesin en el dominio Samba. Adems de unir el equipo windows al dominio samba, veremos algunas otras operaciones que se deben o pueden realizar en un entorno de red windows con un controlador de dominio samba relacionados a la comparticin de recursos como archivos e impresoras. Antes de continuar con el procedimiento debe asegurarse de cumplir con los requerimientos de red y de sistema que se listan en la siguiente seccin.

Prohibida la reproduccin total o parcial de este documento.

68 de 108

Para que un equipo Windows pueda ser unido al dominio es necesario que cumpla con los siguientes requerimientos: Debe de ser un sistema operativo Windows 2000 Professional o Windows XP Profesional, los equipos con Windows Home Edition no pueden participar por completo en un Dominio de Red por lo tanto no se podr utilizar el siguiente procedimiento. Debe de tener una interfaz de red funcional y tener conectividad con el servidor de PDC. Se debe de tener una cuenta de usuario con privilegios administrativos en el equipo local, por ejemplo, la cuenta root/Administrator. Se debe tener una cuenta de usuario de dominio que sea miembro del grupo de red Domain Users. En las siguientes secciones se describen los procedimientos antes mencionados para unir un equipo windows al dominio Samba.

En esta seccin se describe como verificar que los parmetros de red en nuestro equipo Windows estn correctamente configurados.

Informacin necesaria para configurar los parmetros de red


Antes de unir un equipo Windows al dominio, verificaremos que los parmetros de red estn correctamente configurados, recuerde que la informacin de red de la red de la empresa es: Nombre de empresa: EXAMPLE S.A. de C.V. Dominio Samba/NT: EXAMPLE. Dominio DNS: example.com. Nombre NetBIOS del servidor PDC: PDC. Nombre DNS FQDN: pdc.example.com. Direccin IP de red para el dominio EXAMPLE : 192.168.221.0/24. Direccin IP del servidor PDC: 192.168.221.3. Direccin IP del gateway para la red LAN: 192.168.221.254. Direccin IP del servidor DNS primario: 192.168.221.253. Direccin IP del servidor DNS secundario: 192.168.221.254. Direccin IP del servidor WINS: 192.168.221.3. La informacin del equipo windows que se va a unir al dominio es la siguiente: Nombre NetBIOS del cliene Windows: WINPC001. Nombre DNS FQDN: winpc001.example.com. Direccin IP: 192.168.221.50/24. El soporte NetBIOS sobre TCP/IP debe estar activado en el cliente windows.

Prohibida la reproduccin total o parcial de este documento.

69 de 108

Configurando correctamente los parmetros de red


Para verificar o cambiar estos parmetros ir a Panel de Control=>Conexiones de Red e Internet=>Conexiones de Red. Dar click derecho al icono de Conexin de rea local, seleccionar el elemento Protocolo Internet (TCP/IP) y dar click en el botn Propiedades Dentro del cuadro de dialogo Propiedades de Protocolo Internet (TCP/IP) dar click en el botn de Opciones Avanzadas Figura 12.1. Propiedades de Protocolo Internet (TCP/IP) General

En el cuadro de dialogo Configuracin avanzada de TCP/IP despus damos click en la pestaa de nombre WINS En esta pestaa vamos a agregar la direccin IP de nuestro servidor WINS (NetBIOS Name Server NBNS), para agregar el servidor WINS damos click en el botn Agregar como se muestra en la imagen de abajo. Figura 12.2. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS

Prohibida la reproduccin total o parcial de este documento.

70 de 108

Agregamos la direccin IP de nuestro servidor Samba WINS como se muestra en la imagen de abajo Figura 12.3. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS - Agregar

Prohibida la reproduccin total o parcial de este documento.

71 de 108

Despus de agregar la direccin IP del servidor WINS damos click en el botn Agregar y el servidor WINS aparecer en la lista. Nota Podemos agregar ms de un servidor WINS, el sistema los evaluar en el orden en que aparecen. Para terminar nuestras configuraciones damos click en el botn Aceptar para regresarnos al cuadro de dialogo de configuraciones avanzadas, estando en el cuadro de dialogo de Propiedades de Protocolo Internet (TCP/IP) General damos click en el botn Aceptar y por ultimo damos click en el botn Cerrar para que nuestros cambios tomen efecto.

Verificacin de los Parmetros de Red


Solo para confirmar que la configuracin si hay tomado efecto damos doble click sobre el icono de Conexin de rea local. Despus damos click en la pestaa Soporte. Ah nos muestra una parte de la configuracin de red. damos click en el botn Detalles... para ver la informacin completa de la configuracin de red. Figura 12.4. Viendo los detalles de la conexin de red

Prohibida la reproduccin total o parcial de este documento.

72 de 108

Si despus de verificar los detalles de los parmetros de red todo esta bien, entonces podemos continuar con el paso de configuracin del nombre de equipo.

Verificacin de nombre de equipo y grupo de trabajo. Esta es una computadora recin instalada y en el proceso de instalacin se le asigno el nombre de equipo: winpc001. Para verificar el nombre de nuestro equipo vamos al Panel de Control=>Rendimiento y mantenimiento=>Sistema Estando en el cuadro de dialogo Propiedades del sistema vamos a la pestaa de Nombre de equipo donde veremos algo ai: Figura 12.5. Propiedades del sistema, Nombre de Equipo

Prohibida la reproduccin total o parcial de este documento.

73 de 108

Si se desea cambiar el nombre del equipo (recordar que este nombre ser como nos vern en la red), podemos dar click en el botn Cambiar... y nos aparecer una ventana como la siguiente. Figura 12.6. Propiedades del sistema, Cambios en el nombre de equipo

Prohibida la reproduccin total o parcial de este documento.

74 de 108

Importante No use un nombre de equipo que sea igual a un usuario local o de dominio ya que no esta permitido. Se cambia el nombre donde dice Nombre de equipo: y se da click en Aceptar. El nombre de Grupo de trabajo Dominio no es necesario cambiarlo en este paso ya que puede ser cambiado en el proceso de unir la maquina al dominio.

Para unir el equipo al dominio podemos usar el Asistente para identificacin de red el cual nos llevar paso a paso en el proceso para que el equipo sea un miembro del dominio de red Samba/NT. Lanzamos el asistente de identificacin de red dando click en el botn Id. de red. Figura 12.7. Usando el Asistente de Identificacin de red

Prohibida la reproduccin total o parcial de este documento.

75 de 108

La primer pantalla nos da la bienvenida al asistente para conectar el equipo a una red. Figura 12.8. Asistente de identificacin de red, paso 1

Prohibida la reproduccin total o parcial de este documento.

76 de 108

Para continuar con el asistente damos click en el botn Siguiente > El siguiente paso nos pregunta que tipo de equipo tenemos, en nuestro caso seleccionamos la opcin que dice: El equipo forma parte de una red organizativa y lo utilizo para conectarme a otros equipos en el trabajo y damos en el botn Siguiente > para continuar. Figura 12.9. Asistente de identificacin de red, paso 2

Prohibida la reproduccin total o parcial de este documento.

77 de 108

En el siguiente paso nos pregunta el tipo de red de nuestra organizacin, elegimos la opcin: Mi compaia utiliza una red con dominio y damos click en el botn Siguiente >. Figura 12.10. Asistente de identificacin de red, paso 3

Prohibida la reproduccin total o parcial de este documento.

78 de 108

En el siguiente paso del asistente nos da un da un resumen de la informacin de red que necesitamos para unir este equipo al dominio Figura 12.11. Asistente de identificacin de red, paso 4 Asistente de identificacin de red, paso 4 A continuacin se muestra la informacin requerida junto con la informacin correspondiente a nuestro dominio: Nombre de usuario: jperez. Contrasea de usuario: 123456. Cuenta de usuario del dominio: jperez. Es posible que tambin necesite: Nombre del equipo: winpc001. Dominio del equipo: EXAMPLE. Adems necesitaremos la contrasea del usuario root/Administrator del dominio, esta cuenta ser necesaria para poder

Prohibida la reproduccin total o parcial de este documento.

79 de 108

unir la maquina al dominio y crear la cuenta de computadora correspondiente a winpc001. Configuramos esta informacin como se muestra en la siguiente imagen: Figura 12.12. Asistente de identificacin de red, paso 5 Asistente de identificacin de red, paso 5 Despus de ingresar la informacin damos click en el botn Siguiente >. Al dar click en Siguiente el asistente tratar de encontrar una cuenta de equipo de nombre winpc001 en el dominio EXAMPLE, si no la encuentra nos mostrar un cuadro como el siguiente, donde nos avisa que no encontr la cuenta de equipo en el dominio, nos pide escribir nuevamente el nombre de equipo y el dominio. Figura 12.13. Asistente de identificacin de red, paso 6 Asistente de identificacin de red, paso 6 Damos click en el botn Siguiente >, ya que la cuenta de equipo no se encontr en el dominio EXAMPLE, necesitaremos usar una cuenta con privilegios administrativos de dominio y su contrasea para que por medio del asistente de identificacin de red se cree la cuenta de equipo winpc001 en el dominio EXAMPLE. Figura 12.14. Asistente de identificacin de red, paso 7 Asistente de identificacin de red, paso 7 Ya que no tenemos cuentas con privilegios administrativos de dominio, usaremos la cuenta de root/Administrator que se creo con smbldap-populate, ingresamos su contrasea y el nombre de dominio EXAMPLE como se muestra en la imagen de arriba, despus damos click en el botn Aceptar para continuar. Si las credenciales que presentamos fueron correctas, en la siguiente ventana, nos dir que podemos agregar un usuario al equipo, cuando se agrega un usuario a este equipo se le concede acceso a todos los recursos del equipo y a todos los recursos compartidos en la red. Figura 12.15. Asistente de identificacin de red, paso 8 Asistente de identificacin de red, paso 8 Usaremos el nombre de usuario: jperez y el nombre de dominio: EXAMPLE, como se muestra en la imagen de arriba y damos click en el botn Siguiente > para continuar. En la siguiente ventana nos solicita asignar un nivel de acceso que el usuario jperez tendr sobre el equipo WINPC001, por defecto esta seleccionado el nivel de acceso: Usuario estndar. Figura 12.16. Asistente de identificacin de red, paso 9 Asistente de identificacin de red, paso 9 El nivel de acceso Usuario estndar permite que los usuarios pueden cambiar muchas configuraciones del sistema e instalar programas que no afecten a los archivos del sistema de Windows. Digamos que este es el nivel intermedio. El nivel de acceso Usuario restringido permite que los usuarios pueden utilizar el equipo y guardar documentos, pero no pueden instalar programas o cambiar la configuracin del sistema. En Otros: podemos elegir otros niveles de acceso, por ejemplo, podemos dar acceso de Administrator al usuario, esto quiere decir que el usuario jperez tendr todos los privilegios sobre el equipo WINPC001, lo cual significa que puede
Prohibida la reproduccin total o parcial de este documento.

80 de 108

cambiar configuraciones, puede instalar y desinstalar programas que afecten el sistema, es decir, puede hacer lo que le de la gana sobre el equipo, incluso formatear :D. Por ahora seleccionamos el nivel de acceso Usuario estndar y damos click en el botn Siguiente > para finalizar. Figura 12.17. Asistente de identificacin de red, Ultimo Paso

El ltimo paso nos dice que ya hemos completado con xito el asistente para identificacin de red, y nos solicita re iniciar el equipo para que los cambios tengan efecto. Damos click en el botn Finalizar. Figura 12.18. Asistente de identificacin de red, Re iniciar el equipo Asistente de identificacin de red, Re iniciar el equipo Damos click en el botn Aceptar y nos lleva a la siguiente imagen: Figura 12.19. Asistente de identificacin de red, Alerta de re iniciar el equipo

Prohibida la reproduccin total o parcial de este documento.

81 de 108

Para que los cambios que hicimos en el asistente de identificacin de red tenga efecto es necesario re iniciar el equipo, damos click en el botn Aceptar para terminar y re iniciar. Si el equipo se uni satisfactoriamente al dominio, Samba crear una cuenta de computadora, la cual autoriza al equipo para acceder a los recursos de la red. Puede ver la lista de cuentas de computadoras con el comando pdbedit, por ejemplo:
root@pdc:~# pdbedit -L # pdbedit -L root:0:root nobody:65534:nobody jperez:1009:Juan Perez winpc001$:1011:WINPC001$

Las cuentas de computadora terminan con el simblo $, use el parmetro -V para ver ms informacin acerca de la cuenta, por ejemplo:
root@pdc:~# pdbedit -Lv winpc001$ Unix username: winpc001$ NT username: winpc001$ Account Flags: [W ] User SID: S-1-5-21-1482872308-118742792-2317756604-1001 Primary Group SID: S-1-5-21-1482872308-118742792-2317756604-515 Full Name: WINPC001$ Home Directory: HomeDir Drive: Logon Script: logon.bat Profile Path: Domain: EXAMPLE Account desc: Computer Workstations: Munged dial: Logon time: 0

Prohibida la reproduccin total o parcial de este documento.

82 de 108

Logoff time: Kickoff time: Password last set: Password can change: Password must change: Last bad password : Bad password count : Logon hours :

never never 0 0 0 0 0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Nota Las cuentas de computadora tienen el Account Flags W, el cual significa que es un workstation no una cuenta de usuario. Las cuentas de computadora se crean en la OU=Computers. En la siguiente seccin veremos como iniciar sesin en un dominio de red.

Despues de reiniciar el equipo nos cambiar la ventana de inicio de sesin a como se muestra a continuacin. Figura 12.20. Inicio de sesin de Windows - Pantalla inicial Inicio de sesin de Windows - Pantalla inicial Para poder iniciar sesin presionamos la combinacin de teclas Ctrl+Alt+Supr y nos mostrar una ventana como la siguiente: Figura 12.21. Inicio de sesin de Windows - Pantalla predeterminada de login Inicio de sesin de Windows - Pantalla predeterminada de login Si queremos ver en que equipo o dominio queremos iniciar sesin podemos dar click en el botn "Opciones" y nos mostrar algo as: Figura 12.22. Inicio de sesin de Windows - Pantalla con opciones activa Inicio de sesin de Windows - Pantalla con opciones activa Nota Si queremos conectarnos al equipo local, damos click en el men desplegable de Conectarse a: y elegimos: WINPC001 (este equipo). Despus de iniciar sesin en el dominio el men de inicio se ver as: Figura 12.23. Inicio de sesin - Men inicio Inicio de sesin - Men inicio Ahora que el usuario a iniciado sesin en el equipo usando las credenciales del dominio, el usuario podr acceder a los recuros a los que esta autorizado.

Prohibida la reproduccin total o parcial de este documento.

83 de 108

Es posible dar acceso a que el usuario pueda actualizar su contrasea de dominio desde el sistema, esto es recomendable cuando se manejan politicas de expiracin de contraseas. Para autorizar a un usuario a cambiar su contrasea de dominio desde windows use el comando smbldap-usermod con el parmetro -A 1 para darle acceso, por ejemplo:
# smbldap-usermod -A 1 jperez

Ahora el usuario debe teclear Ctrl+Alt+Supr para que le aparezca el siguiente men:

Seleccine el botn Cambiar contrasea..., y entonces ver el siguiente cuadro:

Escriba su contrasea actual y la nueva dos veces para actualizarla, presione Aceptar para aplicar la nueva contrasea. Si la contrasea es actualizada satisfactoriamente, recibir el siguiente mensaje de confirmacin: Cuando cambia la contrasea desde windows Samba actualiza la contrasea en los atributos sambaLMPassword y sambaNTPassword, as como la contrasea Unix/LDAP en el atributo userPassword automticamente.

Prohibida la reproduccin total o parcial de este documento.

84 de 108

Para desactivar el cambio de contrasea a una cuenta que previamente le dio acceso use smbldap-usermod con el parmetro -A 0, por ejemplo:
# smbldap-usermod -A 0 jperez

Si el usuario intenta cambiar su contrasea de dominio y no tiene autorizacin para hacerlo recibir el siguiente mensaje.

En esta seccin veremos como conectar una unidad de disco en red en un cliente de dominio windows, esta funcionalidad permite que los usuarios del dominio puedan acceder a sus archivos personales que se encuentran en el directorio $HOME del servidor Samba desde cualquier lugar en la red. Hay dos formas de mepear el directorio $HOME a una unidad de disco en los clientes windows, uno es hacerlo de forma global para todos los usuarios del dominio y la otra es de forma individual por cada usuario. Para el mtodo global debe definir el parmetro logon home y logon drive en la seccin [global] del archivo de configuracin de samba /etc/samba/smb.conf, por ejemplo:
logon home = \\PDC\homes logon drive = H:

Si no desea definir el logon home y logon drive de forma global use como valor una caden vaca, por ejemplo:
logon home = logon drive =

Para definir el logon home de forma individual para un usuario del dominio puede usar el comando smbldap-usermod con el parmetro -C --sambaHomePath, y para definir el logon drive de forma individual use el parmetro -D o --sambaHomeDrive, por ejemplo:
root@pdc:~# smbldap-usermod -C '\\PDC\jperez' -D 'H:' jperez

Use el comando pdbedit para verificar los cambios:


root@pdc:~# pdbedit -Lv jperez Unix username: jperez NT username: jperez Account Flags: [U ] User SID: S-1-5-21-1482872308-118742792-2317756604-3018 Primary Group SID: S-1-5-21-1482872308-118742792-2317756604-513 Full Name: Juan Perez Home Directory: \\PDC\jperez HomeDir Drive: H: Logon Script: Profile Path: Domain: EXAMPLE Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: Mon, 21 Mar 2011 21:26:39 CST Password can change: Mon, 21 Mar 2011 21:26:39 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Inicie una nueva sesin con el usuario jperez y use el Explorador de archivos para verificar que la unidad de disco H: esta

Prohibida la reproduccin total o parcial de este documento.

85 de 108

conectada al directorio $HOME del servidor. Figura 12.24. Mapeo de $HOME en Servidor al unidad H: Local Mapeo de $HOME en Servidor al unidad H: Local El usuario puede usar la unidad H para almacenar documentos personales y estos sern almacenados en su directorio en el servidor. Para desactivar el logon home para un usuario use el comando smbldap-usermod con el parmetro -C, y para desactivar el logon drive use el parmetro -D o --sambaHomeDrive con un valor nlo, por ejemplo:
root@pdc:~# smbldap-usermod -C '' -D '' jperez

$HOME (/home/jperez)

Para ms informacin de como conectar unidades de red ver el articulo Cmo conectar y desconectar una unidad de red en Windows XP.

En esta seccin se explicar como un usuario de dominio puede compartir una carpeta en su equipo local a ciertos miembros y grupos del dominio, la carpeta compartida tendr las siguientes caracteristicas: La carpeta C:\ParaGrupoContabilidad ser compartida. Los miembros del grupo de dominio contabilidad tendrn acceso total. El usuario de dominio efuentes del departamento Direccin tendr acceso total. El usuario de dominio hperez del departamento Finanzas tendr acceso de solo lectura. Creamos la carpeta ParaGrupoContabilidad en el disco C:\, abajo se ve un ejemplo: Figura 12.25. Listado Carpeta a compartir Listado Carpeta a compartir Despues damos clic con el botn derecho sobre la carpeta y damos clic en Compartir y seguridad..., esto nos llevar al men para configurar los parametros para compartir la carpeta, as como los permisos que tendrn los usuarios y grupos de red. Configuraremos el nombre de la carpeta y opcionalmente un comentario, como se muestra en la imagen de abajo. Figura 12.26. Parametros de carpeta compartida Parametros de carpeta compartida Ahora veremos como configurar los controles de acceso que definimos arriba. Damos clic en el botn Permisos, nos aparecer el siguiene cuadro de dialogo: Figura 12.27. Permisos de carpeta compartida Permisos de carpeta compartida Primero agregaremos el grupo contabilidad, el usuario efuentes y el usuario hperez, adelante veremos como asignar los

Prohibida la reproduccin total o parcial de este documento.

86 de 108

permisos a cada uno. Nota Los nombres de usuarios y grupos de dominio se deben de escribir usando la siguiente notacin: Nombre de grupo: EXAMPLE\contabilidad. Nombre de usuario: EXAMPLE\efuentes. Nombre de usuario: EXAMPLE\hperez. Damos clic en el botn Agregar.... Y en el recuadro que dice: Escriba los nombres de objecto que desea seleccionar cada uno de los objectos va separado por un punto y coma ;, como se muestra en la imagen de abajo: Figura 12.28. Seleccionar Usuarios o Grupos Seleccionar Usuarios o Grupos Despues damos clic en Aceptar y nos regresa a la venana anterior con los usuarios y gruipos en la lista, como se muestra en la siguiente imagen: Figura 12.29. Permisos por usuario y gruipo Permisos por usuario y gruipo Ahora que ya estan los usuarios y grupos en la lista, seleccionaremos cada uno para asignarle sus permisos. Asignaremos los permisos de la siguiente forma: 1. Eliminar el grupo Todos ya que solo se da acceso a algunos miembros del dominio 2. Seleccionar contabilidad (EXAMPLE\contabilidad) y en el recuadro de abajo seleccionar Control Total. Figura 12.30. Permisos para grupo EXAMPLE\contabilidad Permisos para grupo EXAMPLE\contabilidad 3. Seleccionar el usuario efuentes (EXAMPLE\efuentes) y verifique que solo tiene permisos de Leer. Figura 12.31. Permisos para EXAMPLE\efuentes Permisos para EXAMPLE\efuentes 4. Seleccionar el usuario hperez (EXAMPLE\hperez) y verifique que solo tiene permisos de Leer tal y como se hizo con EXAMPLE\efuentes. 5. Para terminar de clic en Aceptar y otra vez en Aceptar para que los cambios tomen efecto. Puede probar directamente desde otra maquina windows en la que hay iniciado sesin algn usuario miembro del grupo contabilidad.

Prohibida la reproduccin total o parcial de este documento.

87 de 108

Hay dos formas de habilitar la ejecucin de un logon sript a los usuarios del dominio Samba, uno es hacerlo de forma global para todos los usuarios del dominio y la otra es de forma individual por cada usuario. Para el mtodo global debe definir el parmetro logon script en la seccin [global] del archivo de configuracin de samba /etc/samba/smb.conf, por ejemplo:
logon script = logon.bat

Si no desea definir el logon home y logon drive de forma global use como valor una caden vaca, por ejemplo:
logon script =

La ruta absoluta al script de inicio de sesin es relativa a la ruta del recurso compartido [netlogon], en la seccin de instalacin de samba se creo uno de prueba con el siguiente contenido:
# vim /home/samba/netlogon/logon.bat

Tiene el siguiente contenido:


net time \\PDC /set /yes net use p: \\PDC\publico

Para habilitar el uso de el logon script logon.bat para un usuario de dominio use el comando smbldap-usermod con el parmetro -E --sambaLogonScript, por ejemplo:
# smbldap-usermod -E logon.bat jperez

Use el comando pdbedit para validar el cambio:


# pdbedit -Lv jperez Unix username: NT username: Account Flags: User SID: Primary Group SID: Full Name: Home Directory: HomeDir Drive: Logon Script: Profile Path: Domain: Account desc: Workstations: Munged dial: Logon time: Logoff time: Kickoff time: Password last set: Password can change: Password must change: Last bad password : Bad password count : Logon hours : jperez jperez [U ] S-1-5-21-1482872308-118742792-2317756604-3018 S-1-5-21-1482872308-118742792-2317756604-513 Juan Perez \\PDC\jperez H: logon.bat EXAMPLE

0 never never Mon, 21 Mar 2011 22:29:31 CST Mon, 21 Mar 2011 22:29:31 CST never 0 0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Ahora inicie una nueva sesin y verifique que el reloj del sistema esta sincronizado con el servidor PDC y que se creo la unidad de red P: que esta mapeada al directorio publico \\PDC\publico. Para desactivar el logon script para un usuario use el comando smbldap-usermod con el parmetro -E con un valor nlo, por ejemplo:
root@pdc:~# smbldap-usermod -E '' jperez

Prohibida la reproduccin total o parcial de este documento.

88 de 108

Tabla de contenidos Informacin preliminar del equipo cliente Linux Instalando el software necesario para unir cliente Linux a Dominio LDAP Configurando la resolucin de cuentas de usuario y grupos mediante LDAP en clientes Linux Configurando la Autorizacin de cuentas de usuario y grupos mediante LDAP en clientes Linux con PAM Configuracin del modulo auth Configuracin del modulo account Configuracin del modulo session Configuracin del modulo password Probando la autorizacin mediante PAM LDAP en cliente Linux Configurando resolucin de cuentas de dominio mediante Samba Autenticacin de usuarios y grupos de dominio Samba en clientes Linux Montaje automtico de carpetas compartidas mediante pam_mount Carpetas compartidas con ACL a usuarios y grupos de dominio Autenticando cuentas de usuario de dominio de forma desconectada En este capitulo veremos los procedomiento requeridos para integrar un sistema cliente Linux al dominio EXAMPLE.COM usando NSS_LDAP, NSS_PAM, SAMBA y otras herramientas.

Explicar como unir un cliente unix/linux a nuestro dominio. Tenemos un cliente Linux que tiene su autenticacin independiente usando los archivo /etc/passwd, /etc/shadow y /etc/group principalmente queremos unir este equipo al dominio, es decir, el equipo ser un miembro del dominio, y podr participar en la autenticacin centralizada y comunicarse con los otros hosts, sean servidores linux o windows. Configurando la resolucin de Identidades con NSS_LDAP Esta mquina se llama LNXDSKT01 Tiene la direccin IP: 192.168.1.81 Configuracin de la autenticacin de usuarios y grupos UNIX va PAM_LDAP VER CAPITULO Configuracin de la resolucin de Identidades con NSS_LDAP

Instale el paquete libnss-ldap:


root@lnxdskt01:~# apt-get install libnss-ldap

Para la resolucin de cuentas de usuario y grupos Unix mediante LDAP usaremos el paquete libnss-ldap, la configuracin es similar al servidor, solo cambiar la direccin IP del servidor LDAP. Configuramos el archivo /etc/ldap.conf para libnss-ldap:

Prohibida la reproduccin total o parcial de este documento.

89 de 108

# Config file for libnss-ldap and libpam-ldap uri ldap://192.168.1.10/ ldap_version 3 scope sub base dc=example,dc=com pam_filter objectclass=posixAccount pam_login_attribute uid pam_member_attribute memberuid pam_password exop nss_base_passwd nss_base_passwd nss_base_shadow nss_base_group ou=Users,dc=example,dc=com ou=Computers,dc=example,dc=com ou=Users,dc=example,dc=com ou=Groups,dc=example,dc=com

bind_policy soft nss_initgroups_ignoreusers backup,bin,daemon,dhcp,games,gnats,irc,klog,libuuid,list,lp,mail,man,new nss_initgroups_ignoreusers backup,bin,daemon,dhcp,games,gnats,irc,klog,libuuid,list,lp,mail,man,new

Cambiamos el archivo de configuracin /etc/nsswitch.conf para que utilize la fuente LDAP que recien configuramos:
passwd: group: shadow: hosts: compat ldap compat ldap compat ldap wins files mdns4_minimal [NOTFOUND=return] dns mdns4

Probando la resolucin de usuarios va archivos y LDAP:


root@jmlap:~# getent passwd | grep root root:x:0:0:root:/root:/bin/bash root:x:0:0:Netbios Domain Administrator:/home/root:/bin/false

Tamben podemos probar la resolucin para grupos:


root@jmlap:~# getent group | grep -E 'root|Domain' root:x:0:jmedina Domain Admins:*:512:root Domain Users:*:513: Domain Guests:*:514: Domain Computers:*:515:

Si despues de hacer las pruebas anteriores obtienes los mismos resultados significa que la resolucin de cuentas de usuario y grupo mediante LDAP esta funcionando correctamente en el sistema. El siguiente paso es la configuracin de la autorizacin mediante PAM y las bibliotecas PAM-LDAP.

Instale los paquetes requeridos:


root@jmlap:~#apt-get install libpam-ldap libpam-cracklib

Antes de iniciar con los cambios en la configuracin de los modulos de autenticacin PAM, haremos un respaldo del directorio /etc/pam.d/ Todas las configuraciones de PAM estan en el directorio /etc/pam.d/, respaldaremos todo el directorio
root@ushldap:~# cd /etc/

Prohibida la reproduccin total o parcial de este documento.

90 de 108

Nuestro respaldo tendr el sufijo .FILES para indicar que son las configuraciones que usan los archivos /etc/passwd, /etc/group y /etc/shadow.
root@ushldap:~# cp -va pam.d pam.d.FILES

Configuracin del modulo auth


Configurar los archivos de acuerdo a:
root@ushldap:~# auth auth auth cat /etc/pam.d/common-auth sufficient pam_unix.so likeauth nullok sufficient pam_ldap.so use_first_pass required pam_deny.so

Configuracin del modulo account


config de
root@ushldap:~# cat /etc/pam.d/common-account account required pam_unix.so account sufficient pam_ldap.so

Configuracin del modulo session


azdfasf Connfigurando la Autorizacin (Authz) con PAM LDAP:
root@ushldap:~# session session session cat /etc/pam.d/common-session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 required pam_unix.so optional pam_ldap.so

Configuracin del modulo password


root@ushldap:~# password password password password cat /etc/pam.d/common-password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 sufficient pam_unix.so nullok use_authtok md5 shadow sufficient pam_ldap.so use_authtok required pam_deny.so

Probando la autorizacin mediante PAM LDAP en cliente Linux


Realice prueba de login local va TTY, remoto SSH y login grfico con GDM y KDM.

Ahora configuraremos la Autorizacin de cuentas de usuarios y grupos LDAP mediante los modulos de autenticacin PAM. Para ms detalles acerca de la configuracin de PAM y LDAP en el cliente Linux seguir los pasos descritos en la seccin "Configurando los modulos de autenticacin de PAM" Ahora mostraremos solo los archivos que se modifican.

Prohibida la reproduccin total o parcial de este documento.

91 de 108

Instale los paquetes samba y smbclient:


root@jmlap:~# apt-get install samba smbclient

Ahora creamos el archivo de configuracin con el siguiente contenido:


# # Archivo de configuracin para desktop miembro de dominio # [global] workgroup = EXAMPLE netbios name = jmlap server string = jmlap en EXAMPLE security = DOMAIN username map = /etc/samba/smbusers #========== Configuraciones de Red =========================== socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = ath0 lo bind interfaces only = Yes smb ports = 139 445 hosts allow = 192.168.1. 127. hosts deny = 0.0.0.0 remote announce = 192.168.1.255 wins server = 192.168.1.10 name resolve order = wins hosts lmhosts bcast #========= Opciones para registro de eventos (Logging)======

log level = 1 syslog = 0 log file = /var/log/samba/%m.log max log size = 50 utmp = Yes #========= Opciones para la codificacin ===================

Dos charset = 850 Unix charset = ISO8859-1 display charset = ISO8859-1 #========= Configuraciones para LDAP ======================= passdb backend = ldapsam:ldap://192.168.1.10/ ldap admin dn = cn=admin,dc=example,dc=com ldap suffix = dc=example,dc=com ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Idmap idmap backend = ldap:ldap://192.168.1.10/ idmap uid = 10000-20000 idmap gid = 10000-20000 winbind trusted domains only = Yes

Guardamos el archivo y el siguiente paso es agregar la contrasea del admin ldap:


root@jmlap:~# smbpasswd -W Setting stored password for "cn=admin,dc=example,dc=com" in secrets.tdb New SMB password:ldapadmin Retype new SMB password:ldapadmin

Reiniciamos samba para que los cambios tomen efecto:

Prohibida la reproduccin total o parcial de este documento.

92 de 108

root@jmlap:~# /etc/init.d/samba restart * Stopping Samba daemons * Starting Samba daemons

[ OK ] [ OK ]

Ahora verificamos que samba pueda leer las cuentas de dominio:


root@jmlap:~# pdbedit -L root:0:root nobody:65534:nobody elconta:1000:Nombre Contador asistenteconta:1001:asistenteconta directora:1002:directora jamdvwxpp$:1003:JAMDVWXPP$ asistentefinanzas:1004:asistentefinanzas

Solo como ultima medida verificamos que los UID de samba corresponden a los devueltos por nss-ldap:
root@jmlap:~# id asistentefinanzas uid=1004(asistentefinanzas) gid=1004(finanzas) groups=1004(finanzas) root@jmlap:~# id elconta uid=1000(elconta) gid=1000(contabilidad) groups=1000(contabilidad)

Ahora unimos el equipo samba al dominio con el siguiente comando:


root@jmlap:~# net rpc join -U root Password:dominioadmin Joined domain EXAMPLE.

Podemos utilizar el mismo comando net para obtener infomacin del dominio al que nos unimos:
root@jmlap:~# net rpc info -U Administrator Password: Domain Name: EXAMPLE Domain SID: S-1-5-21-2911508632-2405292923-4115677068 Sequence number: 1232322213 Num users: 6 Num domain groups: 7 Num local groups: 0

En esta seccin veremos como configurar un sistema cliente Linux para que cuando inicie sesion en el sistema se monte automticamente un recurso compartido en red, como por ejemplo un directorio SAMBA (cifs) o NFS, y que se desmonte automticamente cuando el usuario cierra la sesin. El montaje automtico lo realizaremos con el modulo PAM pam-mount, con pam-mount es posible montar de forma automtica recursos compartidos en red cuando el usuario inicia sesin en el sistema. Para poder automontar volumens samba primero instalaremos el paquete libpam_mount y despues crearemos una configuracin para montar el volumen. Instale el paquete libpam_mount:
$ sudo apt-get install libpam_mount

Agregar al archivo de configuracin /etc/security/pam_mount.conf.xml las siguientes lineas:


<volume user="jmedina" fstype="cifs" server="truzka" path="jmedina" mountpoint="/home/jmedina/truzka" options="serverino,iocharset=utf8"/>

Configuraciones de Samba para pam_mount

Prohibida la reproduccin total o parcial de este documento.

93 de 108

Agregar a /etc/pam.d/common-session: Al final:


session optional pam_mount.so

Por ejemplo:
session session session required optional optional pam_unix.so pam_ldap.so pam_mount.so

Agregar a /etc/pam.d/common-auth:
auth optional pam_mount.so use_first_pass

Por ejemplo:
auth auth auth auth sufficient sufficient optional required pam_unix.so likeauth nullok pam_ldap.so use_first_pass pam_mount.so use_first_pass pam_deny.so

Con esto, al hacer login grfico co KDE automaticamente pasar la contrasea al modulo pam_mount y montar el volumen. podemos ver que el directorio si se haya montado.
//truzka/jmedina on /home/jmedina/truzka type cifs (rw,mand)

No es necesario crear el directorio del punto de montaje manualmente, ya que la configuracin de pam_mount crear el directorio automticamente si no existe. El parametro de configuracin para la creacin automtica de directorios de puntos de montaje es mkmountpoint y esta activada por default en el archivo de conifguracin instalado por default en Ubuntu, podemos ver un ejemplo de la configuracin de mkmountpoint en /etc/security/pam_mount.conf.xml:
<!-Create mountpoint if it does not exist yet. This is a good thing. If enabled, and a mountpoint was created by pam_mount, the mountpoint will be removed again on logout. To disable this behavior, use remove="false". --> <mkmountpoint enable="1" remove="true" />

Si no esta activado en su sistema cambie enable="0" por enable="1", note que tambin puede configurar si usted desea que el directorio del punto de montaje sea eliminado automticamente al cerrar la sesin.

Ejemplos para compartir carpetas usando ACLs: Escenario con un servidor miembro de dominio, el servidor LSFS001 ya esta integrado en el dominio y tiene una particin /finanzas chown root:finanzas /finanzas chmod 770 /finanzas Ver si usar Set GUID, o usarlo desde samba con create mode: Asignando el ACL por default

Prohibida la reproduccin total o parcial de este documento.

94 de 108

setfacl -d -m Asignando permisos de rwx a al grupo contabilidad setfacl -m Asignando permisos de r-x a la directora Asignando permisos r-x a la asistente de finanzas Quizas poner ejemplo de una subcarpeta con otros ACL o dejar que los hagan desde windows, un dueo Escenario para compartir una carpeta en el home del usuario por ejemplo /home/jmedina/Reportes_Tickets crear directorio mkdir ~/Reportes_Tickets

Un problema muy frecuente es que los usuarios no pueden hacer login en su equipo local ya que no tiene red o el servidor LDAP esta fuera de linea y por lo tanto es imposible autenticar el usuario. Existe la posibilidad de permitir el login disconnected.

Permisos en /etc/ldap? Permisos en directorio /var/lib/ldap/

OpenLDAP Software 2.4 Administrator's Guide

Tabla de contenidos El archivo de configuracin /etc/ldap/slapd.conf (Servidor slapd) El archivo de configuracin /etc/default/slapd El archivo de configuracin /etc/ldap/ldap.conf (Cliente LDAP) El archivo de configuracin /etc/smbldap-tools/smbldap_bind.conf El archivo de configuracin /etc/smbldap-tools/smbldap.conf El archivo de configuracin smb.conf El archivo de configuracin /etc/ldap.conf (NSS_LDAP y PAM_LDAP) Parrafo.

Prohibida la reproduccin total o parcial de este documento.

95 de 108

Historial de revisiones Revisin 0.70 Documento Inicial Revisin 0.80 Revisin para Ubuntu Hardy Server 8.04 Revisin 0.81 Revisin 0.82 Revisin 0.83

2007-09-12 2008-07-17 2008-08-02 2008-08-16 2009-01-12

Jorge Medina Jorge Medina Jorge Medina Jorge Medina Jorge Medina

Terminado el capitulo: Administracin de cuentas Unix y Samba va smbldap-tools Seccin de clientes de dominio windows terminada. Seccin describiendo modulos de PAMi, diagrama del DIT hecho en kivio y actualizacin caracteristicas implementacin. Revisin 0.84 2009-01-22 Jorge Medina Se agregaron los comandos para que un cliente linux se utilice LDAP y PAM para la autenticacin, y tambin se agreg la informacin para unirlo al dominio samba. Se agregaron ejemplos para utilizar las listas de control de acceso (ACLs) y dar permisos avanzados utiilizando usuarios y grupos de dominio. Se agrego un ejemplo para montaje automatico de volumens samba por medio de PAM MOUNT Revisin 0.85 2009-01-31 Jorge Medina Se agregaron las opciones para poner nombre canonico (GivenName) y Apellido (sn) el cual automticamente forma el atributo 'gecos' con ambos atributos. Se agregaron ligas a proximos capitulos sobre privilegios Se agreg informacin bsica del logon script Revisin 0.86 2009-04-09 Jorge Medina Se cambio para usar como por default el tipo de de HDB segun recomendaciones de OpenLDAP y Debian/Ubuntu Se agrego informacin para configurar los logs de LDAP usando sysklogd Se agrego informacin para configurar los logs de LDAP usando syslog-ng Revisin 0.87 2009-06-22 Jorge Medina Se organizaron las secciones Se amplio la informacion para unir un cliente linux Se agrego informacion para montaje automatico mediante pam_mount Se agrego ejemplo de carpeta compartida con ACLs Revisin 0.88 2010-02-07 Jorge Medina

Prohibida la reproduccin total o parcial de este documento.

96 de 108

Correji varios errores de en las sintaxis de comandos y configuraciones, revise el proceso de instalacion ya que habia un problema para seguir el asistente, varias mejoras en secciones de indices y acls. Correji el orden de configuracion de los logon scripts Revisin 0.89 2011-02-22 Jorge Medina Actualizacin del capitulo de instalacin openldap Cambios en el DIT para reflejar ou=Computers Actualizacin del capitulo de mantenimiento con secciones: Asignar contrasea a rootdn, Respaldar y restaurar archivos de configuracin y bases de datos OpenLDAP, Agregar nuevos indices de atributos en OpenLDAP y Ligar seccin de atributos en capitulo de instalacin. Revisin 0.90 2011-03-13 Jorge Medina Mayor informacin sobre la biblioteca NSS con cuentas locales y LDAP. Correccin de bug en tipo de cuentas samba locales y notas sobre mapeo de usuarios unix a samba. Cambios en ejemplos de respaldos de config pam y prueba de pam_cracklib con passwd(1). Actualice los ejemplos para usar un entorno de red ficticio con un dominio NT EXAMPLE, dominio DNS example.com y red 192.168.221.0/24 para que sea ms consistente con otra documentacin. Correcciones menores de sintaxis en ejemplos de lnea de comando y archivos de configuracin. Revisin 0.91 2011-03-13 Jorge Medina Agregue una introduccin de verdad donde explico los beneficios generales de la implementacin tanto para unix/linux como windows. Correcciones en los ejemplos del archivo LDIF y comandos ldapadd. Por fin agregue ejemplo para crear recurso compartido publico para clientes samba. Correcciones en los ejemplos para configurar syslog y la rotacin con sysklogd y syslog-ng. Amplie la informacin sobre las caractaristicas de la implementacin, tanto para entornos unix/linux y windows. Pequea correccion en ejemplo para agregar usuario unix. Por fin agregue un resumen generalizao. Revisin 0.92 2011-03-22 Jorge Medina Actualizacion en introduccin y requerimientos. Actualizacion de ejmplos con dominio EXAMPLE y usuario jperez. Ejemplos para permitir cambiar contrasea de dominio desde windows. Ejemplos para mapear unidad de red con home en samba. Mejora de ejmplos para compartir arcivos a usuarios y grupos del dominio. Ejemplos para configurar logon script. Revisin 0.93 2011-04-23 Jorge Medina Mas explicaciones y referencias de nss y nss_ldap, y mapeo grupos windows a unix, gracias a Angel por los comentarios. Mas explicacion de ejemplo de mapeo de grupos windows a unix y referencias de SID, gracias a Angel por los comentarios. Revisin 0.94 2011-05-11 Jorge Medina Cambios en uso de smbldap-userdel. Correcciones menores en la integracion del cliente linux ldap, quite basura. Agregue seccion de referencias al caitulo 1 Instalacin y Configuracin del servidor OpenLDAP

Versin 1.2, Noviembre 2002

Prohibida la reproduccin total o parcial de este documento.

97 de 108

Tabla de contenidos PREMBULO APLICABILIDAD Y DEFINICIONES COPIA LITERAL COPIADO EN CANTIDAD MODIFICACIONES COMBINACIN DE DOCUMENTOS COLECCIONES DE DOCUMENTOS AGREGACIN CON TRABAJOS INDEPENDIENTES TRADUCCIN TERMINACIN REVISIONES FUTURAS DE ESTA LICENCIA ADENDA: Cmo usar esta Licencia en sus documentos This is an unofficial translation of the GNU Free Documentation License into Spanish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for documentation that uses the GNU FDL -- only the original English text of the GNU FDL does that. However, we hope that this translation will help Spanish speakers understand the GNU FDL better. sta es una traduccin no oficial de la GNU Free Document License a Espaol (Castellano). No ha sido publicada por la Free Software Foundation y no establece legalmente los trminos de distribucin para trabajos que usen la GFDL (slo el texto de la versin original en Ingls de la GFDL lo hace). Sin embargo, esperamos que esta traduccin ayude los hispanohablantes a entender mejor la GFDL. La versin original de la GFDL esta disponible en la Free Software Foundation. Esta traduccin est basada en una de la versin 1.1 de Igor Tmara y Pablo Reyes. Sin embargo la responsabilidad de su interpretacin es de Joaqun Seoane. Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. Se permite la copia y distribucin de copias literales de este documento de licencia, pero no se permiten cambios[1].

El propsito de esta Licencia es permitir que un manual, libro de texto, u otro documento escrito sea libre en el sentido de libertad: asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o no. En segundo trmino, esta Licencia proporciona al autor y al editor[2] una manera de obtener reconocimiento por su trabajo, sin que se le considere responsable de las modificaciones realizadas por otros. Esta Licencia es de tipo copyleft, lo que significa que los trabajos derivados del documento deben a su vez ser libres en el mismo sentido. Complementa la Licencia Pblica General de GNU, que es una licencia tipo copyleft diseada para el software libre. Hemos diseado esta Licencia para usarla en manuales de software libre, ya que el software libre necesita documentacin libre: un programa libre debe venir con manuales que ofrezcan la mismas libertades que el software. Pero esta licencia no se limita a manuales de software; puede usarse para cualquier texto, sin tener en cuenta su temtica o si se publica como libro impreso o no. Recomendamos esta licencia principalmente para trabajos cuyo fin sea instructivo o de referencia.

Esta Licencia se aplica a cualquier manual u otro trabajo, en cualquier soporte, que contenga una nota del propietario de los derechos de autor que indique que puede ser distribuido bajo los trminos de esta Licencia. Tal nota garantiza en cualquier lugar del mundo, sin pago de derechos y sin lmite de tiempo, el uso de dicho trabajo segn las condiciones aqu estipuladas. En adelante la palabra Documento se referir a cualquiera de dichos manuales o trabajos. Cualquier persona es un licenciatario y ser referido como Usted. Usted acepta la licencia si copia. modifica o distribuye el trabajo de

Prohibida la reproduccin total o parcial de este documento.

98 de 108

cualquier modo que requiera permiso segn la ley de propiedad intelectual. Una Versin Modificada del Documento significa cualquier trabajo que contenga el Documento o una porcin del mismo, ya sea una copia literal o con modificaciones y/o traducciones a otro idioma. Una Seccin Secundaria es un apndice con ttulo o una seccin preliminar del Documento que trata exclusivamente de la relacin entre los autores o editores y el tema general del Documento (o temas relacionados) pero que no contiene nada que entre directamente en dicho tema general (por ejemplo, si el Documento es en parte un texto de matemticas, una Seccin Secundaria puede no explicar nada de matemticas). La relacin puede ser una conexin histrica con el tema o temas relacionados, o una opinin legal, comercial, filosfica, tica o poltica acerca de ellos. Las Secciones Invariantes son ciertas Secciones Secundarias cuyos ttulos son designados como Secciones Invariantes en la nota que indica que el documento es liberado bajo esta Licencia. Si una seccin no entra en la definicin de Secundaria, no puede designarse como Invariante. El documento puede no tener Secciones Invariantes. Si el Documento no identifica las Secciones Invariantes, es que no las tiene. Los Textos de Cubierta son ciertos pasajes cortos de texto que se listan como Textos de Cubierta Delantera o Textos de Cubierta Trasera en la nota que indica que el documento es liberado bajo esta Licencia. Un Texto de Cubierta Delantera puede tener como mucho 5 palabras, y uno de Cubierta Trasera puede tener hasta 25 palabras. Una copia Transparente del Documento, significa una copia para lectura en mquina, representada en un formato cuya especificacin est disponible al pblico en general, apto para que los contenidos puedan ser vistos y editados directamente con editores de texto genricos o (para imgenes compuestas por puntos) con programas genricos de manipulacin de imgenes o (para dibujos) con algn editor de dibujos ampliamente disponible, y que sea adecuado como entrada para formateadores de texto o para su traduccin automtica a formatos adecuados para formateadores de texto. Una copia hecha en un formato definido como Transparente, pero cuyo marcaje o ausencia de l haya sido diseado para impedir o dificultar modificaciones posteriores por parte de los lectores no es Transparente. Un formato de imagen no es Transparente si se usa para una cantidad de texto sustancial. Una copia que no es Transparente se denomina Opaca. Como ejemplos de formatos adecuados para copias Transparentes estn ASCII puro sin marcaje, formato de entrada de Texinfo, formato de entrada de LaTeX, SGML o XML usando una DTD disponible pblicamente, y HTML, PostScript o PDF simples, que sigan los estndares y diseados para que los modifiquen personas. Ejemplos de formatos de imagen transparentes son PNG, XCF y JPG. Los formatos Opacos incluyen formatos propietarios que pueden ser ledos y editados nicamente en procesadores de palabras propietarios, SGML o XML para los cules las DTD y/o herramientas de procesamiento no estn ampliamente disponibles, y HTML, PostScript o PDF generados por algunos procesadores de palabras slo como salida. La Portada significa, en un libro impreso, la pgina de ttulo, ms las pginas siguientes que sean necesarias para mantener legiblemente el material que esta Licencia requiere en la portada. Para trabajos en formatos que no tienen pgina de portada como tal, Portada significa el texto cercano a la aparicin ms prominente del ttulo del trabajo, precediendo el comienzo del cuerpo del texto. Una seccin Titulada XYZ significa una parte del Documento cuyo ttulo es precisamente XYZ o contiene XYZ entre parntesis, a continuacin de texto que traduce XYZ a otro idioma (aqu XYZ se refiere a nombres de seccin especficos mencionados ms abajo, como Agradecimientos, Dedicatorias , Aprobaciones o Historia. Conservar el Ttulo de tal seccin cuando se modifica el Documento significa que permanece una seccin Titulada XYZ segn esta definicin[3] . El Documento puede incluir Limitaciones de Garanta cercanas a la nota donde se declara que al Documento se le aplica esta Licencia. Se considera que estas Limitaciones de Garanta estn incluidas, por referencia, en la Licencia, pero slo en cuanto a limitaciones de garanta: cualquier otra implicacin que estas Limitaciones de Garanta puedan tener es nula y no tiene efecto en el significado de esta Licencia.

[3]

En sentido estricto esta licencia parece exigir que los ttulos sean exactamente Acknowledgements, Dedications, Endorsements e History, en ingls.

Prohibida la reproduccin total o parcial de este documento.

99 de 108

Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial o no, siempre y cuando esta Licencia, las notas de copyright y la nota que indica que esta Licencia se aplica al Documento se reproduzcan en todas las copias y que usted no aada ninguna otra condicin a las expuestas en esta Licencia. Usted no puede usar medidas tcnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, usted puede aceptar compensacin a cambio de las copias. Si distribuye un nmero suficientemente grande de copias tambin deber seguir las condiciones de la seccin 3. Usted tambin puede prestar copias, bajo las mismas condiciones establecidas anteriormente, y puede exhibir copias pblicamente.

Si publica copias impresas del Documento (o copias en soportes que tengan normalmente cubiertas impresas) que sobrepasen las 100, y la nota de licencia del Documento exige Textos de Cubierta, debe incluir las copias con cubiertas que lleven en forma clara y legible todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta delantera y Textos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a Usted clara y legiblemente como editor de tales copias. La cubierta debe mostrar el ttulo completo con todas las palabras igualmente prominentes y visibles. Adems puede aadir otro material en las cubiertas. Las copias con cambios limitados a las cubiertas, siempre que conserven el ttulo del Documento y satisfagan estas condiciones, pueden considerarse como copias literales. Si los textos requeridos para la cubierta son muy voluminosos para que ajusten legiblemente, debe colocar los primeros (tantos como sea razonable colocar) en la verdadera cubierta y situar el resto en pginas adyacentes. Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las 100, debe incluir una copia Transparente, que pueda ser leda por una mquina, con cada copia Opaca, o bien mostrar, en cada copia Opaca, una direccin de red donde cualquier usuario de la misma tenga acceso por medio de protocolos pblicos y estandarizados a una copia Transparente del Documento completa, sin material adicional. Si usted hace uso de la ltima opcin, deber tomar las medidas necesarias, cuando comience la distribucin de las copias Opacas en cantidad, para asegurar que esta copia Transparente permanecer accesible en el sitio establecido por lo menos un ao despus de la ltima vez que distribuya una copia Opaca de esa edicin al pblico (directamente o a travs de sus agentes o distribuidores). Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento antes de redistribuir gran nmero de copias, para darles la oportunidad de que le proporcionen una versin actualizada del Documento.

Puede copiar y distribuir una Versin Modificada del Documento bajo las condiciones de las secciones 2 y 3 anteriores, siempre que usted libere la Versin Modificada bajo esta misma Licencia, con la Versin Modificada haciendo el rol del Documento, por lo tanto dando licencia de distribucin y modificacin de la Versin Modificada a quienquiera posea una copia de la misma. Adems, debe hacer lo siguiente en la Versin Modificada: A. Usar en la Portada (y en las cubiertas, si hay alguna) un ttulo distinto al del Documento y de sus versiones anteriores (que deberan, si hay alguna, estar listadas en la seccin de Historia del Documento). Puede usar el mismo ttulo de versiones anteriores al original siempre y cuando quien las public originalmente otorgue permiso. B. Listar en la Portada, como autores, una o ms personas o entidades responsables de la autora de las modificaciones de la Versin Modificada, junto con por lo menos cinco de los autores principales del Documento (todos sus autores principales, si hay menos de cinco), a menos que le eximan de tal requisito. C. Mostrar en la Portada como editor el nombre del editor de la Versin Modificada. D. Conservar todas las notas de copyright del Documento. E. Aadir una nota de copyright apropiada a sus modificaciones, adyacente a las otras notas de copyright. F. Incluir, inmediatamente despus de las notas de copyright, una nota de licencia dando el permiso para usar la Versin Modificada bajo los trminos de esta Licencia, como se muestra en la Adenda al final de este documento. G. Conservar en esa nota de licencia el listado completo de las Secciones Invariantes y de los Textos de Cubierta

Prohibida la reproduccin total o parcial de este documento.

100 de 108

que sean requeridos en la nota de Licencia del Documento original. H. Incluir una copia sin modificacin de esta Licencia. I. Conservar la seccin Titulada Historia, conservar su Ttulo y aadirle un elemento que declare al menos el ttulo, el ao, los nuevos autores y el editor de la Versin Modificada, tal como figuran en la Portada. Si no hay una seccin Titulada Historia en el Documento, crear una estableciendo el ttulo, el ao, los autores y el editor del Documento, tal como figuran en su Portada, aadiendo adems un elemento describiendo la Versin Modificada, como se estableci en la oracin anterior. J. Conservar la direccin en red, si la hay, dada en el Documento para el acceso pblico a una copia Transparente del mismo, as como las otras direcciones de red dadas en el Documento para versiones anteriores en las que estuviese basado. Pueden ubicarse en la seccin Historia. Se puede omitir la ubicacin en red de un trabajo que haya sido publicado por lo menos cuatro aos antes que el Documento mismo, o si el editor original de dicha versin da permiso. K. En cualquier seccin Titulada Agradecimientos o Dedicatorias, Conservar el Ttulo de la seccin y conservar en ella toda la sustancia y el tono de los agradecimientos y/o dedicatorias incluidas por cada contribuyente. L. Conservar todas las Secciones Invariantes del Documento, sin alterar su texto ni sus ttulos. Nmeros de seccin o el equivalente no son considerados parte de los ttulos de la seccin. M. Borrar cualquier seccin titulada Aprobaciones. Tales secciones no pueden estar incluidas en las Versiones Modificadas. N. No cambiar el ttulo de ninguna seccin existente a Aprobaciones ni a uno que entre en conflicto con el de alguna Seccin Invariante. O. Conservar todas las Limitaciones de Garanta. Si la Versin Modificada incluye secciones o apndices nuevos que califiquen como Secciones Secundarias y contienen material no copiado del Documento, puede opcionalmente designar algunas o todas esas secciones como invariantes. Para hacerlo, aada sus ttulos a la lista de Secciones Invariantes en la nota de licencia de la Versin Modificada. Tales ttulos deben ser distintos de cualquier otro ttulo de seccin. Puede aadir una seccin titulada Aprobaciones, siempre que contenga nicamente aprobaciones de su Versin Modificada por otras fuentes --por ejemplo, observaciones de peritos o que el texto ha sido aprobado por una organizacin como la definicin oficial de un estndar. Puede aadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un pasaje de hasta 25 palabras como Texto de Cubierta Trasera en la Versin Modificada. Una entidad solo puede aadir (o hacer que se aada) un pasaje al Texto de Cubierta Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas aadidos previamente por usted o por la misma entidad que usted representa, usted no puede aadir otro; pero puede reemplazar el anterior, con permiso explcito del editor que agreg el texto anterior. Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar sus nombres para publicidad ni para asegurar o implicar aprobacin de cualquier Versin Modificada.

Usted puede combinar el Documento con otros documentos liberados bajo esta Licencia, bajo los trminos definidos en la seccin 4 anterior para versiones modificadas, siempre que incluya en la combinacin todas las Secciones Invariantes de todos los documentos originales, sin modificar, listadas todas como Secciones Invariantes del trabajo combinado en su nota de licencia. As mismo debe incluir la Limitacin de Garanta. El trabajo combinado necesita contener solamente una copia de esta Licencia, y puede reemplazar varias Secciones Invariantes idnticas por una sola copia. Si hay varias Secciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el ttulo de cada una de estas secciones nico aadindole al final del mismo, entre parntesis, el nombre del autor o editor original de esa seccin, si es conocido, o si no, un nmero nico. Haga el mismo ajuste a los ttulos de seccin en la lista de Secciones Invariantes de la nota de licencia del trabajo combinado. En la combinacin, debe combinar cualquier seccin Titulada Historia de los documentos originales, formando una seccin Titulada Historia; de la misma forma combine cualquier seccin Titulada Agradecimientos, y cualquier seccin Titulada Dedicatorias. Debe borrar todas las secciones tituladas Aprobaciones.

Prohibida la reproduccin total o parcial de este documento.

101 de 108

Puede hacer una coleccin que conste del Documento y de otros documentos liberados bajo esta Licencia, y reemplazar las copias individuales de esta Licencia en todos los documentos por una sola copia que est incluida en la coleccin, siempre que siga las reglas de esta Licencia para cada copia literal de cada uno de los documentos en cualquiera de los dems aspectos. Puede extraer un solo documento de una de tales colecciones y distribuirlo individualmente bajo esta Licencia, siempre que inserte una copia de esta Licencia en el documento extrado, y siga esta Licencia en todos los dems aspectos relativos a la copia literal de dicho documento.

Una recopilacin que conste del Documento o sus derivados y de otros documentos o trabajos separados e independientes, en cualquier soporte de almacenamiento o distribucin, se denomina un agregado si el copyright resultante de la compilacin no se usa para limitar los derechos de los usuarios de la misma ms all de lo que los de los trabajos individuales permiten. Cuando el Documento se incluye en un agregado, esta Licencia no se aplica a otros trabajos del agregado que no sean en s mismos derivados del Documento. Si el requisito de la seccin 3 sobre el Texto de Cubierta es aplicable a estas copias del Documento y el Documento es menor que la mitad del agregado entero, los Textos de Cubierta del Documento pueden colocarse en cubiertas que enmarquen solamente el Documento dentro del agregado, o el equivalente electrnico de las cubiertas si el documento est en forma electrnica. En caso contrario deben aparecer en cubiertas impresas enmarcando todo el agregado.

La Traduccin es considerada como un tipo de modificacin, por lo que usted puede distribuir traducciones del Documento bajo los trminos de la seccin 4. El reemplazo las Secciones Invariantes con traducciones requiere permiso especial de los dueos de derecho de autor, pero usted puede aadir traducciones de algunas o todas las Secciones Invariantes a las versiones originales de las mismas. Puede incluir una traduccin de esta Licencia, de todas las notas de licencia del documento, as como de las Limitaciones de Garanta, siempre que incluya tambin la versin en Ingls de esta Licencia y las versiones originales de las notas de licencia y Limitaciones de Garanta. En caso de desacuerdo entre la traduccin y la versin original en Ingls de esta Licencia, la nota de licencia o la limitacin de garanta, la versin original en Ingls prevalecer. Si una seccin del Documento est Titulada Agradecimientos, Dedicatorias o Historia el requisito (seccin 4) de Conservar su Ttulo (Seccin 1) requerir, tpicamente, cambiar su ttulo.

Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo permitido expresamente por esta Licencia. Cualquier otro intento de copia, modificacin, sublicenciamiento o distribucin del Documento es nulo, y dar por terminados automticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan recibido copias, o derechos, de usted bajo esta Licencia no vern terminadas sus licencias, siempre que permanezcan en total conformidad con ella.

De vez en cuando la Free Software Foundation puede publicar versiones nuevas y revisadas de la Licencia de Documentacin Libre GNU. Tales versiones nuevas sern similares en espritu a la presente versin, pero pueden diferir en detalles para solucionar nuevos problemas o intereses. Vea http://www.gnu.org/copyleft/. Cada versin de la Licencia tiene un nmero de versin que la distingue. Si el Documento especifica que se aplica una versin numerada en particular de esta licencia o cualquier versin posterior, usted tiene la opcin de seguir los trminos

Prohibida la reproduccin total o parcial de este documento.

102 de 108

y condiciones de la versin especificada o cualquiera posterior que haya sido publicada (no como borrador) por la Free Software Foundation. Si el Documento no especifica un nmero de versin de esta Licencia, puede escoger cualquier versin que haya sido publicada (no como borrador) por la Free Software Foundation.

Para usar esta licencia en un documento que usted haya escrito, incluya una copia de la Licencia en el documento y ponga el siguiente copyright y nota de licencia justo despus de la pgina de ttulo: Copyright (c) AO SU NOMBRE. Se concede permiso para copiar, distribuir y/o modificar este documento bajo los trminos de la Licencia de Documentacin Libre de GNU, Versin 1.2 o cualquier otra versin posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia est incluida en la seccin titulada GNU Free Documentation License. Si tiene Secciones Invariantes, Textos de Cubierta Delantera y Textos de Cubierta Trasera, reemplace la frase sin ... Trasera por esto: siendo las Secciones Invariantes LISTE SUS TTULOS, siendo los Textos de Cubierta Delantera LISTAR, y siendo sus Textos de Cubierta Trasera LISTAR. Si tiene Secciones Invariantes sin Textos de Cubierta o cualquier otra combinacin de los tres, mezcle ambas alternativas para adaptarse a la situacin. Si su documento contiene ejemplos de cdigo de programa no triviales, recomendamos liberar estos ejemplos en paralelo bajo la licencia de software libre que usted elija, como la Licencia Pblica General de GNU (GNU General Public License), para permitir su uso en software libre.

[1] [2]

sta es la traduccin del Copyright de la Licencia, no es el Copyright de esta traduccin no autorizada.

La licencia original dice publisher, que es, estrictamente, quien publica, diferente de editor, que es ms bien quien prepara un texto para publicar. En castellano editor se usa para ambas cosas.

Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or

Prohibida la reproduccin total o parcial de este documento.

103 de 108

reference.

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards

Prohibida la reproduccin total o parcial de este documento.

104 de 108

disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machinereadable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified

Prohibida la reproduccin total o parcial de este documento.

105 de 108

Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

Prohibida la reproduccin total o parcial de este documento.

106 de 108

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

Prohibida la reproduccin total o parcial de este documento.

107 de 108

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Prohibida la reproduccin total o parcial de este documento.

108 de 108