configurar un servidor controlador de dominio con samba y openldap en ubuntu server hardy 8

108
Jorge Armando Medina Computación Gráfica de México. Documentación Técnica < [email protected]> Alejandro Gabriel Sánchez Martínez Computación Gráfica de México. Documentación Técnica < [email protected]> Copyright © 2009, 2010, 2011 Jorge Armando Medina, Alejandro Sánchez Martínez Se otorga permiso para copiar, distribuir y/o modificar éste documento bajo los términos de la Licencia de Documentación Libre GNU GFDL, Versión 1.2 o cualquier otra posterior publicada por la Fundación 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 traducción libre no oficial al español de la licencia GFDL y referencias de como utilizarla en sus proyectos, si por alguna razón se tuviera que utilizar por cuestiones legales la licencia GFDL la unica valida es la versión en inlges de ella. 2011/08/31 Resumen Este libro decribre la implementación 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 también para cuentas de usuario, grupos, y computadoras de confianza para sistemas Windows. En la implementación 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 integración de clientes Unix/Linux y Windows al dominio y algunas tareas operativas sobre los miembros del dominio. Tabla de contenidos 1. Introducción 2. Caracteristicas de la Implementación Caracteristicas Generales Caracteristicas para Entornos Unix/Linux Caracteristicas para Entornos Windows Estructura del Arbol de Directorio (DIT) 3. Requerimientos de Software Prohibida la reproducción total o parcial de este documento. 1 de 108

Upload: adali-hurtado

Post on 08-Aug-2015

262 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Jorge Armando Medina

Computación Gráfica de México.Documentación Técnica

<[email protected]>

Alejandro Gabriel Sánchez Martínez

Computación Gráfica de México.Documentación Técnica

<[email protected]>

Copyright © 2009, 2010, 2011 Jorge Armando Medina, Alejandro Sánchez Martínez

Se otorga permiso para copiar, distribuir y/o modificar éste documento bajo los términos de la Licencia de DocumentaciónLibre GNU GFDL, Versión 1.2 o cualquier otra posterior publicada por la Fundación de Software Libre; sin seccionesinvariantes, sin textos en portada y contraportada. Una copia de la licencia en ingles la puede encontrar en los apendicesal final del ibro, tambien una traducción libre no oficial al español de la licencia GFDL y referencias de como utilizarla ensus proyectos, si por alguna razón se tuviera que utilizar por cuestiones legales la licencia GFDL la unica valida es laversión en inlges de ella.

2011/08/31

Resumen

Este libro decribre la implementación de un servidor Controlador de Dominio con Samba y OpenLDAP en Ubuntu Server8.04, el controlador de dominio servirá para administrar de forma centralizada las cuentas de usuario y grupo parasistemas Unix y GNU/Linux y también para cuentas de usuario, grupos, y computadoras de confianza para sistemasWindows. En la implementación se describe un entorno hetereogeneo conformado por servidores GNU/Linux y clientesmixtos GNU/LInux y Windows. Se ven los procedimientos para administrar las cuentas de usuario y grupos Unix/Linux yWindows, así como la integración de clientes Unix/Linux y Windows al dominio y algunas tareas operativas sobre losmiembros del dominio.

Tabla de contenidos

1. Introducción2. Caracteristicas de la Implementación

Caracteristicas GeneralesCaracteristicas para Entornos Unix/LinuxCaracteristicas para Entornos WindowsEstructura del Arbol de Directorio (DIT)

3. Requerimientos de Software

Prohibida la reproducción total o parcial de este documento. 1 de 108

Page 2: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

4. Instalación y Configuración del servidor OpenLDAPObjetivosInstalación y Configuración del servidor OpenLDAPConfiguración Inicial del servicio slapdAgregando los esquemas (schemas) necesariosConfigurando las Listas de Control de Acceso (ACLs)Configurando los Indices de atributos más usadosConfiguración de los Registros de Eventos (logs) del servidor Slapd

Configuracion de los logs en OpenLDAPConfiguraciones para sysklogdConfiguraciones para syslog-ng

Configuración de los limites de consulta y conexiónRevisión de permisos en archivos y directorios de ConfiguraciónEjecutando una revisión sintactica del archivo de configuración slapd.confIniciando el servidor slapd y haciendo Pruebas PreliminaresControlando el servicio SlapdRecursos adicionales

Sitios webPaginas de manual

5. Configuración del Cliente LDAP6. Configuración de Samba y las herramientas smbldap-tools

ObjetivosInstalación y configuración del servidor Samba

Instalando el servidor y cliente SambaConfiguraciónes de Samba para Controlador de Dominio

Parametros Globales del servidor SambaConfiguraciónes del registro de eventos (logs) del servidor SambaConfiguraciones de Red para el servidor SambaConfigurando los Parametros para Controlador de DominioParametros para interacción con el servidor LDAPConfiguraciones de Codificación y Charset

El recurso compartido especial [homes]El recurso compartido especial [netlogon]El recurso compartido especial [profiles]El recurso compartido publicoRealizando una Revisión Sintactica del archivo de configuración smb.confEspecificando la contraseña del ldap admin dn

Instalación y Configuración de las smbldap-toolsLlenando el Directorio LDAP con smbldap-populateVerificando la instalación y configuración de Samba y LDAP

Probando Samba con Cuentas en el Directorio LDAPVerificando el mapeo del grupos unix a grupos SambaProbando conexiones al servidor Samba usando cuentas en LDAP

7. Configuración de la resolución de Identidades con NSS_LDAP8. Configuración de la Autenticación con PAM_LDAP

Introducción a los Modulos de Autenticación PAMRespaldando la configuración de PAMConfigurando los modulos de autenticación PAM con LDAP

Configuración del modulo authConfiguración del modulo accountConfiguración del modulo sessionConfiguración del modulo passwordInstalando el modulo Cracklib de PAM

Probando la autenticación de usuarios de sistema vía PAM_LDAP9. Migración de usuarios y grupos Unix/Posix al directorio LDAP

Migración de Usuarios (/etc/passwd y /etc/shadow)Migración de Grupos (/etc/group)

Prohibida la reproducción total o parcial de este documento. 2 de 108

Page 3: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

10. Administración de cuentas Unix y Samba vía smbldap-toolsIntroducciónAtributos predefinidos para la creación de usuariosCreación de cuentas de usuarioEliminación de cuentas de usuariosCambiando la contraseña de un usuarioModificación de cuentas de usuarioAdministración de Grupos de Sistema y Grupos Samba

Agregando GruposEliminando GruposAgregando usuarios a GruposEliminando Usuarios de Grupos

11. Tareas de Mantenimiento de OpenLDAP y SambaCambiar o asignar contraseña al Root DN de OpenLDAPAgregar nuevos indices de atributos en OpenLDAPRespaldar los archivos de configuración de OpenLDAPRespaldar y Restaurar una base de datos de OpenLDAPRespaldando archivos importante de SambaRespaldando el SID del Dominio Samba

12. Integrando Clientes Windows al Dominio SambaRequerimientos del sistemaConfiguración de los parámetros de red en el equipo Windows

Información necesaria para configurar los parámetros de redConfigurando correctamente los parámetros de redVerificación de los Parámetros de Red

Configuración del nombre de equipo WindowsUniendo el equipo Windows al Dominio SambaComo Iniciar Sesión el Dominio SambaComo permitir que un usuario cambie la contraseña de dominioComo mapear una unidad de disco en red al directorio home en el servidorComo compartir archivos en la red a usuarios y grupos de dominioComo habilitar el uso de scripts de inicio de sesión en un dominio Samba

13. Integrando Clientes Linux/Unix al Dominio SambaInformación preliminar del equipo cliente LinuxInstalando el software necesario para unir cliente Linux a Dominio LDAPConfigurando la resolución de cuentas de usuario y grupos mediante LDAP en clientes LinuxConfigurando la Autorización de cuentas de usuario y grupos mediante LDAP en clientes Linux con PAM

Configuración del modulo authConfiguración del modulo accountConfiguración del modulo sessionConfiguración del modulo passwordProbando la autorización mediante PAM LDAP en cliente Linux

Configurando resolución de cuentas de dominio mediante SambaAutenticación de usuarios y grupos de dominio Samba en clientes LinuxMontaje automático de carpetas compartidas mediante pam_mountCarpetas compartidas con ACL a usuarios y grupos de dominioAutenticando cuentas de usuario de dominio de forma desconectada

14. Resolución de Problemas15. Referencias adicionales16. Apendices

El archivo de configuración /etc/ldap/slapd.conf (Servidor slapd)El archivo de configuración /etc/default/slapdEl archivo de configuración /etc/ldap/ldap.conf (Cliente LDAP)El archivo de configuración /etc/smbldap-tools/smbldap_bind.confEl archivo de configuración /etc/smbldap-tools/smbldap.confEl archivo de configuración smb.confEl archivo de configuración /etc/ldap.conf (NSS_LDAP y PAM_LDAP)

Prohibida la reproducción total o parcial de este documento. 3 de 108

Page 4: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

A. Historial de RevisionesB. Licencia de Documentación Libre de GNU

PREÁMBULOAPLICABILIDAD Y DEFINICIONESCOPIA LITERALCOPIADO EN CANTIDADMODIFICACIONESCOMBINACIÓN DE DOCUMENTOSCOLECCIONES DE DOCUMENTOSAGREGACIÓN CON TRABAJOS INDEPENDIENTESTRADUCCIÓNTERMINACIÓNREVISIONES FUTURAS DE ESTA LICENCIAADENDA: Cómo usar esta Licencia en sus documentos

C. GNU Free Documentation License

Lista de figuras

2.1. Mapa de red Example2.2. Diagrama DIT12.1. Propiedades de Protocolo Internet (TCP/IP) General12.2. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS12.3. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS - Agregar12.4. Viendo los detalles de la conexión de red12.5. Propiedades del sistema, Nombre de Equipo12.6. Propiedades del sistema, Cambios en el nombre de equipo12.7. Usando el Asistente de Identificación de red12.8. Asistente de identificación de red, paso 112.9. Asistente de identificación de red, paso 212.10. Asistente de identificación de red, paso 312.11. Asistente de identificación de red, paso 412.12. Asistente de identificación de red, paso 512.13. Asistente de identificación de red, paso 612.14. Asistente de identificación de red, paso 712.15. Asistente de identificación de red, paso 812.16. Asistente de identificación de red, paso 912.17. Asistente de identificación de red, Ultimo Paso12.18. Asistente de identificación de red, Re iniciar el equipo12.19. Asistente de identificación de red, Alerta de re iniciar el equipo12.20. Inicio de sesión de Windows - Pantalla inicial12.21. Inicio de sesión de Windows - Pantalla predeterminada de login12.22. Inicio de sesión de Windows - Pantalla con opciones activa12.23. Inicio de sesión - Menú inicio12.24. Mapeo de $HOME en Servidor al unidad H: Local12.25. Listado Carpeta a compartir12.26. Parametros de carpeta compartida12.27. Permisos de carpeta compartida12.28. Seleccionar Usuarios o Grupos12.29. Permisos por usuario y gruipo12.30. Permisos para grupo EXAMPLE\contabilidad12.31. Permisos para EXAMPLE\efuentes

Lista de tablas

4.1. Niveles severidad logs slapd10.1. Tabla de opciones disponibles para el comando smbldap-useradd10.2. Tabla de opciones disponibles para el comando smbldap-userdel

Prohibida la reproducción total o parcial de este documento. 4 de 108

Page 5: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

10.3. Tabla de opciones disponibles para el comando smbldap-usermod10.4. Tabla de opciones disponibles para el comando smbldap-userinfo10.5. Tabla de opciones disponibles para el comando smbldap-groupadd11.1. Directorios de configuración a respaldar

En este documento se describe la implementación de un servidor controlador de dominio con Samba y OpenLDAP en unsistema GNU/LInux con la distribución Ubuntu Server 8.04 LTS, la función principal del controlador de dominio escentralizar la administración del acceso a los recursos de red de una empresa, esto en la mayoría de casos se lleva a cabomediante 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 sesión local (Autenticación/Autorización) a sistemas GNU/Linux y Windows con controles deacceso basado en cuentas de usuarios y grupos centralizados en el servidor controlador de dominio.

Centralizar la administración de cuentas de usuario y grupos Unix/Linux, Windows y otras aplicaciones con soporteLDAP.

Centralizar la autenticación y los controles de acceso por usuarios y grupos para recursos compartidos en clientes oservidores GNU/Linux y/o Windows.

Además la implementación aquí descrita puede servir como la base para una implementación mayor en donde se delega laadministración de los controles de acceso a algunos otros servicios de red, ofreciendo servicios deautenticación/autorización 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 mensajería instantánea basados en Jabber como: jabberd ú Openfire.

Aplicaciones Web como sistemas manejadores de contenido (CMS) con soporte de autenticación vía LDAP como:mediawiki, drupal, ezpublish, moodle entre otros.

Nota

En este documento no se describen los procedimientos para integrar la autenticación de los serviciosantes mencionados.

En las siguientes secciones se describen más a detalle las caracteristicas de la implementación, se separán por sistemaoperativo.

Tabla de contenidos

Prohibida la reproducción total o parcial de este documento. 5 de 108

Page 6: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Caracteristicas GeneralesCaracteristicas para Entornos Unix/LinuxCaracteristicas para Entornos WindowsEstructura del Arbol de Directorio (DIT)

En este capitulo se describen las caracterisitcas principales de la implementación del servidor controlador de dominio parala administración centralizada de cuentas de usuarios y grupos para entornos hetereogeneos con sistemas Unix oGNU/Linux y Windows y otras aplicaciones con soporte LDAP.

La implementación aquí descrita es para una red de computadoras ficticia de una empresa de tamañao pequeño/mediano.La instalación del servidor controlador de dominio se realiza en la distribución Ubuntu Server 8.04 LTS amd64, el servidorsolo tiene una interfaz de red conectado al switch de la red local.

La Información de la red de la empresa EXAMPLE S.A. de C.V se describe a continuación:

Dominio Samba/NT: EXAMPLE.

Dominio DNS: example.com.

Nombre NetBIOS del servidor PDC: PDC.

Nombre DNS FQDN: pdc.example.com.

Dirección IP de red para el dominio EXAMPLE : 192.168.221.0/24.

Dirección IP del servidor PDC: 192.168.221.3.

Dirección IP del gateway para la red LAN: 192.168.221.254.

Dirección IP del servidor DNS primario: 192.168.221.253.

Dirección IP del servidor DNS secundario: 192.168.221.254.

Dirección IP del servidor WINS: 192.168.221.3.

Es escencial tener a la mano la información de nuestra implementación ya que será utilizada en capitulos/seccionesposteriores. En el siguiente diagrama se describe la red:

Figura 2.1. Mapa de red Example

Prohibida la reproducción total o parcial de este documento. 6 de 108

Page 7: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Como podemos ver en el diagrama anterior, la red ficticia de la empresa EXAMPLE usa un esquema clasico, una redlocal 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 implementación especificas para los diferentes entornos.

En esta sección se describen las funcionalidades que podremos obtener al implementar un servidor Centralizado deAutenticación para redes Unix o GNU/Linux.

Para entornos basados en sistemas Unix como GNU/Linux tendremos las siguientes funcionalidades:

Servidor de Autenticación Centralizada, la base de datos de usuarios, contraseñas y grupos estará almacenada en undirectorio LDAP remoto lo cual permite centralizar y simplificar la administración de cuentas de que normalmenteesta almacenada en los archivos /etc/passwd, /etc/shadow y /etc/group en redes con sistemas Unix oGNU/Linux.

Este tipo de implementación permite reemplazar dominios NIS para antenticación centralizada tanto para sistemasUnix y Linux.

En los equpos clientes no se crearan cuentas locales, ya que estan en el servidor LDAP, la resolución de nombres deusuarios (UID->Usernames), grupos (GID->Grupos) será manejada por las herramientas NSS_LDAP, NSS_LDAPbuscará los usuarios y grupos en el servidor LDAP central.

Prohibida la reproducción total o parcial de este documento. 7 de 108

Page 8: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

La autorización a los diferentes servicios locales (login, KDM, su, sudo, ssh, samba, cron, cups) será manejada porlos modulos de autenticación PAM_LDAP, mediante estos modulos PAM decidirá si se autoriza el acceso alusuario de acuerdo a sus credenciales, si son validas se le autoriza el servicio, si no, entonces se deniega el servicio.

La pertenencía a grupos para manejar los permisos y accesos se hará centralizado en el servidor LDAP. MediantePAM se podrá otorgar privilegios a algunos servicios de acuerdo al grupo que pertenece el usuario, estos permisosse 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, Mensajería Instantanea, etc.

Soporte para netgroups de NIS, mediante netgroups usted podrá crear diferentes restricciones de acceso sobre losequipos, basados en dirección IP, usuario, grupo.

Facíl integración con servicios de compartición de archivos como NFS y/o Samba para centralizar elamacenamiento 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 tendrán que tenercuentas repetidas en varios servidores, esto conlleva a una administración centralizada.

Soporte para replicación de la base de datos de usuarios mediante replicación LDAP, se pueden poner más de unservidor esclavo en la red para balancear las cargas y tener alta disponibilidad.

Además del soporte para centralizar la administración de cuentas de usuarios y grupos en un directorio LDAP comoOpenLDAP y el soporte de autenticación/autorización de NSS_LDAP y PAM_LDAP y administraciión de permisos deacceso a recursos de red para entornos Unix/Linux, es posible agregar soporte para cuentas de usuarios y grupos de redesWindows, en especifico cuentas de dominio tipo NT4. Esta integración permitirá acceder a los recursos de la red desdesitemas con diferentes sistemas operativos.

En esta sección describiremos que funcionalidades obtendremos al configurar un servidor Samba como Controlador deDominio para Redes MS Windows. La mayoría de las funcionalidades descritas a continuación solo podrán serimplementadas 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 característica permite controlar los permisos que el usuario tiene sobre un equipo Windows, entre lascaracterísitcas principales se encuentran:

Permite/restringe que los usuarios de Dominio puedan cambiar las configuraciones del Escritorio deWindows.

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 estación de trabajo.

Prohibida la reproducción total o parcial de este documento. 8 de 108

Page 9: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Nota

Este tipo de políticas pueden ser aplicadas de forma global, (para todos los usuarios deldominio) por usuario ó por grupo de Domino.

Soporte para ejecución de scripts de inicio de sesión (Logon Scripts)

Esta característica permite que cada que vez que un usuario inicie sesión en el Dominio pueda ejecutar un scripts deinicio (.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.

Restricción 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 Ingés) parapermitir ó no el acceso a ciertas carpetas compartidas en red, esta restricción se puede aplicar por usuario opor grupo, así, por ejemplo, solo los usuarios del grupo Contabilidad y la directora podrán entrar a la carpetacompartida "contabilidad" y podrán: crear, modificar, borrar archivos o directorios dentro de dicha carpetacompartida.

Además se pueden tener permisos más granulares en cuanto a los accesos de los archivos y directorios dentrode las carpetas compartidas, por medio de ACLs.

Soporte para Perfiles Móviles (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 usuariode dominio inicia sesión en un equpo podrá tener sincronizado su perfil disponible en cualquier equpo en el queinicie sesión.

Soporte para tener más de un servidor Controlador de Dominio de Respaldo (BDC) por lo obtendrá replicación dela SAM y alta disponibilidad. En caso de que el servidor PDC no este disponible el servidor BDC se encargará delas tareas de autenticación y compartición de archivos.

Antes de continuar es importante recordar que la información de cuentas de usuario y grupos tanto para cuentasUnix/Linux o Windows se almacenarán en un directorio LDAP en una estructura de arbol especifica, en la siguientesección 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 Información del Directorio.

El DIT en un servidor LDAP normalmente se esquematiza utilizando la estrucura de Arbol, donde las ramas del arbolpueden ser contenedores de información, en done puede contener otras entradas o más ramas/contenedores, por ejemplouna rama para almacenar cuentas de usuario, otra rama para almacenar grupos, etc. Cada entrada en el arbol posee unidentificador único llamado Distinguished Name o DN.

Prohibida la reproducción total o parcial de este documento. 9 de 108

Page 10: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

El primer paso para diseñar el DIT es definir el Base DN, el Base DN es el nivel más alto en el arbol de directorio, esdecir, la base o raíz del directorio.

En nuestro caso el Base DN será definido utilizando los llamados DC ó Domain Components, similar a la estrucura delSistema 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: Raíz 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 sistemasWindows

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 computadorasya que hay una diferencia entre hosts TCP/IP y cuentas de computadoras Microsoft Windows. Usamos el contenedorou=DSA para almacenar cuentas de seguridad especificas para clientes LDAP).

No es obligatorio utilzar este DIT para tu propia implementación, más sin embargo, se recomienda seguir estasrecomendaciones para la configuración inicial, en instalaciones posteriores podrás adaptar el DIT y las configuraciones atu gusto.

Para más información acerca del diseño del DIT ver el documento Diseñando un árbol de Directorio LDAP.

La implementación de este documento será hecha en la distribución Ubuntu Server Hardy 8.04, la mayoría de los pasospodrán implementarse en Ubuntu Gutsy, a excepción de las configuraciónes de NSS_LDAP y PAM_LDAP ya que enHardy se consolido el archivo de configuración de ambos.

Instalaremos el siguiente software:

OpenLDAP 2.4.9-0ubuntu0.8.04.1

OpenLDAP es una implementación libre de los protocolos LDAP.

Samba 3.0.28a-1ubuntu4.7

Prohibida la reproducción total o parcial de este documento. 10 de 108

Page 11: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Samba es la implementación libre de los protocolos SMB/CIFS el cual funcionará como servidor Controlador deDominio usando como base de información un directorio LDAP, además servirá como servidor de impresoras yarchivos.

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 resolución de entidades, servirán para resolver nombres de usuarios a UID y viceversa,así como nombres de grupos a GID y viceversa usando como fuente de información el directorio LDAP.

libpam-ldap 184-2ubuntu2

PAM son los modulos de autenticación/autorización para otorgar permisos de acceso a diferentes servicios locales(login, KDM, su, sudo, ssh, samba, cron, cups, etc.) usando como fuente de información el servidor LDAP.

Es importante notar que todo el software usado es libre, todos en su mayoría con licencias GPL.

Tabla de contenidos

ObjetivosInstalación y Configuración del servidor OpenLDAPConfiguración Inicial del servicio slapdAgregando los esquemas (schemas) necesariosConfigurando las Listas de Control de Acceso (ACLs)Configurando los Indices de atributos más usadosConfiguración de los Registros de Eventos (logs) del servidor Slapd

Configuracion de los logs en OpenLDAPConfiguraciones para sysklogdConfiguraciones para syslog-ng

Configuración de los limites de consulta y conexiónRevisión de permisos en archivos y directorios de ConfiguraciónEjecutando una revisión sintactica del archivo de configuración slapd.confIniciando el servidor slapd y haciendo Pruebas PreliminaresControlando el servicio SlapdRecursos adicionales

Sitios webPaginas de manual

En este capitulo veremos como instalar y configurar el servidor OpenLDAP y las herramientas de configuración yadministración cliente en el servidor Ubuntu.

La instalación se realizará usando apt-get con los depositos de software predeterminados, la configuración se realizausando el asistente post-instalación del paquete slapd y de forma manual editando los archivos de configuración.

En esta sección instalaremos y configuraremos un servidor OpenLDAP junto con las herramientas de administración ycliente. La instalación inicial la realizaremos con el asistente de instalación de APT.

Prohibida la reproducción total o parcial de este documento. 11 de 108

Page 12: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 configuración del servicio slapd, ser verá como en lasiguiente pantalla:

Aunque despues vamos a reconifgurar el servidor OpenLDAP (slapd), ingresaremos una contraseña para el usuarioadministrador del servidor LDAP:

Administrator passwd: ldapadmin

Confirm passwd: ldapadmin

El asistente post instalación automáticamente nos configurará un directorio usando el Base DN en base al nombre dedominio que tenga configurado nuestro servidor.

Se recomienda reconfigurar el paquete slapd para una configuración más personalizada, para reconfigurar el paquete slapdusamos el comando:

Prohibida la reproducción total o parcial de este documento. 12 de 108

Page 13: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 desdecero.

La primer pantalla nos pregunta si queremos omitir la configuración inicial del servidor slapd, contestaremos: NO

Despues, nos pregunta el nombre de dominio con el que queremos configurar nuestro arbol de directorio, este nombre dedominio será configurado con la base de nuestro directorio (Base DN) o la base de busqueda de nuestro directorio (SearchBase).

Si ingresamos el nombre de dominio example.com entonces en formato Domain Component (DC por sus siglas en Inglés)nos pondrá nuestra base así: dc=example,dc=com.

Prohibida la reproducción total o parcial de este documento. 13 de 108

Page 14: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

A continuación nos pregunta el nombre de la organización para la que configuraremos el directorio LDAP. Ingresaremos:example

Prohibida la reproducción total o parcial de este documento. 14 de 108

Page 15: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Despues de configurar el nombre de dominio y la organización nos pide ingresar una contraseña para el usuarioAdministrador del directorio LDAP, en este caso el Distinguished Name (DN por sus siglas en Inglés) de la cuenta será:cn=admin,dc=example,dc=com, usaremos la contraseña: ldapadmin

Prohibida la reproducción total o parcial de este documento. 15 de 108

Page 16: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Prohibida la reproducción total o parcial de este documento. 16 de 108

Page 17: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

En este paso seleccionaremos el tipo de base de datos (data store) en el que almacenaremos la información de nuestrodirectorio, utilizaremos el tipo HDB la cual es la opción recomendada por Ubuntu y por el equipo de desarrollo deOpenLDAP, anteriormente se recomendaba el tipo BDB pero se han encontrado razones por las cuales no se recomiendaBDB y esas mismas razones son las que han convencido de considerar como pastura el BDB Data Store para OpenLDAP,podemos encontrar la referencía sobre los problemas presentados en BDB en la siguiente articulo The King is Dead, LongLive the King.

Prohibida la reproducción total o parcial de este documento. 17 de 108

Page 18: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Prohibida la reproducción total o parcial de este documento. 18 de 108

Page 19: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Importante

No seleccione la opción Yes ya que si por error desinstalamos el paquete slapd no perderemos la basede datos del directorio /var/lib/ldap y podremos recuperar nuestra instalación usando dichosarchivos.

Si por alguna razón ya existia una base de datos de una instalación anterior (como en nuestro caso de re instalación) elasistente nos pregunta si deseamos mover la base de datos vieja a un directorio de respaldo (/var/backups/), elejimos laopción Yes.

Y por ultimo nos pregunta si deseamos permitir conexiones al servidor LDAP usando la version obsoleta del protocoloLDAP 2, por defecto esta desactivado, se recomienda no activarlo ya que las todas aplicaciones que usaremos usan laversión 3 del protocolo LDAP, así que contestaremos: No

Prohibida la reproducción total o parcial de este documento. 19 de 108

Page 20: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Cuando el asistente termina de configurar los parametros especificados veremos en la salida de la consola un mensajecomo 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 conifguración en base a nuestras respuestas, inicializa un directorio basico e iniciael servidor slapd con la nueva configuración y el nuevo directorio.

En la siguiente sección 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 usuarioy grupo será con los que se ejecutará el demonio slapd, así mismo, los archivos y directorios que utilicemos en nuestrainstalación deberán de pertenecer a este usuario y grupo.

Verificaremos que se creo un grupo de nombre openldap:

root@pdc:~# grep ldap /etc/group

Prohibida la reproducción total o parcial de este documento. 20 de 108

Page 21: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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/passwdopenldap: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 válido: /bin/false.

También verificaremos que los permisos del directorio /var/lib/ldap sean los correctos y nos aseguraremos que elusuario openldap tenga permiso de lectura, escritura y acceso al directorio:

root@pdc:~# ls -ld /var/lib/ldapdrwx------ 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 configuración del demonio slapd, nos aseguraremos de que el demonio no estecorriendo, lo verificamos así:

root@pdc:~# ps aux | grep slapdopenldap 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 ejecución, entonces lo detendremos así:

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

Más adelante veremos como controlar el servicio slapd.

Los esquemas (schemas) definen el tipo de objectos (objectClass) que podemos manejar en nuestro arbol de directorio,además 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 configuración de slapd son los necesarios para poder almacenar informaciónde cuentas Unix/POSIX, almacenar información 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 dominiosSamba/Windows, sin embargo, OpenLDAP permite la carga de esquemas externos para almacenar diferente tipo deinformación, el esquema LDAP Samba permite almacenar la siguiente información:

Prohibida la reproducción total o parcial de este documento. 21 de 108

Page 22: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 contraseña NT (MD4 hash) del usuario Samba: sambaNTPassword

La contraseña LanManager del usuario Samba: sambaLMPassword

La ruta del script de inicio de sesión (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 más atributos, pero los principales son estos que se mencionaron arriba, para conocer los demasatributos 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 vieneincluido dentro de la instalación de slapd, así que tendremos que instalar el paquete samba-doc, el cual contiene el archivosamba.schema:

# apt-get install samba-doc

El archivo del esquema de samba se encuentra en el archivo /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz en formato comprimido, lo descomprimiremos al vuelo y lo copiaremos al directorio/etc/ldap/schema/:

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, parahacer esto modificaremos el archivo /etc/ldap/slapd.conf.

Antes de modificar el archivo de configuración 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 sección donde se incluyen los esquemas:

# Schema and objectClass definitionsinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schema

Despues del esquema inetorgperson agregar:

include /etc/ldap/schema/samba.schema

Prohibida la reproducción total o parcial de este documento. 22 de 108

Page 23: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

De manera que quede así:

# Schema and objectClass definitionsinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /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 lacontraseña a los usuarios Unix debidamente autenticados. Ya que nuestro directorio también almacenará información decuentas Samba, debemos permitir que los usuarios Samba plenamente autenticados puedan cambiar su contraseña desdeel mismo cliente Windows. Las contraseñas de cuentas Samba estan almacenadas en los atributos sambaLMPassword ySambaNTPassword, por lo tanto permitiremos a los usuarios autenticados poder cambiar su contraseña.

En la sección 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 más consultados por los clientes y aplicaciones LDAP esten debidamente indexados en labase de datos del directorio LDAP, de no ser así podríamos sufrir de penalizaciones en el rendimiento del directorio, enespecial en el tiempo de respuesta en las consultas, para optimizar el rendimiento del directorio agregaremos una lista deatributos a la lista de atributos a indexar.

En la sección de Indice de atributos,

Cambiar:

# Indexing options for database #1index objectClass eq

Por:

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

Prohibida la reproducción total o parcial de este documento. 23 de 108

Page 24: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Si en un futuro desea agregar más atributos a la lista de indices vea la sección Agregar nuevos indices de atributos enOpenLDAP.

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

En esta sección se verán los parametros requeridos para configurar el servicio slapd para el resgistro de eventos, los cualesnos ayudarán a analizar la información provista por el directorio LDAP, disgnosticar problemas o simplemente paraverificar que todo este funcionando correctamente. Veremos las configuraciones requeridas para el legendario syslogd osysklogd y syslog-ng.

Configuracion de los logs en OpenLDAP

Ya que esta es nuestra primer instalación de un servidor OpenLDAP, es aconsejable que se incremente el nivel deseveridad 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 página del manual de slapd.conf(5):

Tabla 4.1. Niveles severidad logs slapd

Nivel Descripción

1 (0x1 trace) trace function calls

2 (0x2 packets) debug packet handling

4 (0x4 args) heavy trace debugging (function args)

16 (0x10 BER) print out packets sent and received

32 (0x20 filter) search filter processing 64 (0x40 config) configuration file processin

64 (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 númerico o su equivalente en inglés, para desactivar elregistro de eventos de slapd use el valor none.

Para nuestro caso usaremos el nivel stats (256) el cual nos mostrará información sobre el servicio slapd, conexiones, yaccesos al servidor.

En la sección de logs cambiaremos:

# Read slapd.conf(5) for possible valuesloglevel none

Por:

# Read slapd.conf(5) for possible valuesloglevel stats

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

Prohibida la reproducción total o parcial de este documento. 24 de 108

Page 25: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Configuraciones para sysklogd

En la mayoría de distribuciones Linux el sistema de logs esta controlado por el demonio syslog, en Ubuntu el paquetesysklogd provee el demonio de logs predeterminado. En la configuración predeterminada de syslog en Ubuntu, los logsdel servidor slapd son enviados con un facility local4.*, y por default todos los mensajes del servidor slapd son enviadosa los archivos /var/log/debug y /var/log/syslog, esta configuración hace que los mesajes de ldap se mezclen conmensajes de sistema generales.

Configuraremos el demonio sysklogd para que los logs referentes a OpenLDAP sean enviados a un archivo de logsindependiente, por ejemplo, al archivo /var/log/ldap.log.

El archivo de configuración del demonio syslog es /etc/syslog.conf, haremos una copia de respaldo antes de hacercambios.

root@pdc:~# cp /etc/syslog.conf{,.orig}

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

# OpenLDAP Logslocal4.* -/var/log/ldap.log

Y también 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 configuración 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 ningúnevento 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 reproducción total o parcial de este documento. 25 de 108

Page 26: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Si usted utiliza logrotate para rotar los logs de OpenLDAP automáticamente, cree el archivo de rotación para los logs deOpenLDAP:

# 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 rotarán semanalmente y serán mantenidos durante 4 semanas, al cumplir la 5a semana los logsserán rotados automáticamente.

Configuraciones para syslog-ng

Ahora veremos como escribir los logs de OpenLDAP en un archivo independiente usando el servidor syslog-ng, note queeste procedimiento es opcional ya que no es el servidor syslog predeterminado en Ubuntu ni en otras distribucionesGNU/Linux.

El archivo de configuración del demonio syslog es /etc/syslog-ng/syslog-ng.conf, haremos una copia de respaldoantes de hacer cambios.

root@pdc:~# cp /etc/syslog-ng/syslog-ng.conf{,.orig}

Ahora agregaremos la definición del destino de los logs originados por el proceso slapd, al final de la sección de losdestinos agregue algo así:

# Destino para logs de proceso slapd(8).destination d_ldap { file("/var/log/ldap.log"); };

Al final de la sección donde se definen los filtros, agregamos esto:

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

Al final de la sección donde se definen la definición de el log, principalmente conformada por el origen source(src);, elfiltro filter(f_ldap);, el destino destination(d_ldap);.

# Deinición 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 también remplazamos:

Prohibida la reproducción total o parcial de este documento. 26 de 108

Page 27: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 [ OK ] * Starting system logging syslog-ng [ OK ]

Ahora verá que todos los logs referentes a slapd solo serán enviados al archivo /var/log/ldap.log.

Si usted utiliza logrotate para rotar los logs de OpenLDAP automáticamente, cree el archivo de rotación para los logs deOpenLDAP:

# 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 rotarán semanalmente y serán mantenidos durante 4 semanas, al cumplir la 5a semana los logsserán rotados automáticamente.

Existe un limite de cuantas entradas serán devueltas en las operaciones de busqueda de los clientes LDAP, este limite pordefecto esta configurado a 500 lo que significa que solo serán devueltas 500 entradas a los clientes LDAP aun cuando laconsulta no tenga limite.

# The maximum number of entries that is returned for a search operationsizelimit 500

Nota

Este valor será incrementado en configuraciones posteriores, en especifico cuando se haga unareplicación/sincronización del DIT.

Antes de reiniciar nuestro servidor para que nuestros cambios tomen efecto, verificaremos que los permisos sean losadecuados:

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 reproducción total o parcial de este documento. 27 de 108

Page 28: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 sección veremos como realizar una revisión sintactica del arcihvo de configuración del demonio slapd.

Antes de reiniciar nuestro servidor slapd realizaremos una comprobación de que nuestras configuraciones esten correctas,el comando slaptest nos hará una revisión sintactica de nuestro archivo de configuración /etc/ldap/slapd.conf.

root@pdc:~# slaptest -v -uconfig file testing succeeded

Con la opción -v habilitamos el modo verbose, esto es para que muestre detalles sobre posibles errores encontrados en laconfiguración.

La opción -u permite que solo se ejeucta la revisión sintactica aun cuando no se puedan abrir los archivos de bases dedatos 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 deminioslapd 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 iniciarnuestro servidor de forma ordinaria usando el script de inicio, para iniciar el servidor slapd usamos el comando:

root@pdc:~# /etc/init.d/slapd startStarting 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/slapdJan 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 iniciocorrectamente.

Ahora revisaremos que el servidor slapd haya abierto el socket TCP/IP, en especifico veremos que nos abra el puertoTCP/389.

Con el comando netstat veremos si el proceso slapd con PID 15795 abre el puerto TCP/389.

root@pdc:~# netstat -pltn | grep slapdtcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 9755/slapd

Prohibida la reproducción total o parcial de este documento. 28 de 108

Page 29: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

tcp6 0 0 :::389 :::* LISTEN 9755/slapd

Ahora haremos una consulta al servidor LDAP para ver si responde con lo más básico. Usaremos el comando ldapsearchpara 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 resultsearch: 2result: 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 estafuncionando correctamente.

Ahora haremos una busqueda en el directorio LDAP autenticado como el usuario admin del LDAP y haremos la buquedausando como base dc=example,dc=com, esto es para comprobar que la autenticación y nuestras ACLs funcionencorrectamente, además, de comprobar que el directorio se haya incializado con la estrucutra básica..

root@pdc:~# ldapsearch -x -D "cn=admin,dc=example,dc=com" -b "dc=example,dc=com" -WEnter LDAP Password:ldapadmin# extended LDIF## LDAPv3# base <dc=example,dc=com> with scope subtree# filter: (objectclass=*)# requesting: ALL#

# example.comdn: dc=example,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationo: exampledc: Example S.A. de C.V.

# admin, example.comdn: cn=admin,dc=example,dc=comobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: admindescription: LDAP administratoruserPassword:: e2NyeXB0fWUwTng4TmRUZk54Wm8=

# search resultsearch: 2result: 0 Success

# numResponses: 3# numEntries: 2

Prohibida la reproducción total o parcial de este documento. 29 de 108

Page 30: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

En esta sección veremos como controla el servicio slapd, al controlar el servicio nos referimos a iniciar, detener, reiniciiarel proceso slapd.

Para iniciar el servidor slapd usando los scripts de inicio, usaremos el siguiente comando:

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

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

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

Si deseamos que el servidor slapd sea iniciado automáticamente al arranque del sistema, usaremos el comando:

root@pdc:~# update-rc.d slapd defaultsAdding 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 delsistema, por lo que es posible que reciba un mensaje como el siguiente:

root@pdc:~# update-rc.d slapd defaultsSystem 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 removeRemoving 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 loscomandos antes mencionados.

Si desea obtener más información sobre los programas y páginas de manual relacionadas se aconseja que acceda a lossiguientes recursos adicionales.

Sitios web

En las paginas listadas a continuación encontrará mayor información 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 reproducción total o parcial de este documento. 30 de 108

Page 31: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Paginas de manual

Para conocer más sobre el uso y configuración de los programas utilizados en el capitulo, se recomienda leer los manualesrelacionados.

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 multicastmemberships

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 configuracióndefinidos en el archivo /etc/ldap/ldap.conf, básicamente en este archivo se pueden definir los siguientes parametros:

URI - Dirección del servidor o servidores LDAP predeterminados

BASE - Sufijo de la base de busqueda ó Base DN

SIZELIMIT - Tamaño máximo de las busquedas

TIMELIMIT - Limite de tiempo para las consultas

BINDDN - DN de la cuenta con la que se efectuarán las operaciones

Antes de modificar el archivo de configuración global del cliente LDAP, respalde el archivo:

root@pdc:~# cp /etc/ldap/ldap.conf{,.orig}

Editemos el archivo de configuración del cliente LDAP /etc/ldap/ldap.conf:

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

Definimos el la dirección del servidor LDAP y la base de busqueda:

BASE dc=example,dc=comURI ldap://127.0.0.1

Los parametros antes definidos son de uso general, si desea usar parametros diferentes para un usuario de sistema enparticular cree un archivo ~/.ldaprc dentro del directorio home del usuario, por ejemplo:

root@pdc:~# vim ~/.ldaprc

Con el contenido:

Prohibida la reproducción total o parcial de este documento. 31 de 108

Page 32: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

BASE dc=example,dc=comURI ldap://127.0.0.1BINDDN cn=admin,dc=example,dc=com

Para más información sobre el archivo /etc/ldap/ldap.conf y ~/.ldaprc ver la página del manual ldap.conf(5).

Tabla de contenidos

ObjetivosInstalación y configuración del servidor Samba

Instalando el servidor y cliente SambaConfiguraciónes de Samba para Controlador de Dominio

Parametros Globales del servidor SambaConfiguraciónes del registro de eventos (logs) del servidor SambaConfiguraciones de Red para el servidor SambaConfigurando los Parametros para Controlador de DominioParametros para interacción con el servidor LDAPConfiguraciones de Codificación y Charset

El recurso compartido especial [homes]El recurso compartido especial [netlogon]El recurso compartido especial [profiles]El recurso compartido publicoRealizando una Revisión Sintactica del archivo de configuración smb.confEspecificando la contraseña del ldap admin dn

Instalación y Configuración de las smbldap-toolsLlenando el Directorio LDAP con smbldap-populateVerificando la instalación y configuración de Samba y LDAP

Probando Samba con Cuentas en el Directorio LDAPVerificando el mapeo del grupos unix a grupos SambaProbando 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 Sambacomo Controlador de Dominio PDC usando como un directorio OpenLDAP como fuente de información centralizadapara 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 información delcontrolador de dominio.

Validar la instalación y configuración de Samba como controlador de dominio PDC con LDAP y las herramientassmbldap-tools.

Siga con las siguientes secciones para realizar cada una de los procedimientos antes mencionados.

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

Prohibida la reproducción total o parcial de este documento. 32 de 108

Page 33: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

base de datos SAM almacenada en nuestro directorio LDAP.

Los parametros Generales que configuraremos son:

Parametros de identificación de red como: Dominio, Nombre Servidor.

Configuración para registro de eventos (logs)

Interfaces y direcciones de red a las que esta conectado el servidor

Configuración de parametros para Controlador de Dominio

Informacion del servidor LDAP y como utilizarlo

Definición de script para automatizar la administración de las cuentas samba/ldap.

Directorios compartidos especiales como homes, netlogon y profiles.

La configuración la realizaremos paso por paso tratando de explicara cada cambio.

Instalando el servidor y cliente Samba

En esta sección 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 yresolución 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 parámetros, además de que importa losusuarios de sistema en /etc/passwd a la base de datos de cuentas samba, en nuestro caso esta configuración nonos sirve por lo que eliminaremos la configuración creada y los archivos de configuración que se crearon, para inicializarla configuración 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

Todavía no iniciaremos el servidor samba hasta que este nuevamente configurado.

Continuaremos con la configuracón de samba.

Configuraciónes de Samba para Controlador de Dominio

El archivo de configuración principal de Samba es /etc/samba/smb.conf, ya que iniciaremos con una configuraciónnueva, 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 sección podemos continuar con los parametros que nos intersan.

Prohibida la reproducción total o parcial de este documento. 33 de 108

Page 34: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Parametros Globales del servidor Samba

El archivo de conifguración de samba define la sección [global], en esta sección especificaremos parametros globales queafectarán 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

Descripción del servidor Samba: Servidor PDC

Además configuraremos los siguientes parametros extras:

Soporte para habilitar privilegios de Grupos de Dominio Samba: enable privileges = yes, este parametro es útil porejemplo para dar privilegios a los usuarios miembros del grupo Domain Admins para unir equpos Windows a un DominioNT.

Crearemos un archivo /etc/samba/smb.conf nuevo con los siguientes parametros:

El inicio de la sección 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 conexión al usuario anonimo, pero las conexiónes de usuarios que se autentiquen con unacontraseña invalida serán rechazadas.

La ultima opción que especificamos es username map apuntando al archivo /etc/samba/smbusers, este archivo sirvepara mapear nombres de usuarios (alias), por ejemplo en este archivo podemos crear un mapeo de usuario para que lacuenta root sea mapeada a Administrator que es comunmente usada en entornos de red Windows para la cuenta deadministrador. Para hacer esto, creamos el archivo /etc/samba/smbusers con el siguiente contenido:

root = Administrator

No cerraremos el archivo ya que agregaremos más información en la sección [global] en las siguientes secciones

Configuraciónes del registro de eventos (logs) del servidor Samba

Ahora configuraremos algunos parámetros para la generación de mensajes de logs, en la sección [global] agregue lassiguientes líneas:

syslog = 0 log level = 0 max log size = 50 log file = /var/log/samba/%m.log

La configuración anterior especifica que no se envían los logs al demonio syslog local, el nível de severidad de logs es 0(más bajo), se define un tamaño de logs de 50M y los logs de las conexiones de los equipos o usuarios clientes se guardanen el directorio /var/log/samba con el formato MAQUINA.log.

Para más información acerca de los parámetros de configuración para los logs vea la página del manual smb.conf(5).

Prohibida la reproducción total o parcial de este documento. 34 de 108

Page 35: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

No cerraremos el archivo ya que agregaremos más información en la sección [global] en las siguientes secciones

Configuraciones de Red para el servidor Samba

En esta sección 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 más información en la sección [global] en las siguientes secciones

Configurando los Parametros para Controlador de Dominio

Ahora configuraremos los parametros relacionados con la configuración de un servidor Controlador de Dominio.

time server = Yes wins support = Yes os level = 33 domain logons = Yes preferred master = Yes logon path = logon home = logon drive = logon script = case sensitive = No utmp = Yes

No cerraremos el archivo ya que agregaremos más información en la sección [global] en las siguientes secciones

Parametros para interacción 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 reproducción total o parcial de este documento. 35 de 108

Page 36: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 más información en la sección [global] en las siguientes secciones

Configuraciones de Codificación 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 sección Global de smb.conf, en las siguientes secciones configuraremos secciones especiales paranuestro 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 cadausuario, por ejemplo, tenemos un usuario unix/windows de nombre jmedina, este usuario tiene un directorio $HOME en laruta /home/jmedina, con este recurso compartido, cada vez que el usuario jmedina inicia sesión por Samba, tendrádisponible un recurso compartido en el servidor con el nombre "jmedina" y por medio de él podrá entrar a sus archivosprivados 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 Sambaautenticados.

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 unControlador de Dominio, el proposito de este recurso compartido es almacenar los scripts de inico (logon scripts), estosscripts son ejecutados cada vez que un usuario inicia sesión en el dominio.

[netlogon] path = /home/samba/netlogon/ browseable = No read only = yes

La opción browseable = No especifica que este recurso compartido no será visible en la lista de shares disponibles en elservidor, más sin embargo, si podrá ser accesado para los usuarios que hacen login en el dominio, el acceso será de sololectura.

TODO: Meter opción para que los usuarios miembros del grupo "Domain Admins" tengan permiso de escritura a esterecurso compartido, así, estos usuarios podrán 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 reproducción total o parcial de este documento. 36 de 108

Page 37: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 /yesnet 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 ejecución

TODO: Meter sección sobre ntlogon.pl o ntlogon.py

El recurso compartido especial [profiles]

El recurso compartido [profiles] también es de uso especial y solo es necesario cuando Samba se configura comoControlador de Dominio, el proposito de este recurso compartido es almacenar los Perfiles de Usuarios, en especifico esusado cuando se configura que los usuarios de dominio utilizen los Perfiles Móviles (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 almacenadoel 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 dominiopuede 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 reproducción total o parcial de este documento. 37 de 108

Page 38: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 Revisión Sintactica del archivo de configuración smb.conf

Despues de haber editado el archivo de conifguración smb.conf ejecutaremos el comando testparm para realizar unrevisión sintactica del archivo smb.conf, este comando nos dirá si hay algún error de configuración, o si algun parametroesta mal escrito.

Para correr la revisón ejecutamos:

root@pdc:~# testparmLoad smb config files from /etc/samba/smb.confProcessing section "[homes]"Processing section "[netlogon]"Processing section "[profiles]"Loaded services file OK.Server role: ROLE_DOMAIN_PDCPress 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/smbldap-passwd) cannot be executed (error was No such file or directory)." ignorelo, en la siguiente sección instalaremos elpaquete 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 yalguna descripción corta sobre el error.

Nota

Todavía no es momento de iniciar el servidor samba.

Para más información acerca de los parametros en el archivo de configuración /etc/samba/smb.conf ver la página delmanual smb.conf(5).

Especificando la contraseña del ldap admin dn

Para que Samba pueda agregar/modificar cuentas almacenadas en el directorio LDAP es necesario que sepa la contraseñadel usuario ldap admin dn especificada en el archivo smb.conf. La cuenta del ldap admin dn debe de tener lossuficientes permisos para leer, agregar y modificar entradas en el directorio LDAP.

Para especificar la contraseña del admin dn, usamos el comando:

root@pdc:~# smbpasswd -WSetting stored password for "cn=admin,dc=example,dc=com" in secrets.tdbNew SMB password:ldapadminRetype new SMB password:ldapadmin

La contraseña será almacenada en el archivo /var/lib/samba/secrets.tdb. Se almacena aquí para no tener queespcificarla cada vez que se vaya a ejecutar alguna operación 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 reproducción total o parcial de este documento. 38 de 108

Page 39: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 sección veremos como configurar las herramientas smbldap-tools para facilitar la administración decuentas de usuario y grupos en sistemas basados en Samba y OpenLDAP.

Ahora configuraremos las herramientas smbldap-tools para predefinir los parametros de configuración para laadministración de cuentas Unix y Samba.

Primero instalaremos el paquete smbldap-tools así:

root@pdc:~# apt-get install smbldap-tools

Los archivos de configuración de las herramientas smbldap-tools se encuentran en el directorio /etc/smbldap-tools, eneste directorio deben de existir dos archivos de configuración, el archivo smbldap.conf contiene directivas deconfiguración tanto para la creación y modificación de cuentas Unix y Samba y el archivo smbldap_bind.conf contieneel usuario y la contraseña del usuario con el que nos conectaremos al servidor LDAP para efectura las operaciones deadministración 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 juntocon 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 dueño debe de ser root y el grupo dueño debe deser openldap.

root@pdc:~# chown root:openldap smbldap*

Nadie más a exepcion del usuario root tendrá permiso de lecutra y escritura sobre los archivos, el grupo openldap solotendrá permisos de lectura.

root@pdc:~# chmod 640 smbldap*

Editaremos el archivo de configuración smbldap_bind.conf para especificar el usuario con con el que haremos lasoperaciones de administracion de usurios y grupos en el servidor LDAP.

root@pdc:~# vim smbldap_bind.conf

Prohibida la reproducción total o parcial de este documento. 39 de 108

Page 40: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 queen nuestro servidor Maestro.

En el archvo smbldap.conf se debe de especificar el SID del dominio Samba con el que estaremos trabajando, paraobtener el SID de nuestro servidor utilizaremos el comando net.

Obteniendo el SID local:

root@pdc:~# net getlocalsidSID 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 configuración 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 LDAPalmacenaremos la información 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" returnSID="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 reproducción total o parcial de este documento. 40 de 108

Page 41: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Conifguraciones de TLS/SSL:

Ya que en esta instalación inicial no usaremos comunicacione seguras por SSL/TLS desactivaremos el uso de TLS ennuestra configuración.

# 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 configuración servirá como variable para otrasconfiguraciones, todos los contenedores para almacenar cuentas y grupos estarán bajo este Base DN.

# LDAP Suffix# Ex: suffix=dc=IDEALX,dc=ORGsuffix="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 parámetros 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 homeDirectoryuserHomeDirectoryMode="700"

# GecosuserGecos="System User"

# Default User (POSIX and Samba) GIDdefaultUserGid="513"

# Default Computer (Samba) GIDdefaultComputerGid="515"

# Skel dirskeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if

Prohibida la reproducción total o parcial de este documento. 41 de 108

Page 42: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

# 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 expiración de contraseñas.

Configure la ruta y unidad para el montaje de el directorio home automáticamente en clientes windows a través del logonscript:

# 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 dosuserScript="logon.bat"

En la siguiente sección veremos como actualizar el directorio LDAP con la información de Samba requerida para uncontrolador de dominio.

Ahora que ya hemos editado los archivos de configuración de las herramientas smbldap-tools, inicializaremos nuestrodirectorio LDAP con la información para el dominio NT: EXAMPLE.

El comando smbldap-populate inicializará nuestro directorio LDAP con la siguiente información:

Base DN: dc=example,dc=com

Contenedor (OU= Unidad Organizativa ) para las cuentas Unix/Samba: ou=Users

En el contenedor para los Usuarios, se crearán por defecto los usuarios: root y nobody los cuales serán mapeados alusuarios Administrador y Guest Samba respectivamente.

Contenedor (OU= Unidad Organizativa ) para los Grupos Unix/Samba: ou=Groups

En el contenedor de los Grupos, se crearán por defecto los Grupos Predeterminados de un dominio Samba: DomainAdmins, 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 reproducción total o parcial de este documento. 42 de 108

Page 43: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Para inicializar nuestro directorio LDAP con la información de arriba usaremos el comando smbldap-populate de lasiguiente manera:

root@pdc:~# smbldap-populatePopulating 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=comadding new entry: ou=Groups,dc=example,dc=comadding new entry: ou=Computers,dc=example,dc=comadding new entry: ou=Idmap,dc=example,dc=comadding new entry: uid=root,ou=Users,dc=example,dc=comadding new entry: uid=nobody,ou=Users,dc=example,dc=comadding new entry: cn=Domain Admins,ou=Groups,dc=example,dc=comadding new entry: cn=Domain Users,ou=Groups,dc=example,dc=comadding new entry: cn=Domain Guests,ou=Groups,dc=example,dc=comadding new entry: cn=Domain Computers,ou=Groups,dc=example,dc=comadding new entry: cn=Administrators,ou=Groups,dc=example,dc=comadding new entry: cn=Account Operators,ou=Groups,dc=example,dc=comadding new entry: cn=Print Operators,ou=Groups,dc=example,dc=comadding new entry: cn=Backup Operators,ou=Groups,dc=example,dc=comadding new entry: cn=Replicators,ou=Groups,dc=example,dc=comentry sambaDomainName=EXAMPLE,dc=example,dc=com already exist. Updating it...

Please provide a password for the domain root:Changing UNIX and samba passwords for rootNew password:dominioadminRetype new password:dominioadmin

Al final se nos solicita que asignemos una contraseña para el usuario root del dominio, utilizaremos la contraseña:dominioadmin

Si al llenar el directorio LDAP no se presenta error alguno, entonces al final tendremos nuestro arbol de directorio con lasiguiente estructura.

dc=EXAMPLE,dc=COM | ,___ ou=Users Contenedor para almacenar cuentas de usuario para sistemas Li | | | ,_______uid=root Usuario Unix/Samba root (Administrador Unix y Administrador d | | | ,_______uid=nobody Usuario Unix/Samba nobody (Cuenta anonima para entornos Unix | ,___ ou=Computers Contenedor para las cuentas de Computadoras (Trusted Machine | ,___ ou=Groups Contenedor para alamacenar Grupos de sistema para sistemas Un | ( o para cualquier otro sistema LDAP-aware). | ,_______cn=Domain Admins Grupo Global para los Administradores del Dominio NT: EXAMPLE | ,_______cn=Domain Users Grupo Global para los Usuarios de Dominio NT: EXAMPLE | ,_______cn=Domain Computers Grupo Global para las Cuentas de Computadoras del Dominio NT: EXAMP

Es importante que se tenga en consideración la estrucutra de nuestro arbol de Directorio, ya que esta misma estrucutrapodrá 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, BackupOperators, Print Operators, Replicators, a estos grupos les agrega el atributo sambaGroupType con el valor 5, el tipode grupo samba 5 es usado para grupos de dominio y no para grupos locales, para los grupos samba locales debe usar eltipo 4, más información 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-builtin-changetype.ldif:

Prohibida la reproducción total o parcial de este documento. 43 de 108

Page 44: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Con el siguiente contenido:

dn: cn=Account Operators,ou=Groups,dc=example,dc=comchangetype: modifyreplace: sambaGroupTypesambaGroupType: 4

dn: cn=Administrators,ou=Groups,dc=example,dc=comchangetype: modifyreplace: sambaGroupTypesambaGroupType: 4

dn: cn=Backup Operators,ou=Groups,dc=example,dc=comchangetype: modifyreplace: sambaGroupTypesambaGroupType: 4

dn: cn=Print Operators,ou=Groups,dc=example,dc=comchangetype: modifyreplace: sambaGroupTypesambaGroupType: 4

Ahora realizamos la modificación 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-chaEnter LDAP Password:ldapadminmodifying 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 reiniciarsamba para que tenga conocimiento de la nueva información.

root@pdc:~# /etc/init.d/samba restart * Stopping Samba daemons [ OK ] * Starting Samba daemons [ OK ]

En esta sección veremos algunos comandos que nos podrán servir para verificar que las cuentas de samba sean lasalmacenadas en el directorio ldap, y también se hace una prueba de conexión 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 servidorLDAP para obtener la información, si todo fue configurado correctamente nos deberá de mostrar los siguiente:

root@pdc:~# pdbedit -Lroot:0:rootnobody:65534:nobody

Como se vio antes, los usuarios samba deben de estar mapeados al UID de un usuario Unix, en este caso el usuario rootSamba esta mapeado al usuario root Unix con UID 0 y el usuario nobody Samba esta mapeado al usuario nobody Unixcon UID 65534.

Si deseamos mostrar los detalles de información de un usuario samba usamos el comando pdbedit de la siguiente manera:

Prohibida la reproducción total o parcial de este documento. 44 de 108

Page 45: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

root@pdc:~# pdbedit -Lv rootUnix username: rootNT username: rootAccount Flags: [U ]User SID: S-1-5-21-2911508632-2405292923-4115677068-500Primary Group SID: S-1-5-21-2911508632-2405292923-4115677068-513Full Name: rootHome Directory: \\PDC\rootHomeDir Drive: H:Logon Script:Profile Path: \\PDC\profiles\rootDomain: EXAMPLEAccount desc:Workstations:Munged dial:Logon time: 0Logoff time: neverKickoff time: neverPassword last set: Wed, 14 Jan 2009 10:50:24 CSTPassword can change: Wed, 14 Jan 2009 10:50:24 CSTPassword must change: neverLast bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Este comando nos muestra a detalle la información/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 dedominio, 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 móvil para la cuenta Samba root:

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

Si desea cambiar la contraseña 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 unacuenta de usuario Unix, es decir, se mapea el SID (Security Identifier) de la cuenta Windows/Samba con el UID (UserID) de la cuenta Unix, así mismo se mapean los grupos Wwindows/Samba a grupos Unix a través del SID del grupoWindows/Samba al GID del grupo Unix, para validar que el mapeo de grupos se haya realizado correctamente use elcomando net, por ejemplo:

root@pdc:~# net groupmap listDomain Admins (S-1-5-21-2911508632-2405292923-4115677068-512) -> 512Domain Users (S-1-5-21-2911508632-2405292923-4115677068-513) -> 513Domain Guests (S-1-5-21-2911508632-2405292923-4115677068-514) -> 514Domain Computers (S-1-5-21-2911508632-2405292923-4115677068-515) -> 515Administrators (S-1-5-32-544) -> 544Account Operators (S-1-5-32-548) -> 548Print Operators (S-1-5-32-550) -> 550Backup Operators (S-1-5-32-551) -> 551Replicators (S-1-5-32-552) -> 552

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

Prohibida la reproducción total o parcial de este documento. 45 de 108

Page 46: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 identifiersin Windows operating systems.

En el capítulo siguiente Configuración de la resolución de Identidades con NSS_LDAP veremos como obtener lainformación de los grupos Unix vía LDAP usando NSS_LDAP para la centralización de usuarios y grupos Unix en undirectorio OpenLDAP y así tener un mapeo consistente de información de usuarios y grupos WIndows y Unixalmacenados 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 rootmapeada al administrador del dominio, realicemos una prueba de conexión utilizando la cuenta root del dominio,deberemos de utilizar la contraseña que se asigno al llenar el directorio con el comando smbldap-populate y no lacontraseña del usuario root local.

root@pdc:~# smbclient //localhost/netlogon -U rootPassword:dominioadminDomain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a]smb: \> quitroot@pdc:~#

Ya que configuramos el uso del archivo /etc/samba/smbusers para el mapeo de usuarios, podremos hacer una pruebautilizando la cuenta Administrator, deberemos de utilizar la misma contraseña del usuario root.

root@pdc:~# smbclient //localhost/netlogon -U AdministratorPassword:dominioadminDomain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a]smb: \> quitroot@pdc:~#

Pruebe realizando una conexión anónima al recurso compartido publico:

# smbclient //localhost/publico -NAnonymous login successfulDomain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.28a]smb: \> quit

Si las ultimas pruebas no funcionan entonces debe de revisar su configuración y probablemente volver a empezarverificando que todo se haya seguido al pie de la letra.

NOTA: Meter referencia a sección de empezando desde ceros.

En los sistemas Unix como GNU/Linux los nombres comúnes de las cuentas de usuario y grupo son mapeadas a unidentificador númerico llamado UID (User ID) y GID (Group ID) respectivamente, el mapeo de un nombre común a unonúmerico es llevado a cabo por la biblioteca de sistema NSS (Name Service Switch), la cual es invocada cada vez quealgún comando o aplicación realizan alguna operación que requiera la resolución de un nombre, sea un usuario, un grupo,un nodo de red, entre otras entidades, también es usada cuando se realizan operaciones relacionadas con permiso dearchivos y autenticación 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 paraalmacenar la información de los usurios y grupos será necesario indicarle a la biblioteca NSS que debe usar un directorioLDAP para obtener información sobre dichas identidades, es aquí donde entra el paquete nss_ldap, el paquete nss_ldapes un plugin para la biblioteca de sistema NSS para podere realizar la resolución de identidades usando como fuente de

Prohibida la reproducción total o parcial de este documento. 46 de 108

Page 47: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

origen un directorio LDAP.

En Debian/Ubuntu el plugin LDAP para la biblioteca NSS es provisto por el paquete libnss-ldap, lo instalaremos en elsistema vía apt-get usando el siguiente el comando:

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

Al instalar el paquete libnss-ldap se instalarán otros paquetes como libpam-ldap que lo utilizaremos en la siguientesección para configurar la autorización a los servicios del sistema.

El sistema de administración de paquetes apt nos lanzará un asistente para configuración, la configuración del asistente noes exactamente como nosotros la necesitamos, por lo que solo contestaremos las preguntas con cualquier cosa paradespues 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 configuración /etc/ldap.conf, ya que nosotros crearemos una configuración nuevaeste 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 configuración /etc/ldap.conf:

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

Agregamos el siguiente contenido solamente:

# Información del servidor LDAPuri ldap://127.0.0.1/ldap_version 3

# Base de busquedabase dc=example,dc=com

# Contenedores para cuentas de usuario, grupos y computadorasnss_base_passwd ou=Users,dc=example,dc=com?subnss_base_passwd ou=Computers,dc=example,dc=com?subnss_base_shadow ou=Users,dc=example,dc=com?subnss_base_group ou=Groups,dc=example,dc=com?sub

# Tipo bindingbind_policy softnss_initgroups_ignoreusers daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,www-data,backup,li

# Filtros PAMpam_login_attribute uidpam_member_attribute memberuidpam_filter objectclass=posixAccount

Prohibida la reproducción total o parcial de este documento. 47 de 108

Page 48: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

# Cambio contraseña via passwd(1)pam_password exop

Nota

El parámetro nss_initgroups_ignoreusers define una lista de usuarios para los cuales se van a ignorarlos grupos almacenados en el directorio LDAP, esto necesario para servicios que inician antes delservidor OpenLDAP o la red.

Los permisos del archivo /etc/ldap.conf deben de ser 644, como se muestra a continuación:

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 resolución de entidades vía LDAP en el archivo de configuración de la biblioteca NSS:/etc/nsswitch.conf y modificar las entradas para las entidades: passwd, group y shadow.

Antes de modificar el archivo de configuración de resolución de entidades haremos una copia de seguridad:

root@pdc:~# cp /etc/nsswitch.conf{,.FILES}

Ahora editamos el archivo para decirle que para obtener la información de usuarios, grupos también consulte el directorioLDAP especificado en el archivo /etc/ldap.conf.

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

Cambiar:

passwd: compatgroup: compatshadow: compat

Por:

passwd: compat ldapgroup: compat ldapshadow: compat ldap

hosts: files wins dns

Nota

También aprovechamos para que la resolución de nombres de hosts incluya al servidor WINSincorporado con Samba para resolver nombres netbios.

Despues de guardar los cambios haremos unas pruebas con el comando getent para verificar que si este haciendo lasconsultas al directorio LDAP.

Verificando la resolución de usuarios:

# getent passwd | grep -E 'root|nobody'root:x:0:0:root:/root:/bin/bashnobody:x:65534:65534:nobody:/nonexistent:/bin/shroot:x:0:0:Netbios Domain Administrator:/root:/bin/bashnobody: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 reproducción total o parcial de este documento. 48 de 108

Page 49: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Ahora haremos una prueba para que podamos obtener la lista de grupos tanto del archivo /etc/group como del directorioLDAP.

root@pdc:~# getent group | grep -E 'root|Domain'root:x:0:Domain Admins:*:512:rootDomain 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 losgrupos Domain XXXX fueron obtenidas del directorio LDAP.

Podemos utilizar el comando id para verificar que la resolución de entidades muestre a que grupos pertenece el usuarioroot.

Inicie una nueva sesión como root en el equipo ya sea por ssh o localmente en una TTY, y despues ejecute lo siguiente:

root@pdc:~# id rootuid=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 parámetro nss_initgroups_ignoreusers del archivo de configuración/etc/ldap.conf no verá los grupos Samba que estan en el directorio LDAP, como por ejemploDomain Admins.

Ahora verifique que el mapeo de grupos Windows a grupos Unix se realice correctamente, mostrando el nombre comúndel grupo Unix en la salida del comando net groupmap list, por ejemplo:

root@pdc:~# net groupmap listDomain Admins (S-1-5-21-2911508632-2405292923-4115677068-512) -> Domain AdminsDomain Users (S-1-5-21-2911508632-2405292923-4115677068-513) -> Domain UsersDomain Guests (S-1-5-21-2911508632-2405292923-4115677068-514) -> Domain GuestsDomain Computers (S-1-5-21-2911508632-2405292923-4115677068-515) -> Domain ComputersAdministrators (S-1-5-32-544) -> AdministratorsAccount Operators (S-1-5-32-548) -> Account OperatorsPrint Operators (S-1-5-32-550) -> Print OperatorsBackup Operators (S-1-5-32-551) -> Backup OperatorsReplicators (S-1-5-32-552) -> Replicators

El archivo /etc/ldap.conf también es usado por el módulo ldap de las bibliotecas de autenticación PAM, en la siguientesección veremos como configurar PAM con soporte LDAP para la autorización de usuarios y grupos a los servicios delsistema..

Tabla de contenidos

Introducción a los Modulos de Autenticación PAMRespaldando la configuración de PAMConfigurando los modulos de autenticación PAM con LDAP

Configuración del modulo authConfiguración del modulo accountConfiguración del modulo sessionConfiguración del modulo passwordInstalando el modulo Cracklib de PAM

Prohibida la reproducción total o parcial de este documento. 49 de 108

Page 50: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Probando la autenticación de usuarios de sistema vía PAM_LDAP

Que es PAM?

PAM son las siglas de Plugable Authentication Modules que basicamente es un mecanismo flexible para autenticarusuarios.

Cada linea de los archivos de configuración de PAM contiene tres columnas más argumentos opcionales, a continuaciónse muestra un ejemplo:

password requisite pam_unix.so nullok obscure md5

A continuación se explica que es cada elemento:

password

La primer columna sirve para indicar el tipo de modulo de autenticación

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 configuración de PAM

METER OTRA TABLA con la misma info, igual en diagrama.

A continuación se describe cada una de las columnas involucradas en las configuraciones de PAM:

Tipos de Modulos

Hay cuatro tipos de modulos PAM que a continuación se describen.

authentication (autenticaci´n)

Tareas encaminadas a comprobar que, efectivamente, o el usuario es realmente quien dice ser. A menudo,cuando se habla de PAM, s lo o se tiene en cuenta esta tarea, ignorando las dem´s. Estas tareas ofrecenincluso un a sistema de credenciales que permiten al usuario ganar ciertos privilegios —fijados por eladministrador—.

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 lepregunte al usuario una contraseña u otro mecanismo de identificación.

Segundo, el modulo puede otorgar membrecia a un grupo u otros privilegios a traves de las propiedades de lascredenciales del usaurio.

account (cuenta)

Prohibida la reproducción total o parcial de este documento. 50 de 108

Page 51: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

En este grupo se engloban tareas que no est´n relacionadas a directamente con la autenticaci´n. Algunosejemplos son permitir/denegar el acceso o en funci´n de la hora, los recursos disponibles o, incluso, lalocalizaci´n. Ofrece o o verificaci´n de cuentas de usuario. Por ejemplo, se encarga de determinar si el usuarioo tiene o no acceso al servicio, si su contrase˜a 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 deldía, los recursos del sistemas actualmente disponibles (máximo número de usuarios) o quizaso quizas lalocalización de el usuario ( por ejemplo, para limitar el login al usuario root en la consola).

password (contraseña)

Se encarga de mantener actualizado el elemento de autenti- n caci´n asociado a cada usuario —por ejemplo,su contrase˜a—. 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 autenticación asociado a un usuario.

session (sesión)

En este grupo se engloban tareas que se deben llevar a cabo antes o de iniciarse el servicio y despu´s de queeste finalice. Es especialmente util para e mantener registros de acceso o hacer accesible el directorio homedel usuario.

Estos modulos estan asociados a las realización de tareas que necesitas que sean hechas para el usuario antesde que se le pueda dar acceso a un servicio o despues de que el servicio ha sido provisto.

Tales tareas incluyen registrar (logging) información correspondiente al usuario, montar directorios, and theopening and closing o f some data exchange with another user.

Banderas de Control (Control Flags)

Modulo

Argumentos (opcional)

Ya que la configuración de PAM y sus modulos es muy importante, y cualquier configuración mal hecha podría causar queya no podamos iniciar sesión 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 módulo de autenticación pam_ldap debe ser llamado por el nombre pam_ldap.so en los archivos de configuración, elmódulo pam_ldap.so utiliza los parámetros de configuración definidos en el archivo /etc/ldap.conf para conectarse yconsultar el servidor LDAP en donde buscará la información de cuentas UNIX.

Para nuestro usaremos los parámetros definidos en la sección anterior ya que los parámetros para NSS LDAP y PAMLDAP son los mismos.

Prohibida la reproducción total o parcial de este documento. 51 de 108

Page 52: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Configuración del modulo auth

Para configurar el módulo 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 sufficient pam_unix.so likeauth nullokauth sufficient pam_ldap.so use_first_passauth required pam_deny.so

Configuración del modulo account

Para configurar el módulo 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 required pam_unix.soaccount sufficient pam_ldap.so

Configuración del modulo session

Para configurar el módulo 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 required pam_unix.sosession optional pam_ldap.so

Configuración del modulo password

Para configurar el módulo 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 sufficient pam_unix.so nullok use_authtok md5 shadowpassword sufficient pam_ldap.so use_authtokpassword required pam_deny.so

Instalando el modulo Cracklib de PAM

En el modulo de autenticación password especificamos que es requerido el uso de pam_cracklib, cracklib es unconjunto de bibliotecas que nos servirán para verificar que las contraseñas suministradas por usuarios unix sean losuficientemente fuertes, el chequeo lo hace contra un diccionario de palabras, así, si un usuario ingresa una contraseñabasada en alguna palabra del diccionario cracklib nos alertará. Por medio del modulo pam_cracklib tambien podemosespecificar el tamaño minimo de una contraseña.

Para habilitar el soporte instale el paquete libpam-cracklib, así:

root@pdc:~# apt-get install libpam-cracklib

Prohibida la reproducción total o parcial de este documento. 52 de 108

Page 53: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Y edite el archivo de configuración del módulo password:

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

Al inicio del archivo y antes de la carga del módulo pam_unix.so agregue la carga del modulo pam_cracklib.so, porejemplo:

password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3password sufficient pam_unix.so nullok use_authtok md5 shadowpassword sufficient pam_ldap.so use_authtokpassword required pam_deny.so

Crear usuario con smbldap-useradd

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

Nota

Para más información de como crear cuentas unix con las herramientas smbldapt-tools ver la SecciónAdministración de cuentas Unix y Samba vía smbldap-tools.

Mostrando la información del nuevo usuario:

root@pdc:~# smbldap-usershow jmedinadn: uid=jmedina,ou=Users,dc=example,dc=comobjectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccountcn: jmedinasn: jmedinagivenName: jmedinauid: jmedinauidNumber: 1008gidNumber: 513homeDirectory: /home/jmedinaloginShell: /bin/bashgecos: System UseruserPassword: {SSHA}dFAiW/BAWzSnLVuQXfrtN3Ne/RxHSlgzshadowLastChange: 14049shadowMax: 99999

Verificando resolución de identidades:

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

Verificando que no existe localmente (archivos)

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

Probando la autenticación 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 reproducción total o parcial de este documento. 53 de 108

Page 54: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Realizamos una conexión SSH al localhost para probar el login:

root@pdc:~# ssh jmedina@localhostjmedina@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 theindividual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable 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:~$ iduid=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 DirPruebajmedina@pdc:~$ touch ArchivoPruebajmedina@pdc:~$ ls -ltotal 4-rw-r--r-- 1 jmedina Domain Users 0 2008-07-17 21:24 ArchivoPruebadrwxr-xr-x 2 jmedina Domain Users 4096 2008-07-17 21:24 DirPrueba

El usuario puede cambiar su propia contraseña desde un shell usando el comando passwd.

jmedina@pdc:~$ passwdEnter login(LDAP) password:123456New UNIX password:NuevaContraseñARetype new UNIX password:NuevaContraseñALDAP password information changed for jmedinapasswd: password updated successfullyjmedina@pdc:~$

Nota

Recuerde que el comando passwd esta ligado a la bilioteca NSS y NSS a su vez con LDAP y realizaráuna operación de cambio de contraseña en el directorio LDAP.

Si utiliza una nueva contraseña debil el sistema (con ayuda de pam_cracklib) le notificará, por ejemplo:

jmedina@pdc:~$ passwdEnter login(LDAP) password:New UNIX password: BAD PASSWORD: it's WAY too shortNew UNIX password:BAD PASSWORD: it is based on your usernameNew UNIX password:BAD PASSWORD: it is too simplistic/systematicNew UNIX password:

Prohibida la reproducción total o parcial de este documento. 54 de 108

Page 55: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

BAD PASSWORD: it is based on a dictionary wordpasswd: Authentication token manipulation errorpasswd: password unchanged

Note que las reglas de cracklib estan funcionando ya que no permite contraseñas simples e inseguras.

Tabla de contenidos

Migración de Usuarios (/etc/passwd y /etc/shadow)Migración de Grupos (/etc/group)

En este cápitulo 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 herramientasestan 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 paramigrar cuentas y grupos.

La información de cuentas de usuario estan almacenadas en el archivo /etc/passwd, y en el archivo /etc/shadowprincipalmente esta almacenado el hash de la contraseña del usuario. Migraremos la información de ambos archivossiguiendo el siguiente procedimiento:

Hacer una copia de los archivos /etc/passwd y /etc/shadow en un directorio temporal:

root@pdc:~# cp /etc/passwd /etc/shadow /tmp/

1.

Eliminar de ambos archivos todas las cuentas que no quieras importar en el directorio LDAP

root@pdc:~# for user in root nobody bin daemondo

2.

Prohibida la reproducción total o parcial de este documento. 55 de 108

Page 56: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

export userperl -i -pe’s@^$ENV{user}:(.*)\n@@’ /tmp/passwdperl -i -pe’s@^$ENV{user}:(.*)\n@@’ /tmp/shadowdone

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 opción -a de smbldap-migrate-accounts, el atributo sambaSAMAccount seráagregado a los usuarios importados. Todos los usuarios que previamente tenían definido unshell valido en /etc/passwd entonces serán capaces de conectarse a el servidor y actualizar sucontraseña Windows usando el script /usr/sbin/smbldap-passwd ó el comando passwd.

3.

Eliminando los archivos temporales

root@pdc:~# rm -i /tmp/passwd /tmp/shadowrm: remove regular file `/tmp/passwd'? yrm: remove regular file `/tmp/shadow'? y

4.

En la siguiente sección veremos como migrar los grupos.

Ahora migraremos los grupos de el archivo /etc/group. El proceso de Migración deberá de hacerse como sigue:

Hacer una copia del archivo /etc/grooup a un directorio temporal:

root@pdc:~# cp /etc/group /tmp/

1.

Elimina todos los grupos que no quieres que se importen al directorio LDAP

root@pdc:~# for group in root bin daemondoexport groupperl -i -pe’s@^$ENV{group}:(.*)\n@@’ /tmp/groupdone

2.

Ahora si migramos los grupos al directorio LDAP

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

3.

Eliminando el archivo temporal

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

Nota

Con la opción -a de smbldap-migrate-groups, el atributo sambaGroupMapping será agregadoa los grupos de manera que ellos podrán ser usados como grupos Windows (entonces Sambamapeara los grupos Unix a los grupos Windows). Deberías de eliminar esta opción si no deseashacer el mape de grupos unix a windows.

4.

Podemos usar el comando getent para verificar que los usuarios y grupos migrados esten en el directorio LDAP.

Prohibida la reproducción total o parcial de este documento. 56 de 108

Page 57: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Tabla de contenidos

IntroducciónAtributos predefinidos para la creación de usuariosCreación de cuentas de usuarioEliminación de cuentas de usuariosCambiando la contraseña de un usuarioModificación de cuentas de usuarioAdministración de Grupos de Sistema y Grupos Samba

Agregando GruposEliminando GruposAgregando usuarios a GruposEliminando Usuarios de Grupos

En este capitulo veremos los comandos y archivos involucrados en la administración de usuarios y grupos tanto unix comosamba, para cada comando veremos las opciones disponibles con su descripción y ejemplos de como utilizarlos para casosreales.

Normalmente la información de las cuentas de usuario y grupos de sistema (Posix) y Samba están almacenadas en unaserie de archivos comunes, como /etc/passwd, /etc/group, /etc/shadow y /etc/samba/smbpasswd, pero en estainstalación toda esta información esta almacenada en una base de datos de usuarios y grupos centralizada, es decir, en undirectorio 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 están especialmente diseñadaspara administrar usuarios y grupos de sistema y samba almacenados en un directorio LDAP.

A continuación se describirán estas herramientas para realizar las tareas comunes de administración de usuarios y grupos.

Las herramientas smbldap-tools tienen algunos archivos de configuración que son usados para configurar las cuentas en eldirectorio LDAP, además se pueden establecer valores predefinidos para algunos atributos de cuentas y grupos, tantoPosix como Samba. El archivo principal de configuración de las smbldap-tools es: /etc/smbldap-tools/smbldap.conf.Este archivo fue generado en el cápitulo Configuración de Samba y las herramientas smbldap-tools en la secciónInstalación y Configuración de las smbldap-tools.

Para la administración de usuarios, en especifico agregar usuarios, usaremos el comando smbldap-useradd. Una lista delas 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 queinician con $ se refieren a parámetros ó variables definidas en archivo de configuración /etc/smbldap-tools/smbldap.conf.

Tabla 10.1. Tabla de opciones disponibles para el comando smbldap-useradd

Opción Descripción Ejemplo Valor Predeterminado

Prohibida la reproducción total o parcial de este documento. 57 de 108

Page 58: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Opción Descripción Ejemplo Valor Predeterminado

-aCrea una cuenta Windows, si no se especifica esta opción elcomando smbldap-useradd solo creará una cuentaUnix/POSIX

-wCrea una cuenta de Computadora Windows (WindowsWorkstation)

-u Establece el valor del User ID (UID) del usuario -u 1003Primer ó siguiente UIDdisponible

-gEstable el valor para el Group ID (GID). Este será el grupoprimario del usuario

-g 1003Primero ó siguiente GIDdisponible

-G

Agrega la cuenta a uno o más grupos suplementarios(Secundarios), si se van a establecer varios grupossuplementarios, cada nombre de grupo va seprado porcoma.

-G 512,550

-d Establece la ruta del directorio $HOME del usuario -d /var/usuario $userHomePrefix/usuario

-s Estable el shell de login para el usuario -s /bin/ksh $userLoginShell

-cEstablece el campo gecos del la cuenta de usuario,preferiblemente usar -N y -S para asignar Nombre yApellido

-c "UsuarioAdministrador"

$userGecos

-mCrea el directorio $HOME para el nuevo usuario y copia elcontenido de /etc/skel dentro del directorio.

-PAl terminar el comando smbldap-useradd, smbldap-passwd es invocado para establecer la contraseña delusuario

-A El usuario puede cambiar su contraseña: 0 = No, 1 = Sí -A 1

-BEl usuario debe cambiar su contraseña la primer vez queinicia sesión: 0 = No, 1 = Sí

-B 1

-CEstablece la ruta para el recurso compartido homes en elservidor Samba, usado por la opción -D

-C \\PDC\homes $userSmbHome

NOTA: Si se desea desactivar el mapeo del directorio homeen el servidor al usuario, se asigna un valor vacío:

-C ""

-D

Estable la letra de la unidad de red con la que se mapeará el$HOME del usuario en el servidor (-C) al usuario cuandoinicie sesión en el dominio. NOTA: Hay que agregar los ":"(dos puntos) al final de la letra.

-D H: $userHomeDrive

NOTA: Si no se desea mapear el home del usaurio,debemos de asignar un valor vacío.

-D ""

-FEstablece la ruta al directorio (el el servidor) del perfil deWindows para uso con perfiles móviles (Roaming Profiles)

-F \\PDC\profiles\usuario

$userProfile

NOTA: Si no se desea activar el uso de roaming profilespara el usuario se debe de asignar un valor vacio.

-F ""

-N Establece el nombre canónico del usuario -N Juan

-S Establece el surname (apellido) del usuario -S Perez

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 reproducción total o parcial de este documento. 58 de 108

Page 59: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Tiene un directorio home en /home/usuariored1 (-d)

No tiene un login shell (-s)

La cuenta NO tendrá soporte para perfiles móviles (roaming profiles) (-F "")

Y al final del comando se preguntará la contraseña del usuario (-P)

El nombre canónico 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/usuariored1Changing UNIX and samba passwords for usuariored1New password:CONTRASEÑADEUSUARIORED1Retype new password:CONTRASEÑADEUSUARIORED1

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

root@pdc:~# smbldap-useradd -a -m -P usuariored1Changing UNIX and samba passwords for usuariored1New password:CONTRASEÑADEUSUARIORED1Retype new password:CONTRASEÑADEUSUARIORED1

Digamos que para agregar un usuario que solo sera usado para ejecutar comandos administrativos y agregar maquinas aldominio, entonces deberá de pertenecer al grupo Domain Admins: Ejecutamos:

root@pdc:~# smbldap-useradd -a -m -G 512 -s /bin/bash -P usuarioadminChanging UNIX and samba passwords for usuarioadminNew password:CONTRASEÑADEUSUARIOADMINRetype new password:CONTRASEÑADEUSUARIOADMIN

Nota

Para conocer acerca de las demás opciones del comando smbldap-useradd ver la página del manualdel comand smbldap-useradd(8).

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

Para ver como configurar los privilegios para que usuarioadmin pueda unir maquinas al dominio ver la sección Delegandotareas 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 también deseas eliminar el directorio $HOME, use elparámetro -r, por ejemplo: comando:

root@pdc:~# smbldap-userdel -r usuariored1

Otros parámetros para eliminar cuentas de usuario:

Tabla 10.2. Tabla de opciones disponibles para el comando smbldap-userdel

Prohibida la reproducción total o parcial de este documento. 59 de 108

Page 60: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Opción Descripción

-r Elimina el directorio $HOME del usuario

-R Elimina el directorio $HOME del usuario de forma interactiva

Aviso

El usar la opción -r es peligroso ya que puede eliminar datos importantes del usaurio, usalo concuidado.

Para cambiar la contraseña de un usuario usamos el comando smbldap-passwd como se muestra en el siguiente ejemplo:

root@pdc:~# smbldap-passwd usuariored1Changing UNIX and samba passwords for usuariored1New password:NUEVACONTRASEÑADEUSUARIORED1Retype new password:NUEVACONTRASEÑADEUSUARIORED1

Si desea permitir que los usuarios Windows puedan cambiar su contraseña desde el mismo Windows vea la secciónPermitiendo que usuarios Windows cambien su contraseña de dominio.

Para modificar una cuenta de usuario, usamos el comando smbldap-usermod. Las opciones disponibles están listadas enla siguiente tabla:

Tabla 10.3. Tabla de opciones disponibles para el comando smbldap-usermod

Opción Descricpción Ejemplo

-c Establece el campo gecos del la cuenta de usuario-c "UsuarioAdministrador"

-d Establece la ruta del directorio $HOME del usuario -d /var/user

-u Estable el valor del User ID (UD) del usuario -u 1003

-g Estable el valor para el Group ID (GID). Este será el grupo primario del usuario -g 1003

-GAgrega la cuenta a uno o más grupos suplementarios (Secundarios), si se van a establecervarios grupos suplementarios, cada nombre de grupo va seprado por coma.

-G 512, 550

-s Estable el shell de login para el usuario -s /bin/ksh

-N Estable el nombre canónico del usaurio

-S Estable el surname (apellido) del usaurio

-PAl terminar el comando smbldap-useradd, smbldap-passwd es invocado para establecerla contraseña del usuario

-aAgrega el objectClass sambaSAMAccount a la cuenta, es decir, le agrega los atributosnecesarios para que el usuario pueda conectarse a recursos compartidos en red(SMB/CIFS) y pueda hacer login en el dominio NT/Samba.

-eEstablece la fecha de expiración para la contraseña del usuario, (Formato:YYYY-MM-DD HH:MM:SS)

-A El usuario puede cambiar su contraseña: 0 = No, 1 = Sí -A 1

-B El usuario debe cambiar su contraseña la primer vez que inicia sesión: 0 = No, 1 = Sí -B 1

-CEstablece la ruta para el recurso compartido homes en el servidor Samba, usado por laopción -D

-C \\PDC\homes

Prohibida la reproducción total o parcial de este documento. 60 de 108

Page 61: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Opción Descricpción Ejemplo

NOTA: Se se desea desactivar el mapeo del directorio home en el servidor al usuario, seasigna un valor vacío:

-C ""

-DEstable la letra de la unidad de red con la que se mapeará el $HOME del usuario en elservidor (-C) al usuario cuando inicie sesión en el dominio. NOTA: Hay que agregar los":" (dos puntos) al final de la letra.

-D H:

NOTA: Si no se desea mapear el home del usaurio, debemos de asignar un valor vacío. -D ""

-ENombre del script batch (DOS) para ejecutarse al inicio de sesión del usuario. NOTA: Laruta al logon script debe de ser relativa a la ruta del recurso [netlogon]

-E common.bat

NOTA: Si no se desea ejecutar un logon script para el usuario se debe de especificar unvalor vacío.

-E ""

-FEstablece la ruta al directorio (el el servidor) del perfil de Windows para uso con perfilesmóviles (Roaming Profiles)

-F \\PDC\profiles\usuario

NOTA: Si no se desea activar el uso de roaming profiles para el usuario se debe deasignar un valor vacio.

-F ""

-I Desabilita (desactiva) la cuenta de usuario -I 1

-J Habilita (despues de haber sido desactivada) la cuenta de usaurio -J 1

También puedes usar el comando smbldap-userinfo para actualizar la información del usuario. Este comando tambiénpuede ser usado por los usuarios para actualizar su propia información, la información que pueden cambiar los usauriosesta listada en la siguiente tabla:

Nota

Si se permite que los usuarios modifiquen su propia información, entonces se deberán de configurarlos 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 recomendación.

Tabla 10.4. Tabla de opciones disponibles para el comando smbldap-userinfo

Opción Descipción Ejemplo

-f Estable el nombre completo del usuario -f Mi Nombre con Apellidos

-w Establece el número telefónico del Trabajo -w 55 44 33 22 11

-h Establece el número telefónico de Casa -h 22 11 22 33 44

-s Establee el login shell predeterminado del usuario -s /bin/bash

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

Para la administración de grupos se usarán diferentes comandos que se explican a continuación.

Agregando Grupos

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

Prohibida la reproducción total o parcial de este documento. 61 de 108

Page 62: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Tabla 10.5. Tabla de opciones disponibles para el comando smbldap-groupadd

Opción Descipción Ejemplo

-aEl grupo será automaticamente mapeado a un grupo de Dominio(Windows). El mapeo de GID a SID es automatico.

-g gid Establece el Group ID (GID) del grupo -g 1002

-o El GID del grupo no es único.

-rRID-GRUPO

Establece el ID Relativo (RID) para el grupo Samba -r 1002

-sSID-GRUPO

Establece el SID del grupo a SID-GRUPO-s S-1-5-21-3703471949-3718591838-2324585696-1002

-t

Establece el tipo de grupo (solo grupos samba), Los valoresdisponibles son: 2 (domain group), 4 (local group) y 5 (builtingroup). El tipo de grupo predeterminado es el tipo 2 (grupo dedominio).

-t 4

-p 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 información del nuevo grupo podemos usar el comando smbldap-groupshow, por ejemplo:

root@pdc:~# smbldap-groupshow contabilidaddn: cn=contabilidad,ou=Groups,dc=example,dc=comobjectClass: top,posixGroup,sambaGroupMappingcn: contabilidadgidNumber: 1001sambaSID: S-1-5-21-1482872308-118742792-2317756604-3003sambaGroupType: 2displayName: contabilidad

TODO: ????

Eliminando Grupos

Para eliminar grupos, usaremos el comando smbldap-groupdel, por ejemplo, para eliminar el grupo contabilidadusaremos el siguiente comando:

root@pdc:~# smbldap-groupdel contabilidad

Este comando no requiere de opción alguna.

Prohibida la reproducción total o parcial de este documento. 62 de 108

Page 63: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Agregando usuarios a Grupos

Para agregar un usuario a un grupo usamos el comando smbldap-groupmod, por ejemplo, queremos agregar el usuariojmedina al grupo recién creado contabilidad, usaremos el comando:

root@pdc:~# smbldap-groupmod -m jmedina contabilidadadding user jmedina to group contabilidad

Si queremos agregar más 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:~# smbldap-groupmod -m miguel,carlos,sara contabilidadadding user miguel to group contabilidadadding user carlos to group contabilidadadding user sara to group contabilidad

Eliminando Usuarios de Grupos

Para eliminar algún usuario mienbro de un grupo usamos el comando:

root@pdc:~# smbldap-groupmod -x miguel contabilidaddeleting user miguel from group contabilidad

Si queremos eliminar más de un usuario a la vez separamos cada nombre de usuario por coma, como en el siguienteejemplo:

root@pdc:~# smbldap-groupmod -x carlos,sara contabilidaddeleting user carlos from group contabilidaddeleting user sara from group contabilidad

Tabla de contenidos

Cambiar o asignar contraseña al Root DN de OpenLDAPAgregar nuevos indices de atributos en OpenLDAPRespaldar los archivos de configuración de OpenLDAPRespaldar y Restaurar una base de datos de OpenLDAPRespaldando archivos importante de SambaRespaldando el SID del Dominio Samba

En esta sección se describen algunas de las tareas de mantenimiento básicas 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 impuestaspor las ACLs, ya que esta es una cuenta privilegiada se recomienda que se asigne una contraseña fuerte y que dichacuenta solo se use para tareas que requieran privilegios elevados.

En nuestro ejemplo en el archivo slapd.conf(5) tenemos nuestra definición de base de datos tenemos las siguientesdirectivas:

rootdn "cn=Manager,dc=example,dc=com"rootpw secret

En este ejemplo la contraseña del rootdn esta en texto plano, para cambiarla y protegerla usando un hash criptográficosiga los siguientes pasos:

Prohibida la reproducción total o parcial de este documento. 63 de 108

Page 64: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Genere el hash de la contraseña usando slappasswd:

# slappasswdNew password:Re-enter new password:{SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

Nota

El hash predefinido es SSHA, si desea cambiar el tipo de hash use la opción -h para definir unhash diferente, por ejemplo: -h {CRYPT}, para más información vea la pagina del manual deslappasswd(8).

1.

Copie el HASH {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6 y cambielo en el valor rootpw del archivoslapd.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 enDebian/Ubuntu se recomiendan los permisos: root:openldap / 640.

2.

Para que el cambio tome efecto reinicie el servicio LDAP:

# /etc/init.d/slapd restart

Tambien puede mantener la contraseña del rootdn fuera del archivo slapd.conf(5), es decir, puede eliminar la directivarootpw 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 contraseña de forma dinamica sin reiniciar el servicio usando una operación de modificacióndesde cualquier cliente LDAP.

Si olvida la contraseña siempre puede realizar la configuración manual usando slappasswd(8) y slapd.conf(5).

Para mantener la entrada del RootDN en el directorio LDAP siga este procedimiento:

Cree el archivo /tmp/rootdn.ldif con la entrada para la cuenta del root dn en formato LDIF:

dn: cn=Manager,dc=example,dc=comobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: Managerdescription: LDAP ManageruserPassword: {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

1.

Agrega el LDIF usando ldapadd:

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

2.

Se recomienda que no use la cuenta cn=Manager,dc=example,dc=com en sus tareas de administración de rutina, en sulugar se recomienda que cree una cuenta privilegiada para tales propositos, por ejemplo en Debian/Ubuntu se usa el DNde la cuenta cn=admin,dc=example,dc=com la cual ya tiene los ACLs predefinidos para que tenga permisos completossobre la base de datos predefinida.

Prohibida la reproducción total o parcial de este documento. 64 de 108

Page 65: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Referencias adicionales:

man slapd.conf(5)

man slapd(8)

man slappasswd(8)

man slapadd(8)

OpenLDAP Software 2.4 Administrator’s Guide - Directory Backups

Cuando usa OpenLDAP con backends basados en Berkeley DB por ejemplo el backend tipo hdb debe de tener indexadoslos atributos más utilizados en las consultas LDAP y así incrementar el rendimiento en las consultas desde las aplicacionesy 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 locual se puede reflejar en bajo rendimiento del servicio LDAP.

Para agregar uno o más atributos a la lista de indices para una base de datos en OpenLDAP debe de seguir el siguienteprocedimiento:

Agregar definición de indice para los atributos deseados al archivo de configuración del servicio OpenLDAP:

# vim /etc/ldap/slapd.conf

Nota

Estas tareas se realizan sobre distribuciones basadas en Debian como Unbuntu.

Bajo la definición 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 indexarán los atributos para las nuevas entradas, para que los atributosexistentes también sean indexados debe detener el servicio slapd y ejecutar el programa slapindex

1.

Detener servicio slapd:

# /etc/init.d/slapd stop

2.

Indexar los atributos memberUid y uniqueMember:

# slapindex -v memberUid uniqueMember

3.

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

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

4.

Ahora ya puede iniciar el servicio slapd con todos los atributos indexados.

# /etc/init.d/slapd stop

5.

Prohibida la reproducción total o parcial de este documento. 65 de 108

Page 66: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 yPAM.

En la siguiente tabla se muestra una lista:

Tabla 11.1. Directorios de configuración 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 sección 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 serán generados en formato LDIF. Suponiendo que en el archivoslapd.conf(5) tenemos una definición 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 #1suffix "dc=example,dc=com"# Where the database file are physically stored for database #1directory "/var/lib/ldap"

El programa slapcat(8) lee la información de la base de datos en orden secuencial y genera la salida correspondiente enformato LDIF incluyendo atributos de usuario y operacionales, el programa slapcat solo respaldara las entradas que seleyeron en el momento de la ejecución, si en el momento de que slapcat esta ejecutandose se realiza una operación deescritura 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 enejecución 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 dichoscambios puedan afectar las aplicaciones o clientes LDAP se recomienda que detenga el servicio slapd antes de generar elrespaldo 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:

Detener el servicio slapd:

# /etc/init.d/slapd stop

1.

Prohibida la reproducción total o parcial de este documento. 66 de 108

Page 67: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 enel 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 elpaso dos del ejemplo anterior.

Se recomienda que el archivo del respaldo sea movido a un lugar fuera del servidor.

2.

Para restaurar la base de datos a partir del archivo LDIF generado por slapcat siga el siguiente procedimiento:

Apagar el servicio slapd:

# /etc/init.d/slapd stop

1.

Limpiar el directorio de base de datos de slapd:

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

2.

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

3.

Opcionalmente Re indexe todos los atributos:

# slapindex -v

4.

Re establecer permisos al directorio de datos:

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

5.

Iniciar el servicio slapd:

# /etc/init.d/slapd start

6.

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 Administrator’s 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 reproducción total o parcial de este documento. 67 de 108

Page 68: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

/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 elnombre 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 sería sufrir el dolor de tener que recuperar los perfilesde 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 archivosmb.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 sistemaConfiguración de los parámetros de red en el equipo Windows

Información necesaria para configurar los parámetros de redConfigurando correctamente los parámetros de redVerificación de los Parámetros de Red

Configuración del nombre de equipo WindowsUniendo el equipo Windows al Dominio SambaComo Iniciar Sesión el Dominio SambaComo permitir que un usuario cambie la contraseña de dominioComo mapear una unidad de disco en red al directorio home en el servidorComo compartir archivos en la red a usuarios y grupos de dominioComo habilitar el uso de scripts de inicio de sesión en un dominio Samba

En este capitulo veremos como unir un equipo windows a una red basada en un dominio Samba/NT. cuando el equipowindows es unido al dominio se dice que es un equipo miembro de dominio, el procedimiento para unir un equipoWindows a un Dominio Samba/NT incluye los siguientes pasos:

Configurar los parámetros de red en el equipo Windows.

Configuración del nombre de equipo Windows.

Unir el equipo al dominio Samba.

Iniciar sesión en el dominio Samba.

Además de unir el equipo windows al dominio samba, veremos algunas otras operaciones que se deben o pueden realizaren un entorno de red windows con un controlador de dominio samba relacionados a la compartición de recursos comoarchivos e impresoras.

Antes de continuar con el procedimiento debe asegurarse de cumplir con los requerimientos de red y de sistema que selistan en la siguiente sección.

Prohibida la reproducción total o parcial de este documento. 68 de 108

Page 69: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 WindowsHome Edition no pueden participar por completo en un Dominio de Red por lo tanto no se podrá utilizar el siguienteprocedimiento.

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 cuentaroot/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 dominioSamba.

En esta sección se describe como verificar que los parámetros de red en nuestro equipo Windows estén correctamenteconfigurados.

Información necesaria para configurar los parámetros de red

Antes de unir un equipo Windows al dominio, verificaremos que los parámetros de red estén correctamente configurados,recuerde que la información 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.

Dirección IP de red para el dominio EXAMPLE : 192.168.221.0/24.

Dirección IP del servidor PDC: 192.168.221.3.

Dirección IP del gateway para la red LAN: 192.168.221.254.

Dirección IP del servidor DNS primario: 192.168.221.253.

Dirección IP del servidor DNS secundario: 192.168.221.254.

Dirección IP del servidor WINS: 192.168.221.3.

La información 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.

Dirección IP: 192.168.221.50/24.

El soporte NetBIOS sobre TCP/IP debe estar activado en el cliente windows.

Prohibida la reproducción total o parcial de este documento. 69 de 108

Page 70: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Configurando correctamente los parámetros de red

Para verificar o cambiar estos parámetros ir a Panel de Control=>Conexiones de Red e Internet=>Conexiones de Red.

Dar click derecho al icono de Conexión de área local, seleccionar el elemento Protocolo Internet (TCP/IP) y dar clicken el botón Propiedades

Dentro del cuadro de dialogo Propiedades de Protocolo Internet (TCP/IP) dar click en el botón de OpcionesAvanzadas

Figura 12.1. Propiedades de Protocolo Internet (TCP/IP) General

En el cuadro de dialogo Configuración avanzada de TCP/IP después damos click en la pestaña de nombre WINS

En esta pestaña vamos a agregar la dirección IP de nuestro servidor WINS (NetBIOS Name Server ó NBNS), para agregarel servidor WINS damos click en el botón Agregar como se muestra en la imagen de abajo.

Figura 12.2. Propiedades de Protocolo Internet (TCP/IP) Configuraciones WINS

Prohibida la reproducción total o parcial de este documento. 70 de 108

Page 71: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Agregamos la dirección 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 reproducción total o parcial de este documento. 71 de 108

Page 72: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Después de agregar la dirección IP del servidor WINS damos click en el botón Agregar y el servidor WINS aparecerá enla lista.

Nota

Podemos agregar más de un servidor WINS, el sistema los evaluará en el orden en que aparecen.

Para terminar nuestras configuraciones damos click en el botón Aceptar para regresarnos al cuadro de dialogo deconfiguraciones avanzadas, estando en el cuadro de dialogo de Propiedades de Protocolo Internet (TCP/IP) Generaldamos click en el botón Aceptar y por ultimo damos click en el botón Cerrar para que nuestros cambios tomen efecto.

Verificación de los Parámetros de Red

Solo para confirmar que la configuración si hay tomado efecto damos doble click sobre el icono de Conexión de árealocal.

Después damos click en la pestaña Soporte.

Ahí nos muestra una parte de la configuración de red. damos click en el botón Detalles... para ver la informacióncompleta de la configuración de red.

Figura 12.4. Viendo los detalles de la conexión de red

Prohibida la reproducción total o parcial de este documento. 72 de 108

Page 73: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Si después de verificar los detalles de los parámetros de red todo esta bien, entonces podemos continuar con el paso deconfiguración del nombre de equipo.

Verificación de nombre de equipo y grupo de trabajo.

Esta es una computadora recién instalada y en el proceso de instalación 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 pestaña de Nombre de equipo donde veremos algoaśi:

Figura 12.5. Propiedades del sistema, Nombre de Equipo

Prohibida la reproducción total o parcial de este documento. 73 de 108

Page 74: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Si se desea cambiar el nombre del equipo (recordar que este nombre será como nos verán en la red), podemos dar click enel botón Cambiar... y nos aparecerá una ventana como la siguiente.

Figura 12.6. Propiedades del sistema, Cambios en el nombre de equipo

Prohibida la reproducción total o parcial de este documento. 74 de 108

Page 75: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 elproceso de unir la maquina al dominio.

Para unir el equipo al dominio podemos usar el Asistente para identificación de red el cual nos llevará paso a paso en elproceso para que el equipo sea un miembro del dominio de red Samba/NT.

Lanzamos el asistente de identificación de red dando click en el botón Id. de red.

Figura 12.7. Usando el Asistente de Identificación de red

Prohibida la reproducción total o parcial de este documento. 75 de 108

Page 76: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

La primer pantalla nos da la bienvenida al asistente para conectar el equipo a una red.

Figura 12.8. Asistente de identificación de red, paso 1

Prohibida la reproducción total o parcial de este documento. 76 de 108

Page 77: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Para continuar con el asistente damos click en el botón Siguiente >

El siguiente paso nos pregunta que tipo de equipo tenemos, en nuestro caso seleccionamos la opción que dice: El equipoforma parte de una red organizativa y lo utilizo para conectarme a otros equipos en el trabajo y damos en el botónSiguiente > para continuar.

Figura 12.9. Asistente de identificación de red, paso 2

Prohibida la reproducción total o parcial de este documento. 77 de 108

Page 78: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

En el siguiente paso nos pregunta el tipo de red de nuestra organización, elegimos la opción: Mi compañia utiliza unared con dominio y damos click en el botón Siguiente >.

Figura 12.10. Asistente de identificación de red, paso 3

Prohibida la reproducción total o parcial de este documento. 78 de 108

Page 79: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

En el siguiente paso del asistente nos da un da un resumen de la información de red que necesitamos para unir este equipoal dominio

Figura 12.11. Asistente de identificación de red, paso 4

Asistente de identificación de red, paso 4

A continuación se muestra la información requerida junto con la información correspondiente a nuestro dominio:

Nombre de usuario: jperez.

Contraseña de usuario: 123456.

Cuenta de usuario del dominio: jperez.

Es posible que también necesite:

Nombre del equipo: winpc001.

Dominio del equipo: EXAMPLE.

Además necesitaremos la contraseña del usuario root/Administrator del dominio, esta cuenta será necesaria para poder

Prohibida la reproducción total o parcial de este documento. 79 de 108

Page 80: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

unir la maquina al dominio y crear la cuenta de computadora correspondiente a winpc001. Configuramos estainformación como se muestra en la siguiente imagen:

Figura 12.12. Asistente de identificación de red, paso 5

Asistente de identificación de red, paso 5

Después de ingresar la información damos click en el botón Siguiente >.

Al dar click en Siguiente el asistente tratará de encontrar una cuenta de equipo de nombre winpc001 en el dominioEXAMPLE, si no la encuentra nos mostrará un cuadro como el siguiente, donde nos avisa que no encontró la cuenta deequipo en el dominio, nos pide escribir nuevamente el nombre de equipo y el dominio.

Figura 12.13. Asistente de identificación de red, paso 6

Asistente de identificación de red, paso 6

Damos click en el botón Siguiente >, ya que la cuenta de equipo no se encontró en el dominio EXAMPLE, necesitaremosusar una cuenta con privilegios administrativos de dominio y su contraseña para que por medio del asistente deidentificación de red se cree la cuenta de equipo winpc001 en el dominio EXAMPLE.

Figura 12.14. Asistente de identificación de red, paso 7

Asistente de identificación de red, paso 7

Ya que no tenemos cuentas con privilegios administrativos de dominio, usaremos la cuenta de root/Administrator que secreo con smbldap-populate, ingresamos su contraseña y el nombre de dominio EXAMPLE como se muestra en laimagen de arriba, después damos click en el botón Aceptar para continuar.

Si las credenciales que presentamos fueron correctas, en la siguiente ventana, nos dirá que podemos agregar un usuario alequipo, cuando se agrega un usuario a este equipo se le concede acceso a todos los recursos del equipo y a todos losrecursos compartidos en la red.

Figura 12.15. Asistente de identificación de red, paso 8

Asistente de identificación de red, paso 8

Usaremos el nombre de usuario: jperez y el nombre de dominio: EXAMPLE, como se muestra en la imagen de arriba ydamos click en el botón 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 estándar.

Figura 12.16. Asistente de identificación de red, paso 9

Asistente de identificación de red, paso 9

El nivel de acceso Usuario estándar permite que los usuarios pueden cambiar muchas configuraciones del sistema einstalar 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 nopueden instalar programas o cambiar la configuración del sistema.

En Otros: podemos elegir otros niveles de acceso, por ejemplo, podemos dar acceso de Administrator al usuario, estoquiere decir que el usuario jperez tendrá todos los privilegios sobre el equipo WINPC001, lo cual significa que puede

Prohibida la reproducción total o parcial de este documento. 80 de 108

Page 81: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

cambiar configuraciones, puede instalar y desinstalar programas que afecten el sistema, es decir, puede hacer lo que le dela gana sobre el equipo, incluso formatear :D.

Por ahora seleccionamos el nivel de acceso Usuario estándar y damos click en el botón Siguiente > para finalizar.

Figura 12.17. Asistente de identificación de red, Ultimo Paso

El último paso nos dice que ya hemos completado con éxito el asistente para identificación de red, y nos solicita re iniciarel equipo para que los cambios tengan efecto. Damos click en el botón Finalizar.

Figura 12.18. Asistente de identificación de red, Re iniciar el equipo

Asistente de identificación de red, Re iniciar el equipo

Damos click en el botón Aceptar y nos lleva a la siguiente imagen:

Figura 12.19. Asistente de identificación de red, Alerta de re iniciar el equipo

Prohibida la reproducción total o parcial de este documento. 81 de 108

Page 82: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Para que los cambios que hicimos en el asistente de identificación de red tenga efecto es necesario re iniciar el equipo,damos click en el botón Aceptar para terminar y re iniciar.

Si el equipo se unió satisfactoriamente al dominio, Samba creará una cuenta de computadora, la cual autoriza al equipopara acceder a los recursos de la red. Puede ver la lista de cuentas de computadoras con el comando pdbedit, porejemplo:

root@pdc:~# pdbedit -L# pdbedit -Lroot:0:rootnobody:65534:nobodyjperez:1009:Juan Perezwinpc001$:1011:WINPC001$

Las cuentas de computadora terminan con el simbólo $, use el parámetro -V para ver más información acerca de lacuenta, 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-1001Primary Group SID: S-1-5-21-1482872308-118742792-2317756604-515Full Name: WINPC001$Home Directory: HomeDir Drive: Logon Script: logon.batProfile Path: Domain: EXAMPLEAccount desc: ComputerWorkstations: Munged dial: Logon time: 0

Prohibida la reproducción total o parcial de este documento. 82 de 108

Page 83: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Logoff time: neverKickoff time: neverPassword last set: 0Password can change: 0Password must change: 0Last bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Nota

Las cuentas de computadora tienen el Account Flags W, el cual significa que es un workstation nouna cuenta de usuario.

Las cuentas de computadora se crean en la OU=Computers. En la siguiente sección veremos como iniciar sesión en undominio de red.

Despues de reiniciar el equipo nos cambiará la ventana de inicio de sesión a como se muestra a continuación.

Figura 12.20. Inicio de sesión de Windows - Pantalla inicial

Inicio de sesión de Windows - Pantalla inicial

Para poder iniciar sesión presionamos la combinación de teclas Ctrl+Alt+Supr y nos mostrará una ventana como lasiguiente:

Figura 12.21. Inicio de sesión de Windows - Pantalla predeterminada de login

Inicio de sesión de Windows - Pantalla predeterminada de login

Si queremos ver en que equipo o dominio queremos iniciar sesión podemos dar click en el botón "Opciones" y nosmostrará algo así:

Figura 12.22. Inicio de sesión de Windows - Pantalla con opciones activa

Inicio de sesión de Windows - Pantalla con opciones activa

Nota

Si queremos conectarnos al equipo local, damos click en el menú desplegable de Conectarse a: yelegimos: WINPC001 (este equipo).

Después de iniciar sesión en el dominio el menú de inicio se verá así:

Figura 12.23. Inicio de sesión - Menú inicio

Inicio de sesión - Menú inicio

Ahora que el usuario a iniciado sesión en el equipo usando las credenciales del dominio, el usuario podrá acceder a losrecuros a los que esta autorizado.

Prohibida la reproducción total o parcial de este documento. 83 de 108

Page 84: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Es posible dar acceso a que el usuario pueda actualizar su contraseña de dominio desde el sistema, esto es recomendablecuando se manejan politicas de expiración de contraseñas.

Para autorizar a un usuario a cambiar su contraseña de dominio desde windows use el comando smbldap-usermod con elparámetro -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ú:

Seleccióne el botón Cambiar contraseña..., y entonces verá el siguiente cuadro:

Escriba su contraseña actual y la nueva dos veces para actualizarla, presione Aceptar para aplicar la nueva contraseña.

Si la contraseña es actualizada satisfactoriamente, recibirá el siguiente mensaje de confirmación:

Cuando cambia la contraseña desde windows Samba actualiza la contraseña en los atributos sambaLMPassword ysambaNTPassword, así como la contraseña Unix/LDAP en el atributo userPassword automáticamente.

Prohibida la reproducción total o parcial de este documento. 84 de 108

Page 85: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Para desactivar el cambio de contraseña a una cuenta que previamente le dio acceso use smbldap-usermod con elparámetro -A 0, por ejemplo:

# smbldap-usermod -A 0 jperez

Si el usuario intenta cambiar su contraseña de dominio y no tiene autorización para hacerlo recibirá el siguiente mensaje.

En esta sección veremos como conectar una unidad de disco en red en un cliente de dominio windows, esta funcionalidadpermite que los usuarios del dominio puedan acceder a sus archivos personales que se encuentran en el directorio $HOMEdel 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 formaglobal para todos los usuarios del dominio y la otra es de forma individual por cada usuario.

Para el método global debe definir el parámetro logon home y logon drive en la sección [global] del archivo deconfiguración 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á vacía, por ejemplo:

logon home = logon drive =

Para definir el logon home de forma individual para un usuario del dominio puede usar el comando smbldap-usermodcon el parámetro -C ó --sambaHomePath, y para definir el logon drive de forma individual use el parámetro -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 jperezUnix username: jperezNT username: jperezAccount Flags: [U ]User SID: S-1-5-21-1482872308-118742792-2317756604-3018Primary Group SID: S-1-5-21-1482872308-118742792-2317756604-513Full Name: Juan PerezHome Directory: \\PDC\jperezHomeDir Drive: H:Logon Script: Profile Path: Domain: EXAMPLEAccount desc: Workstations: Munged dial: Logon time: 0Logoff time: neverKickoff time: neverPassword last set: Mon, 21 Mar 2011 21:26:39 CSTPassword can change: Mon, 21 Mar 2011 21:26:39 CSTPassword must change: neverLast bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

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

Prohibida la reproducción total o parcial de este documento. 85 de 108

Page 86: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 serán almacenados en su directorio$HOME (/home/jperez) en el servidor.

Para desactivar el logon home para un usuario use el comando smbldap-usermod con el parámetro -C, y para desactivarel logon drive use el parámetro -D o --sambaHomeDrive con un valor núlo, por ejemplo:

root@pdc:~# smbldap-usermod -C '' -D '' jperez

Para más información de como conectar unidades de red ver el articulo Cómo conectar y desconectar una unidad de reden Windows XP.

En esta sección se explicará como un usuario de dominio puede compartir una carpeta en su equipo local a ciertosmiembros y grupos del dominio, la carpeta compartida tendrá las siguientes caracteristicas:

La carpeta C:\ParaGrupoContabilidad será compartida.

Los miembros del grupo de dominio contabilidad tendrán acceso total.

El usuario de dominio efuentes del departamento Dirección 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 botón derecho sobre la carpeta y damos clic en Compartir y seguridad..., esto nos llevará almenú para configurar los parametros para compartir la carpeta, así como los permisos que tendrán los usuarios y gruposde 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 botón 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 reproducción total o parcial de este documento. 86 de 108

Page 87: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

permisos a cada uno.

Nota

Los nombres de usuarios y grupos de dominio se deben de escribir usando la siguiente notación:

Nombre de grupo: EXAMPLE\contabilidad.

Nombre de usuario: EXAMPLE\efuentes.

Nombre de usuario: EXAMPLE\hperez.

Damos clic en el botón Agregar.... Y en el recuadro que dice: Escriba los nombres de objecto que desea seleccionarcada 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 muestraen 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. Asignaremoslos permisos de la siguiente forma:

Eliminar el grupo Todos ya que solo se da acceso a algunos miembros del dominio1.

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

2.

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

3.

Seleccionar el usuario hperez (EXAMPLE\hperez) y verifique que solo tiene permisos de Leer tal y como se hizocon EXAMPLE\efuentes.

4.

Para terminar de clic en Aceptar y otra vez en Aceptar para que los cambios tomen efecto.5.

Puede probar directamente desde otra maquina windows en la que hay iniciado sesión algún usuario miembro del grupocontabilidad.

Prohibida la reproducción total o parcial de este documento. 87 de 108

Page 88: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Hay dos formas de habilitar la ejecución de un logon sript a los usuarios del dominio Samba, uno es hacerlo de formaglobal para todos los usuarios del dominio y la otra es de forma individual por cada usuario.

Para el método global debe definir el parámetro logon script en la sección [global] del archivo de configuración desamba /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á vacía, por ejemplo:

logon script =

La ruta absoluta al script de inicio de sesión es relativa a la ruta del recurso compartido [netlogon], en la sección deinstalación 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 /yesnet 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 elparámetro -E ó --sambaLogonScript, por ejemplo:

# smbldap-usermod -E logon.bat jperez

Use el comando pdbedit para validar el cambio:

# pdbedit -Lv jperezUnix username: jperezNT username: jperezAccount Flags: [U ]User SID: S-1-5-21-1482872308-118742792-2317756604-3018Primary Group SID: S-1-5-21-1482872308-118742792-2317756604-513Full Name: Juan PerezHome Directory: \\PDC\jperezHomeDir Drive: H:Logon Script: logon.batProfile Path: Domain: EXAMPLEAccount desc: Workstations: Munged dial: Logon time: 0Logoff time: neverKickoff time: neverPassword last set: Mon, 21 Mar 2011 22:29:31 CSTPassword can change: Mon, 21 Mar 2011 22:29:31 CSTPassword must change: neverLast bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Ahora inicie una nueva sesión y verifique que el reloj del sistema esta sincronizado con el servidor PDC y que se creo launidad 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 parámetro -E con un valornúlo, por ejemplo:

root@pdc:~# smbldap-usermod -E '' jperez

Prohibida la reproducción total o parcial de este documento. 88 de 108

Page 89: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Tabla de contenidos

Información preliminar del equipo cliente LinuxInstalando el software necesario para unir cliente Linux a Dominio LDAPConfigurando la resolución de cuentas de usuario y grupos mediante LDAP en clientes LinuxConfigurando la Autorización de cuentas de usuario y grupos mediante LDAP en clientes Linux con PAM

Configuración del modulo authConfiguración del modulo accountConfiguración del modulo sessionConfiguración del modulo passwordProbando la autorización mediante PAM LDAP en cliente Linux

Configurando resolución de cuentas de dominio mediante SambaAutenticación de usuarios y grupos de dominio Samba en clientes LinuxMontaje automático de carpetas compartidas mediante pam_mountCarpetas compartidas con ACL a usuarios y grupos de dominioAutenticando cuentas de usuario de dominio de forma desconectada

En este capitulo veremos los procedomiento requeridos para integrar un sistema cliente Linux al dominioEXAMPLE.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 autenticación 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 laautenticación centralizada y comunicarse con los otros hosts, sean servidores linux o windows.

Configurando la resolución de Identidades con NSS_LDAP

Esta máquina se llama LNXDSKT01

Tiene la dirección IP: 192.168.1.81

Configuración de la autenticación de usuarios y grupos UNIX vía PAM_LDAP

VER CAPITULO Configuración de la resolución de Identidades con NSS_LDAP

Instale el paquete libnss-ldap:

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

Para la resolución de cuentas de usuario y grupos Unix mediante LDAP usaremos el paquete libnss-ldap, la configuraciónes similar al servidor, solo cambiará la dirección IP del servidor LDAP.

Configuramos el archivo /etc/ldap.conf para libnss-ldap:

Prohibida la reproducción total o parcial de este documento. 89 de 108

Page 90: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

# Config file for libnss-ldap and libpam-ldap

uri ldap://192.168.1.10/ldap_version 3scope sub

base dc=example,dc=com

pam_filter objectclass=posixAccountpam_login_attribute uidpam_member_attribute memberuid

pam_password exop

nss_base_passwd ou=Users,dc=example,dc=comnss_base_passwd ou=Computers,dc=example,dc=comnss_base_shadow ou=Users,dc=example,dc=comnss_base_group ou=Groups,dc=example,dc=com

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

Cambiamos el archivo de configuración /etc/nsswitch.conf para que utilize la fuente LDAP que recien configuramos:

passwd: compat ldapgroup: compat ldapshadow: compat ldap

hosts: wins files mdns4_minimal [NOTFOUND=return] dns mdns4

Probando la resolución de usuarios vía archivos y LDAP:

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

Tambíen podemos probar la resolución para grupos:

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

Si despues de hacer las pruebas anteriores obtienes los mismos resultados significa que la resolución de cuentas de usuarioy grupo mediante LDAP esta funcionando correctamente en el sistema. El siguiente paso es la configuración de laautorización 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 configuración de los modulos de autenticación PAM, haremos un respaldo deldirectorio /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 reproducción total o parcial de este documento. 90 de 108

Page 91: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Configuración del modulo auth

Configurar los archivos de acuerdo a:

root@ushldap:~# cat /etc/pam.d/common-authauth sufficient pam_unix.so likeauth nullokauth sufficient pam_ldap.so use_first_passauth required pam_deny.so

Configuración del modulo account

config de

root@ushldap:~# cat /etc/pam.d/common-accountaccount required pam_unix.soaccount sufficient pam_ldap.so

Configuración del modulo session

azdfasf

Connfigurando la Autorización (Authz) con PAM LDAP:

root@ushldap:~# cat /etc/pam.d/common-sessionsession required pam_mkhomedir.so skel=/etc/skel/ umask=0022session required pam_unix.sosession optional pam_ldap.so

Configuración del modulo password

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

Probando la autorización mediante PAM LDAP en cliente Linux

Realice prueba de login local vía TTY, remoto SSH y login gráfico con GDM y KDM.

Ahora configuraremos la Autorización de cuentas de usuarios y grupos LDAP mediante los modulos de autenticaciónPAM. Para más detalles acerca de la configuración de PAM y LDAP en el cliente Linux seguir los pasos descritos en lasección "Configurando los modulos de autenticación de PAM"

Ahora mostraremos solo los archivos que se modifican.

Prohibida la reproducción total o parcial de este documento. 91 de 108

Page 92: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Instale los paquetes samba y smbclient:

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

Ahora creamos el archivo de configuración con el siguiente contenido:

## Archivo de configuración 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 codificación ===================

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 contraseña del admin ldap:

root@jmlap:~# smbpasswd -WSetting stored password for "cn=admin,dc=example,dc=com" in secrets.tdbNew SMB password:ldapadminRetype new SMB password:ldapadmin

Reiniciamos samba para que los cambios tomen efecto:

Prohibida la reproducción total o parcial de este documento. 92 de 108

Page 93: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Ahora verificamos que samba pueda leer las cuentas de dominio:

root@jmlap:~# pdbedit -Lroot:0:rootnobody:65534:nobodyelconta:1000:Nombre Contadorasistenteconta:1001:asistentecontadirectora:1002:directorajamdvwxpp$: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 asistentefinanzasuid=1004(asistentefinanzas) gid=1004(finanzas) groups=1004(finanzas)root@jmlap:~# id elcontauid=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 rootPassword:dominioadminJoined domain EXAMPLE.

Podemos utilizar el mismo comando net para obtener infomación del dominio al que nos unimos:

root@jmlap:~# net rpc info -U AdministratorPassword:Domain Name: EXAMPLEDomain SID: S-1-5-21-2911508632-2405292923-4115677068Sequence number: 1232322213Num users: 6Num domain groups: 7Num local groups: 0

En esta sección veremos como configurar un sistema cliente Linux para que cuando inicie sesion en el sistema se monteautomáticamente un recurso compartido en red, como por ejemplo un directorio SAMBA (cifs) o NFS, y que se desmonteautomáticamente cuando el usuario cierra la sesión.

El montaje automático lo realizaremos con el modulo PAM pam-mount, con pam-mount es posible montar de formaautomática recursos compartidos en red cuando el usuario inicia sesión en el sistema.

Para poder automontar volumens samba primero instalaremos el paquete libpam_mount y despues crearemos unaconfiguración para montar el volumen.

Instale el paquete libpam_mount:

$ sudo apt-get install libpam_mount

Agregar al archivo de configuración /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 reproducción total o parcial de este documento. 93 de 108

Page 94: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

Al final:

session optional pam_mount.so

Por ejemplo:

session required pam_unix.sosession optional pam_ldap.sosession optional pam_mount.so

Agregar a /etc/pam.d/common-auth:

auth optional pam_mount.so use_first_pass

Por ejemplo:

auth sufficient pam_unix.so likeauth nullokauth sufficient pam_ldap.so use_first_passauth optional pam_mount.so use_first_passauth required pam_deny.so

Con esto, al hacer login gráfico co KDE automaticamente pasará la contraseña al modulo pam_mount y montará elvolumen.

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 configuración de pam_mount creará eldirectorio automáticamente si no existe. El parametro de configuración para la creación automática de directorios depuntos de montaje es mkmountpoint y esta activada por default en el archivo de conifguración instalado por default enUbuntu, podemos ver un ejemplo de la configuración 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 willbe 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 también puede configurar si usted deseaque el directorio del punto de montaje sea eliminado automáticamente al cerrar la sesión.

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 partición/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 reproducción total o parcial de este documento. 94 de 108

Page 95: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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 dueño

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 servidorLDAP 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 configuración /etc/ldap/slapd.conf (Servidor slapd)El archivo de configuración /etc/default/slapdEl archivo de configuración /etc/ldap/ldap.conf (Cliente LDAP)El archivo de configuración /etc/smbldap-tools/smbldap_bind.confEl archivo de configuración /etc/smbldap-tools/smbldap.confEl archivo de configuración smb.confEl archivo de configuración /etc/ldap.conf (NSS_LDAP y PAM_LDAP)

Parrafo.

Prohibida la reproducción total o parcial de este documento. 95 de 108

Page 96: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Historial de revisionesRevisión 0.70 2007-09-12 Jorge Medina

Documento Inicial

Revisión 0.80 2008-07-17 Jorge Medina

Revisión para Ubuntu Hardy Server 8.04

Revisión 0.81 2008-08-02 Jorge Medina

Terminado el capitulo: Administración de cuentas Unix y Samba vía smbldap-tools

Revisión 0.82 2008-08-16 Jorge Medina

Sección de clientes de dominio windows terminada.

Revisión 0.83 2009-01-12 Jorge Medina

Sección describiendo modulos de PAMi, diagrama del DIT hecho en kivio y actualización caracteristicasimplementación.

Revisión 0.84 2009-01-22 Jorge Medina

Se agregaron los comandos para que un cliente linux se utilice LDAP y PAM para la autenticación, y también se agrególa información para unirlo al dominio samba.

Se agregaron ejemplos para utilizar las listas de control de acceso (ACLs) y dar permisos avanzados utiilizando usuariosy grupos de dominio.

Se agrego un ejemplo para montaje automatico de volumens samba por medio de PAM MOUNT

Revisión 0.85 2009-01-31 Jorge Medina

Se agregaron las opciones para poner nombre canonico (GivenName) y Apellido (sn) el cual automáticamente forma elatributo 'gecos' con ambos atributos.

Se agregaron ligas a proximos capitulos sobre privilegios

Se agregó información básica del logon script

Revisión 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 información para configurar los logs de LDAP usando sysklogd

Se agrego información para configurar los logs de LDAP usando syslog-ng

Revisión 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

Revisión 0.88 2010-02-07 Jorge Medina

Prohibida la reproducción total o parcial de este documento. 96 de 108

Page 97: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Correji varios errores de en las sintaxis de comandos y configuraciones, revise el proceso de instalacion ya que habia unproblema para seguir el asistente, varias mejoras en secciones de indices y acls.

Correji el orden de configuracion de los logon scripts

Revisión 0.89 2011-02-22 Jorge Medina

Actualización del capitulo de instalación openldap

Cambios en el DIT para reflejar ou=Computers

Actualización del capitulo de mantenimiento con secciones: Asignar contraseña a rootdn, Respaldar y restaurar archivosde configuración y bases de datos OpenLDAP, Agregar nuevos indices de atributos en OpenLDAP y Ligar sección deatributos en capitulo de instalación.

Revisión 0.90 2011-03-13 Jorge Medina

Mayor información sobre la biblioteca NSS con cuentas locales y LDAP.

Corrección 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.comy red 192.168.221.0/24 para que sea más consistente con otra documentación.

Correcciones menores de sintaxis en ejemplos de línea de comando y archivos de configuración.

Revisión 0.91 2011-03-13 Jorge Medina

Agregue una introducción de verdad donde explico los beneficios generales de la implementación tanto para unix/linuxcomo 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 rotación con sysklogd y syslog-ng.

Amplie la información sobre las caractaristicas de la implementación, tanto para entornos unix/linux y windows.

Pequeña correccion en ejemplo para agregar usuario unix.

Por fin agregue un resumen generalizao.

Revisión 0.92 2011-03-22 Jorge Medina

Actualizacion en introducción y requerimientos.

Actualizacion de ejmplos con dominio EXAMPLE y usuario jperez.

Ejemplos para permitir cambiar contraseña 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.

Revisión 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 loscomentarios.

Mas explicacion de ejemplo de mapeo de grupos windows a unix y referencias de SID, gracias a Angel por loscomentarios.

Revisión 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 Instalación y Configuración del servidor OpenLDAP

Versión 1.2, Noviembre 2002

Prohibida la reproducción total o parcial de este documento. 97 de 108

Page 98: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Tabla de contenidos

PREÁMBULOAPLICABILIDAD Y DEFINICIONESCOPIA LITERALCOPIADO EN CANTIDADMODIFICACIONESCOMBINACIÓN DE DOCUMENTOSCOLECCIONES DE DOCUMENTOSAGREGACIÓN CON TRABAJOS INDEPENDIENTESTRADUCCIÓNTERMINACIÓNREVISIONES FUTURAS DE ESTA LICENCIAADENDA: Cómo usar esta Licencia en sus documentos

This is an unofficial translation of the GNU Free Documentation License into Spanish. It was not publishedby the Free Software Foundation, and does not legally state the distribution terms for documentation that usesthe GNU FDL -- only the original English text of the GNU FDL does that. However, we hope that thistranslation will help Spanish speakers understand the GNU FDL better.

Ésta es una traducción no oficial de la GNU Free Document License a Español (Castellano). No ha sidopublicada por la Free Software Foundation y no establece legalmente los términos de distribución paratrabajos que usen la GFDL (sólo el texto de la versión original en Inglés de la GFDL lo hace). Sin embargo,esperamos que esta traducción ayude los hispanohablantes a entender mejor la GFDL. La versión original dela GFDL esta disponible en la Free Software Foundation.

Esta traducción está basada en una de la versión 1.1 de Igor Támara y Pablo Reyes. Sin embargo laresponsabilidad de su interpretación es de Joaquín Seoane.

Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA02111-1307 USA. Se permite la copia y distribución de copias literales de este documento de licencia, pero no

se permiten cambios[1].

El propósito de esta Licencia es permitir que un manual, libro de texto, u otro documento escrito sea libre en el sentido delibertad: asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera

comercial o no. En segundo término, esta Licencia proporciona al autor y al editor[2] una manera de obtenerreconocimiento 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 elmismo sentido. Complementa la Licencia Pública General de GNU, que es una licencia tipo copyleft diseñada para elsoftware libre.

Hemos diseñado esta Licencia para usarla en manuales de software libre, ya que el software libre necesita documentaciónlibre: un programa libre debe venir con manuales que ofrezcan la mismas libertades que el software. Pero esta licencia nose limita a manuales de software; puede usarse para cualquier texto, sin tener en cuenta su temática o si se publica comolibro 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 delos derechos de autor que indique que puede ser distribuido bajo los términos de esta Licencia. Tal nota garantiza encualquier lugar del mundo, sin pago de derechos y sin límite de tiempo, el uso de dicho trabajo según las condiciones aquíestipuladas. En adelante la palabra Documento se referirá a cualquiera de dichos manuales o trabajos. Cualquier personaes un licenciatario y será referido como Usted. Usted acepta la licencia si copia. modifica o distribuye el trabajo de

Prohibida la reproducción total o parcial de este documento. 98 de 108

Page 99: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

cualquier modo que requiera permiso según la ley de propiedad intelectual.

Una Versión Modificada del Documento significa cualquier trabajo que contenga el Documento o una porción del mismo,ya sea una copia literal o con modificaciones y/o traducciones a otro idioma.

Una Sección Secundaria es un apéndice con título o una sección preliminar del Documento que trata exclusivamente dela relación entre los autores o editores y el tema general del Documento (o temas relacionados) pero que no contiene nadaque entre directamente en dicho tema general (por ejemplo, si el Documento es en parte un texto de matemáticas, unaSección Secundaria puede no explicar nada de matemáticas). La relación puede ser una conexión histórica con el tema otemas relacionados, o una opinión legal, comercial, filosófica, ética o política acerca de ellos.

Las Secciones Invariantes son ciertas Secciones Secundarias cuyos títulos son designados como Secciones Invariantes enla nota que indica que el documento es liberado bajo esta Licencia. Si una sección no entra en la definición de Secundaria,no puede designarse como Invariante. El documento puede no tener Secciones Invariantes. Si el Documento no identificalas 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 deCubierta Trasera en la nota que indica que el documento es liberado bajo esta Licencia. Un Texto de Cubierta Delanterapuede 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 máquina, representada en un formato cuyaespecificación está disponible al público en general, apto para que los contenidos puedan ser vistos y editadosdirectamente con editores de texto genéricos o (para imágenes compuestas por puntos) con programas genéricos demanipulación de imágenes o (para dibujos) con algún editor de dibujos ampliamente disponible, y que sea adecuado comoentrada para formateadores de texto o para su traducción automática 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 diseñado paraimpedir o dificultar modificaciones posteriores por parte de los lectores no es Transparente. Un formato de imagen no esTransparente 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 están ASCII puro sin marcaje, formato de entrada deTexinfo, formato de entrada de LaTeX, SGML o XML usando una DTD disponible públicamente, y HTML, PostScript oPDF simples, que sigan los estándares y diseñados para que los modifiquen personas. Ejemplos de formatos de imagentransparentes son PNG, XCF y JPG. Los formatos Opacos incluyen formatos propietarios que pueden ser leídos yeditados únicamente en procesadores de palabras propietarios, SGML o XML para los cuáles las DTD y/o herramientasde procesamiento no estén ampliamente disponibles, y HTML, PostScript o PDF generados por algunos procesadores depalabras sólo como salida.

La Portada significa, en un libro impreso, la página de título, más las páginas siguientes que sean necesarias paramantener legiblemente el material que esta Licencia requiere en la portada. Para trabajos en formatos que no tienenpágina de portada como tal, Portada significa el texto cercano a la aparición más prominente del título del trabajo,precediendo el comienzo del cuerpo del texto.

Una sección Titulada XYZ significa una parte del Documento cuyo título es precisamente XYZ o contiene XYZ entreparéntesis, a continuación de texto que traduce XYZ a otro idioma (aquí XYZ se refiere a nombres de sección específicosmencionados más abajo, como Agradecimientos, Dedicatorias , Aprobaciones o Historia. Conservar el Título de tal

sección cuando se modifica el Documento significa que permanece una sección Titulada XYZ según esta definición[3] .

El Documento puede incluir Limitaciones de Garantía cercanas a la nota donde se declara que al Documento se le aplicaesta Licencia. Se considera que estas Limitaciones de Garantía están incluidas, por referencia, en la Licencia, pero sólo encuanto a limitaciones de garantía: cualquier otra implicación que estas Limitaciones de Garantía puedan tener es nula y notiene efecto en el significado de esta Licencia.

[3] En sentido estricto esta licencia parece exigir que los títulos sean exactamente Acknowledgements, Dedications,Endorsements e History, en inglés.

Prohibida la reproducción total o parcial de este documento. 99 de 108

Page 100: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial o no, siempre y cuando estaLicencia, las notas de copyright y la nota que indica que esta Licencia se aplica al Documento se reproduzcan en todas lascopias y que usted no añada ninguna otra condición a las expuestas en esta Licencia. Usted no puede usar medidastécnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, ustedpuede aceptar compensación a cambio de las copias. Si distribuye un número suficientemente grande de copias tambiéndeberá seguir las condiciones de la sección 3.

Usted también puede prestar copias, bajo las mismas condiciones establecidas anteriormente, y puede exhibir copiaspúblicamente.

Si publica copias impresas del Documento (o copias en soportes que tengan normalmente cubiertas impresas) quesobrepasen las 100, y la nota de licencia del Documento exige Textos de Cubierta, debe incluir las copias con cubiertasque lleven en forma clara y legible todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta delantera yTextos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a Usted clara y legiblemente comoeditor de tales copias. La cubierta debe mostrar el título completo con todas las palabras igualmente prominentes yvisibles. Además puede añadir otro material en las cubiertas. Las copias con cambios limitados a las cubiertas, siempreque conserven el título 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 páginas adyacentes.

Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las 100, debe incluir una copiaTransparente, que pueda ser leída por una máquina, con cada copia Opaca, o bien mostrar, en cada copia Opaca, unadirección de red donde cualquier usuario de la misma tenga acceso por medio de protocolos públicos y estandarizados auna copia Transparente del Documento completa, sin material adicional. Si usted hace uso de la última opción, deberátomar las medidas necesarias, cuando comience la distribución de las copias Opacas en cantidad, para asegurar que estacopia Transparente permanecerá accesible en el sitio establecido por lo menos un año después de la última vez quedistribuya una copia Opaca de esa edición al público (directamente o a través de sus agentes o distribuidores).

Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento antes de redistribuir grannúmero de copias, para darles la oportunidad de que le proporcionen una versión actualizada del Documento.

Puede copiar y distribuir una Versión Modificada del Documento bajo las condiciones de las secciones 2 y 3 anteriores,siempre que usted libere la Versión Modificada bajo esta misma Licencia, con la Versión Modificada haciendo el rol delDocumento, por lo tanto dando licencia de distribución y modificación de la Versión Modificada a quienquiera posea unacopia de la misma. Además, debe hacer lo siguiente en la Versión Modificada:

A. Usar en la Portada (y en las cubiertas, si hay alguna) un título distinto al del Documento y de sus versionesanteriores (que deberían, si hay alguna, estar listadas en la sección de Historia del Documento). Puede usar elmismo título de versiones anteriores al original siempre y cuando quien las publicó originalmente otorgue permiso.B. Listar en la Portada, como autores, una o más personas o entidades responsables de la autoría de lasmodificaciones de la Versión 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 Versión Modificada.D. Conservar todas las notas de copyright del Documento.E. Añadir una nota de copyright apropiada a sus modificaciones, adyacente a las otras notas de copyright.F. Incluir, inmediatamente después de las notas de copyright, una nota de licencia dando el permiso para usar laVersión Modificada bajo los términos 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 reproducción total o parcial de este documento. 100 de 108

Page 101: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

que sean requeridos en la nota de Licencia del Documento original.H. Incluir una copia sin modificación de esta Licencia.I. Conservar la sección Titulada Historia, conservar su Título y añadirle un elemento que declare al menos el título,el año, los nuevos autores y el editor de la Versión Modificada, tal como figuran en la Portada. Si no hay unasección Titulada Historia en el Documento, crear una estableciendo el título, el año, los autores y el editor delDocumento, tal como figuran en su Portada, añadiendo además un elemento describiendo la Versión Modificada,como se estableció en la oración anterior.J. Conservar la dirección en red, si la hay, dada en el Documento para el acceso público a una copia Transparentedel mismo, así como las otras direcciones de red dadas en el Documento para versiones anteriores en las queestuviese basado. Pueden ubicarse en la sección Historia. Se puede omitir la ubicación en red de un trabajo quehaya sido publicado por lo menos cuatro años antes que el Documento mismo, o si el editor original de dichaversión da permiso.K. En cualquier sección Titulada Agradecimientos o Dedicatorias, Conservar el Título de la sección y conservar enella 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 títulos. Números de seccióno el equivalente no son considerados parte de los títulos de la sección.M. Borrar cualquier sección titulada Aprobaciones. Tales secciones no pueden estar incluidas en las VersionesModificadas.N. No cambiar el título de ninguna sección existente a Aprobaciones ni a uno que entre en conflicto con el dealguna Sección Invariante.O. Conservar todas las Limitaciones de Garantía.

Si la Versión Modificada incluye secciones o apéndices nuevos que califiquen como Secciones Secundarias y contienenmaterial no copiado del Documento, puede opcionalmente designar algunas o todas esas secciones como invariantes. Parahacerlo, añada sus títulos a la lista de Secciones Invariantes en la nota de licencia de la Versión Modificada. Tales títulosdeben ser distintos de cualquier otro título de sección.

Puede añadir una sección titulada Aprobaciones, siempre que contenga únicamente aprobaciones de su VersiónModificada por otras fuentes --por ejemplo, observaciones de peritos o que el texto ha sido aprobado por una organizacióncomo la definición oficial de un estándar.

Puede añadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un pasaje de hasta 25 palabras comoTexto de Cubierta Trasera en la Versión Modificada. Una entidad solo puede añadir (o hacer que se añada) un pasaje alTexto de Cubierta Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas añadidospreviamente por usted o por la misma entidad que usted representa, usted no puede añadir otro; pero puede reemplazar elanterior, con permiso explícito 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 paraasegurar o implicar aprobación de cualquier Versión Modificada.

Usted puede combinar el Documento con otros documentos liberados bajo esta Licencia, bajo los términos definidos en lasección 4 anterior para versiones modificadas, siempre que incluya en la combinación todas las Secciones Invariantes detodos los documentos originales, sin modificar, listadas todas como Secciones Invariantes del trabajo combinado en sunota de licencia. Así mismo debe incluir la Limitación de Garantía.

El trabajo combinado necesita contener solamente una copia de esta Licencia, y puede reemplazar varias SeccionesInvariantes idénticas por una sola copia. Si hay varias Secciones Invariantes con el mismo nombre pero con contenidosdiferentes, haga el título de cada una de estas secciones único añadiéndole al final del mismo, entre paréntesis, el nombredel autor o editor original de esa sección, si es conocido, o si no, un número único. Haga el mismo ajuste a los títulos desección en la lista de Secciones Invariantes de la nota de licencia del trabajo combinado.

En la combinación, debe combinar cualquier sección Titulada Historia de los documentos originales, formando unasección Titulada Historia; de la misma forma combine cualquier sección Titulada Agradecimientos, y cualquier secciónTitulada Dedicatorias. Debe borrar todas las secciones tituladas Aprobaciones.

Prohibida la reproducción total o parcial de este documento. 101 de 108

Page 102: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Puede hacer una colección que conste del Documento y de otros documentos liberados bajo esta Licencia, y reemplazarlas copias individuales de esta Licencia en todos los documentos por una sola copia que esté incluida en la colección,siempre que siga las reglas de esta Licencia para cada copia literal de cada uno de los documentos en cualquiera de losdemás aspectos.

Puede extraer un solo documento de una de tales colecciones y distribuirlo individualmente bajo esta Licencia, siempreque inserte una copia de esta Licencia en el documento extraído, y siga esta Licencia en todos los demás aspectosrelativos a la copia literal de dicho documento.

Una recopilación que conste del Documento o sus derivados y de otros documentos o trabajos separados eindependientes, en cualquier soporte de almacenamiento o distribución, se denomina un agregado si el copyrightresultante de la compilación no se usa para limitar los derechos de los usuarios de la misma más allá de lo que los de lostrabajos individuales permiten. Cuando el Documento se incluye en un agregado, esta Licencia no se aplica a otrostrabajos del agregado que no sean en sí mismos derivados del Documento.

Si el requisito de la sección 3 sobre el Texto de Cubierta es aplicable a estas copias del Documento y el Documento esmenor que la mitad del agregado entero, los Textos de Cubierta del Documento pueden colocarse en cubiertas queenmarquen solamente el Documento dentro del agregado, o el equivalente electrónico de las cubiertas si el documentoestá en forma electrónica. En caso contrario deben aparecer en cubiertas impresas enmarcando todo el agregado.

La Traducción es considerada como un tipo de modificación, por lo que usted puede distribuir traducciones delDocumento bajo los términos de la sección 4. El reemplazo las Secciones Invariantes con traducciones requiere permisoespecial de los dueños de derecho de autor, pero usted puede añadir traducciones de algunas o todas las SeccionesInvariantes a las versiones originales de las mismas. Puede incluir una traducción de esta Licencia, de todas las notas delicencia del documento, así como de las Limitaciones de Garantía, siempre que incluya también la versión en Inglés deesta Licencia y las versiones originales de las notas de licencia y Limitaciones de Garantía. En caso de desacuerdo entre latraducción y la versión original en Inglés de esta Licencia, la nota de licencia o la limitación de garantía, la versión originalen Inglés prevalecerá.

Si una sección del Documento está Titulada Agradecimientos, Dedicatorias o Historia el requisito (sección 4) deConservar su Título (Sección 1) requerirá, típicamente, cambiar su título.

Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo permitido expresamente por estaLicencia. Cualquier otro intento de copia, modificación, sublicenciamiento o distribución del Documento es nulo, y darápor terminados automáticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan recibido copias, oderechos, de usted bajo esta Licencia no verán terminadas sus licencias, siempre que permanezcan en total conformidadcon ella.

De vez en cuando la Free Software Foundation puede publicar versiones nuevas y revisadas de la Licencia deDocumentación Libre GNU. Tales versiones nuevas serán similares en espíritu a la presente versión, pero pueden diferiren detalles para solucionar nuevos problemas o intereses. Vea http://www.gnu.org/copyleft/.

Cada versión de la Licencia tiene un número de versión que la distingue. Si el Documento especifica que se aplica unaversión numerada en particular de esta licencia o cualquier versión posterior, usted tiene la opción de seguir los términos

Prohibida la reproducción total o parcial de este documento. 102 de 108

Page 103: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

y condiciones de la versión especificada o cualquiera posterior que haya sido publicada (no como borrador) por la FreeSoftware Foundation. Si el Documento no especifica un número de versión de esta Licencia, puede escoger cualquierversión 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 yponga el siguiente copyright y nota de licencia justo después de la página de título:

Copyright (c) AÑO SU NOMBRE. Se concede permiso para copiar, distribuir y/o modificar este documentobajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.2 o cualquier otra versiónposterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de CubiertaDelantera ni Textos de Cubierta Trasera. Una copia de la licencia está incluida en la sección titulada GNUFree 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 TÍTULOS, siendo los Textos de Cubierta Delantera LISTAR, ysiendo sus Textos de Cubierta Trasera LISTAR.

Si tiene Secciones Invariantes sin Textos de Cubierta o cualquier otra combinación de los tres, mezcle ambas alternativaspara adaptarse a la situación.

Si su documento contiene ejemplos de código de programa no triviales, recomendamos liberar estos ejemplos en paralelobajo la licencia de software libre que usted elija, como la Licencia Pública General de GNU (GNU General PublicLicense), para permitir su uso en software libre.

[1] Ésta es la traducción del Copyright de la Licencia, no es el Copyright de esta traducción no autorizada.

[2] La licencia original dice publisher, que es, estrictamente, quien publica, diferente de editor, que es más bien quienprepara 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-1301USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is notallowed.

The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense offreedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, eithercommercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit fortheir 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 thesame 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 freedocumentation: a free program should come with manuals providing the same freedoms that the software does. But thisLicense is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether itis published as a printed book. We recommend this License principally for works whose purpose is instruction or

Prohibida la reproducción total o parcial de este documento. 103 de 108

Page 104: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

reference.

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holdersaying 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 suchmanual 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 copiedverbatim, 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 therelationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) andcontains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook ofmathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historicalconnection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political positionregarding 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 ofSecondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If theDocument 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 thenotice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and aBack-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 isavailable to the general public, that is suitable for revising the document straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that issuitable 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 thwartor discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for anysubstantial 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, LaTeXinput format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDFdesigned for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formatsinclude proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for whichthe DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDFproduced 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 assuch, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of thebody of the text.

A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ inparentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section namementioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" ofsuch a section when you modify the Document means that it remains a section "Entitled XYZ" according to thisdefinition.

The Document may include Warranty Disclaimers next to the notice which states that this License applies to theDocument. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards

Prohibida la reproducción total o parcial de este documento. 104 de 108

Page 105: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

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

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that thisLicense, the copyright notices, and the license notice saying this License applies to the Document are reproduced in allcopies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures toobstruct or control the reading or further copying of the copies you make or distribute. However, you may acceptcompensation in exchange for copies. If you distribute a large enough number of copies you must also follow theconditions 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 morethan 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 thefull 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 theseconditions, 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 fitreasonably) 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 machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-networklocation from which the general network-using public has access to download using public-standard network protocols acomplete Transparent copy of the Document, free of added material. If you use the latter option, you must takereasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copywill 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 numberof 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 ofthe Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. Inaddition, you must do these things in the Modified Version:

Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those ofprevious versions (which should, if there were any, be listed in the History section of the Document). You may usethe same title as a previous version if the original publisher of that version gives permission.

A.

List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications inthe Modified Version, together with at least five of the principal authors of the Document (all of its principalauthors, if it has fewer than five), unless they release you from this requirement.

B.

State on the Title page the name of the publisher of the Modified Version, as the publisher.C.Preserve all the copyright notices of the Document.D.Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.E.Include, immediately after the copyright notices, a license notice giving the public permission to use the ModifiedF.

Prohibida la reproducción total o parcial de este documento. 105 de 108

Page 106: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

Version under the terms of this License, in the form shown in the Addendum below.Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document'slicense notice.

G.

Include an unaltered copy of this License.H.Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, newauthors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" inthe 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.

I.

Preserve the network location, if any, given in the Document for public access to a Transparent copy of theDocument, and likewise the network locations given in the Document for previous versions it was based on. Thesemay be placed in the "History" section. You may omit a network location for a work that was published at least fouryears before the Document itself, or if the original publisher of the version it refers to gives permission.

J.

For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve inthe section all the substance and tone of each of the contributor acknowledgements and/or dedications giventherein.

K.

Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers orthe equivalent are not considered part of the section titles.

L.

Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.M.Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.N.Preserve any Warranty Disclaimers.O.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and containno material copied from the Document, you may at your option designate some or all of these sections as invariant. To dothis, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinctfrom any other section titles.

You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Versionby various parties--for example, statements of peer review or that the text has been approved by an organization as theauthoritative 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 ofBack-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes acover text for the same cover, previously added by you or by arrangement made by the same entity you are acting onbehalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisherthat 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 foror 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 4above for modified versions, provided that you include in the combination all of the Invariant Sections of all of theoriginal documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, andthat you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replacedwith a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title ofeach such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of thatsection if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sectionsin the license notice of the combined work.

In the combination, you must combine any sections Entitled "History" in the various original documents, forming onesection Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled"Dedications". You must delete all sections Entitled "Endorsements".

Prohibida la reproducción total o parcial de este documento. 106 de 108

Page 107: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

You may make a collection consisting of the Document and other documents released under this License, and replace theindividual copies of this License in the various documents with a single copy that is included in the collection, providedthat 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 youinsert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatimcopying of that document.

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on avolume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is notused to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document isincluded in an aggregate, this License does not apply to the other works in the aggregate which are not themselvesderivative 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 thanone half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document withinthe aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear onprinted covers that bracket the whole aggregate.

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms ofsection 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but youmay 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 anddisclaimers. In case of a disagreement between the translation and the original version of this License or a notice ordisclaimer, the original version will prevail.

If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) toPreserve 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 yourrights under this License. However, parties who have received copies, or rights, from you under this License will not havetheir 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 totime. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems orconcerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numberedversion of this License "or any later version" applies to it, you have the option of following the terms and conditions eitherof 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 adraft) by the Free Software Foundation.

Prohibida la reproducción total o parcial de este documento. 107 de 108

Page 108: Configurar Un Servidor Controlador de Dominio Con Samba y OpenLDAP en Ubuntu Server Hardy 8

To use this License in a document you have written, include a copy of the License in the document and put the followingcopyright 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 FreeDocumentation License, Version 1.2 or any later version published by the Free Software Foundation; with noInvariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in thesection 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 theBack-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternativesto suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallelunder your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Prohibida la reproducción total o parcial de este documento. 108 de 108