instalacion de un servidor samba en dominio y recursos compartidos

Upload: anonymous-kwxzku

Post on 06-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    1/132

     

    Instalación de unservidor SAMBA endominio y recursoscompartidos Sobre Linux 

    Este manual describe la implementación de un servidor

    Controlador de Dominio con Samba y OpenLDAP en Ubuntu

    Server o Ubuntu 12.04 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    2/132

     

    IndiceResumen ................................................................................................................................................... 1

    Caracteristicas Generales ..........................................................................................................................

    2

    Capitulo 1. Características para Entornos Unix/Linux ............................................................................... 4

    Características para Entornos Windows ............................................................................................... 5

    Capitulo 2. Estructura del Arbol de Directorio (DIT) ................................................................................. 6

    Capítulo 3. Requerimientos de Software .................................................................................................. 8

    Su rootInstalación y Configuración del servidor OpenLDAP ................................................................. 9

    Configuración Inicial del servicio slapd ............................................................................................... 16

    Agregando los esquemas (schemas) necesarios ................................................................................. 18

    Configurando las Listas de Control de Acceso (ACLs) ......................................................................... 20

    Configurando los Indices de atributos más usados ............................................................................ 21

    Configuración de los Registros de Eventos (logs) del servidor Slapd ................................................. 21

    Configuracion de los logs en OpenLDAP ............................................................................................. 22

    Configuraciones para sysklogd ............................................................................................................ 23

    Configuraciones para syslog-ng ............................................................. Error! Bookmark not defined. 

    Configuración de los límites de consulta y conexión .......................................................................... 25

    Revisión de permisos en archivos y directorios de Configuración ..................................................... 25

    Ejecutando una revisión sintactica del archivo de configuración slapd.conf ..................................... 26

    Capitulo 4. Iniciando el servidor slapd y haciendo Pruebas Preliminares .............................................. 27

    Controlando el servicio Slapd ............................................................................................................. 29

    Recursos adicionales ............................................................................................................................... 30

    Sitios web ............................................................................................................................................ 30

    Paginas de manual .............................................................................................................................. 30

    Capítulo 5. Configuración del Cliente LDAP ............................................................................................ 31

    Capítulo 6. Configuración de Samba y las herramientas smbldap-tools ................................................ 32

    Instalación y configuración del servidor Samba ................................................................................. 32

    Configuraciónes de Samba para Controlador de Dominio ................................................................. 33

    Parametros Globales del servidor Samba ........................................................................................... 33

    Configurando la autentificación para el controlador de dominio ...................................................... 34

    Configuraciónes del registro de eventos (logs) del servidor Samb ..................................................... 34

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    3/132

     

    Configuraciones de Red para el servidor Samba ................................................................................ 35

    Configurando los Parametros para Controlador de Dominio ............................................................. 35

    Parametros para interacción con el servidor LDAP ............................................................................ 35

    Configuraciones de Codificación y Charset ......................................................................................... 36

    El recurso compartido especial [homes] ............................................................................................. 36

    El recurso compartido especial [netlogon] ......................................................................................... 37

    El recurso compartido especial [profiles] ........................................................................................... 38

    El recurso compartido publico ............................................................................................................ 39

    Realizando una Revisión Sintactica del archivo de configuración smb.conf ...................................... 39

    Especificando la contraseña del ldap admin dn .................................................................................. 40

    Instalación y Configuración de las smbldap-tools ............................................................................... 40

    Llenando el Directorio LDAP con smbldap-populate .......................................................................... 45Verificando la instalación y configuración de Samba y LDAP ............................................................. 48

    Probando Samba con Cuentas en el Directorio LDAP ......................................................................... 48

    Verificando el mapeo del grupos unix a grupos Samba ...................................................................... 50

    Probando conexiones al servidor Samba usando cuentas en LDAP ................................................... 51

    Capítulo 7. Configuración de la resolución de Identidades con NSS_LDAP ............................................ 52

    Capítulo 8. Configuración de la Autenticación con PAM_LDAP .............................................................. 57

    Introducción a los Modulos de Autenticación PAM ........................................................................... 57

    Respaldando la configuración de PAM ............................................................................................... 59

    Configurando los modulos de autenticación PAM con LDAP ............................................................. 59

    Configuración del modulo auth .......................................................................................................... 59

    Configuración del modulo account ..................................................................................................... 59

    Configuración del modulo session ...................................................................................................... 60

    Configuración del modulo password .................................................................................................. 60

    Instalando el modulo Cracklib de PAM ............................................................................................... 60

    Probando la autenticación de usuarios de sistema vía PAM_LDAP ................................................... 61Capítulo 9. Migración de usuarios y grupos Unix/Posix al directorio LDAP ............................................ 64

    Migración de Usuarios (/etc/passwd y /etc/shadow) ........................................................................ 65

    Migración de Grupos (/etc/group) ...................................................................................................... 66

    Capítulo 10. Administración de cuentas Unix y Samba vía smbldap-tools ............................................. 67 

    Introducción ........................................................................................................................................ 67 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    4/132

     

    Atributos predefinidos para la creación de usuarios .......................................................................... 67

    Creación de cuentas de usuarios ........................................................................................................ 67

    Eliminación de cuentas de usuarios .................................................................................................... 70

    Cambiando la contraseña de un usuario ............................................................................................ 71

    Modificación de cuentas de usuario ................................................................................................... 71

    Administración de Grupos de Sistema y Grupos Samba ..................................................................... 75

    Capítulo 11. Tareas de Mantenimiento de OpenLDAP y Samba ............................................................ 78

    Cambiar o asignar contraseña al Root DN de OpenLDAP ................................................................... 78

    Agregar nuevos indices de atributos en OpenLDAP ........................................................................... 80

    Respaldar los archivos de configuración de OpenLDAP ..................................................................... 81

    Respaldar y Restaurar una base de datos de OpenLDAP (OPCIONAL) ............................................... 82

    Respaldando archivos importante de Samba ..................................................................................... 84Respaldando el SID del Dominio Samba ............................................................................................. 84

    Capítulo 12. Integrando Clientes Windows al Dominio Samba .............................................................. 85

    Requerimientos del sistema ............................................................................................................... 85

    Configuración de los parámetros de red en el equipo Windows ....................................................... 86

    Uniendo el equipo Windows al Dominio Samba ................................................................................ 93

    Como Iniciar Sesión el Dominio Samba ............................................................................................ 106

    Como permitir que un usuario cambie la contraseña de dominio ................................................... 110

    Como mapear una unidad de disco en red al directorio home en el servidor ................................. 112

    Como compartir archivos en la red a usuarios y grupos de dominio ............................................... 115

    Como habilitar el uso de scripts de inicio de sesión en un dominio Samba ..................................... 121

    Capítulo 13. Integrando Clientes Linux/Unix al Dominio Samba .......................................................... 123

    Información preliminar del equipo cliente Linux .............................................................................. 123

    Instalando el software necesario para unir cliente Linux a Dominio LDAP ...................................... 123

    Configurando la resolución de cuentas de usuario y grupos mediante LDAP en clientes Linux ...... 123

    Configurando la Autorización de cuentas de usuario y grupos mediante LDAP en clientes Linux conPAM ...................................................................................................................................................

    125

    Configurando resolución de cuentas de dominio mediante Samba ................................................. 126

    Autenticación de usuarios y grupos de dominio Samba en clientes Linux ....................................... 126

    Montaje automático de carpetas compartidas mediante pam_mount ........................................... 128 

    Carpetas compartidas con ACL a usuarios y grupos de dominio ...................................................... 130 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    5/132

     

    Autenticando cuentas de usuario de dominio de forma desconectada ........................................... 131 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    6/132

    1

    Resumen

    Este manual describe la implementación de un servidor Controlador de Dominio con Samba y OpenLDAP

    en Ubuntu Server, 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 entornohetereogeneo 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.

    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 yWindows con controles de acceso basado en cuentas de usuarios y grupos centralizados enel servidor controlador de dominio.

    •  Centralizar la administración de cuentas de usuario y grupos Unix/Linux, Windows y otrasaplicaciones con soporte LDAP.

    •  Centralizar la autenticación y los controles de acceso por usuarios y grupos para recursoscompartidos en clientes o servidores GNU/Linux y/o Windows.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    7/132

    2

    Caracteristicas Generales

    La implementación aquí descrita es para una red de computadoras ficticia de una empresa detamaño pequeño/mediano. La instalación del servidor controlador de dominio se realiza en ladistribución Ubuntu Server 8.04 LTS amd64, el servidor solo 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.1.0/24.

    •Dirección IP del servidor PDC: 192.168.1.3.

    •Dirección IP del gateway para la red LAN: 192.168.1.254.•Dirección IP del servidor DNS primario: 192.168.1.253.•Dirección IP del servidor DNS secundario: 192.168.1.254.

    •Dirección IP del servidor WINS: 192.168.1.3.

    Es escencial tener a la mano la información de nuestra implementación ya que será utilizada en

    capitulos/secciones posteriores. En el siguiente diagrama se describe la red: Figura 2.1. Mapa de

    red Example 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    8/132

    3

    Como podemos ver en el diagrama anterior, la red ficticia de la empresa EXAMPLE usa unesquema clásico, una red local con PCs, Laptops, impresoras y algunos servidores, contando unfirewall que da salida a Internet.

    En las siguientes secciones se describen las caracteristicas de la implementación específicas paralos diferentes entornos.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    9/132

    4

    Capitulo 1. Características para Entornos Unix/Linux

    En esta sección se describen las funcionalidades que podremos obtener al implementar un servidorCentralizado de Autenticación para redes Unix o GNU/Linux.

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

    •  Servidor de Autenticación Centralizada, la base de datos de usuarios, contraseñas y gruposestará almacenada en un directorio LDAP remoto lo cual permite centralizar y simplificarla administración de cuentas de que normalmente esta almacenada en los archivos/etc/passwd, /etc/shadow y /etc/group en redes con sistemas Unix o GNU/Linux.

    •  Este tipo de implementación permite reemplazar dominios NIS  para autenticacióncentralizada tanto para sistemas Unix y Linux.

    •  En los equipos clientes no se crearan cuentas locales, ya que están en el servidor LDAP, laresolución de nombres de usuarios (UID->Usernames), grupos (GID->Grupos) será

    manejada por las herramientas NSS_LDAP, NSS_LDAP buscará los usuarios y grupos enel servidor LDAP central.

    •  La autorización a los diferentes servicios locales (login, KDM, su, sudo, ssh, samba, cron,cups) será manejada por los módulos de autenticación PAM_LDAP, mediante estosmódulos PAM decidirá si se autoriza el acceso al usuario de acuerdo a sus credenciales, sison válidas se le autoriza el servicio, si no, entonces se deniega el servicio.

    •  La pertenencia a grupos para manejar los permisos y accesos se hará centralizado en elservidor LDAP. Mediante PAM se podrá otorgar privilegios a algunos servicios de acuerdoal grupo que pertenece el usuario, estos permisos se reflejaran de forma transparente paralos usuarios locales.

    •  La misma base de usuarios centralizada podrá servicio para autenticar otro tipo deaplicaciones: Squid, Apache, Correo Electrónico, Mensajería Instantánea, etc.

    •  Soporte para netgroups de NIS, mediante netgroups usted podrá crear diferentesrestricciones de acceso sobre los equipos, basados en dirección IP, usuario, grupo.

    •  Fácil integración con servicios de compartición de archivos como NFS y/o Samba para

    centralizar el almacenamiento de los directorios $HOME de los usuarios.•  Se usará un mismo usuario y grupo para autenticarse a los diferentes servicios de red y no

    se tendrán que tener cuentas repetidas en varios servidores, esto conlleva a unaadministración centralizada.

    •  Soporte para replicación de la base de datos de usuarios mediante replicación LDAP, se pueden poner más de un servidor 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 undirectorio LDAP como OpenLDAP y el soporte de autenticación/autorización de NSS_LDAP yPAM_LDAP y administración de permisos de acceso a recursos de red para entornos Unix/Linux,es posible agregar soporte para cuentas de usuarios y grupos de redes Windows, en específicocuentas de dominio tipo NT4. Esta integración permitirá acceder a los recursos de la red desdesistemas con diferentes sistemas operativos.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    10/132

    5

    Características para Entornos Windows

    En esta sección describiremos que funcionalidades obtendremos al configurar un servidor Sambacomo Controlador de Dominio para Redes MS Windows. La mayoría de las funcionalidadesdescritas a continuación solo podrán ser implementadas en Sistemas Operativos MS WIndows XP

    Pro o superior.

    Para entornos basados en Sistemas Clientes Windows tendremos las siguientes funcionalidades:

    •  Servidor Centralizado para cuentas de red (Controlador Primario de Dominio - PDC).•  Servidor de archivos.•  Servidor de Impresoras (Integrado con CUPS).•  Soporte para Politicas de Sistema al estilo NT usando poledit  (el editor de politicas de

    sistema).

    Esta característica permite controlar los permisos que el usuario tiene sobre un equipo

    Windows, entre las caracterísitcas principales se encuentran:

    o  Permite/restringe que los usuarios de Dominio puedan cambiar las configuracionesdel Escritorio de Windows. o Permite/restrige que los usuarios puedan cambiar lasconfiguraciones de red deWindows

    o  Permite/restringe que los usuarios puedan entrar al Panel de Control de Windows o Se pueden definir que aplicaciones puede usar el usuario en su estación de

    trabajo.

    NotaEste tipo de políticas pueden ser aplicadas de forma global, (para todos los usuarios del

    dominio) 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 de inicio (.bat, .vbs) donde se pueden hacer varias tareas, entreellas:

    o  Sincronizar el reloj del sistema con el reloj del servidor de dominio (net time)o  Instalar aplicaciones de forma desatendida (usando WKPG) o  Mapear unidadesde red automaticamente o  Instalar Impresoras en red de forma desatendida en elequpo local

    Nota

    Estas opciones se pueden aplicar a nivel global, por usuario o por grupo.

    http://wpkg.org/http://wpkg.org/http://wpkg.org/http://wpkg.org/http://wpkg.org/

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    11/132

    6

    •  Restricción por usuario o grupo a carpetas compartidas en red.

    o  Con esta funcionalidad se pueden crear listas de control de acceso (ACL por sussiglas en Ingés) para permitir ó no el acceso a ciertas carpetas compartidas en red,esta restricción se puede aplicar por usuario o por grupo, así, por ejemplo, solo los

    usuarios del grupo Contabilidad y la directora podrán entrar a la carpeta compartida"contabilidad" y podrán: crear, modificar, borrar archivos o directorios dentro dedicha carpeta compartida. o Además se pueden tener permisos más granulares encuanto a los accesos de los archivos y directorios dentro de las carpetascompartidas, por medio de ACLs. Soporte para Perfiles Móviles (RoamingProfiles) para clientes Windows.

    Con esta característica se puede almacenar el perfil del usuario en un servidor de red, y así,cada vez que un usuario de dominio inicia sesión en un equpo podrá tener sincronizado su perfil disponible en cualquier equpo en el que inicie sesión.

    •  Soporte para tener más de un servidor Controlador de Dominio de Respaldo (BDC) por loobtendrá replicación de la SAM y alta disponibilidad. En caso de que el servidor PDC noeste disponible el servidor BDC se encargará de las tareas de autenticación y comparticiónde archivos.

    Antes de continuar es importante recordar que la información de cuentas de usuario y grupos tanto para cuentas Unix/Linux o Windows se almacenarán en un directorio LDAP en una estructura deárbol específica, en la siguiente sección veremos la estructura de árbol del directorio LDAP.

    Capitulo 2. Estructura del Arbol de Directorio (DIT)

    En la jerga LDAP, la estructura del árbol 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 estructura de Árbol, dondelas ramas del arbol pueden ser contenedores de información, en done puede contener otras entradaso más ramas/contenedores, por ejemplo una rama para almacenar cuentas de usuario, otra rama para almacenar grupos, etc. Cada entrada en el árbol posee un identificador único llamado Distinguished Name o DN .

    El primer paso para diseñar el DIT es definir el Base DN, el Base DN es el nivel más alto en el

    árbol de directorio, es decir, 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 del Sistema de Nombres de Dominio (DNS).

    A grandes rasgos nuestro DIT quedará como se muestra en la siguiente figura:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    12/132

    7

    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 sistemas Windows•  ou=Groups: Contenedor para alamacenar Grupos de sistema para sistemas Unix y

    Windows

    Este DIT sigue las recomendaciones de el RFC 2307bis.  No usamos ou=Hosts para almacenarcuentas de computadoras ya que hay una diferencia entre hosts TCP/IP y cuentas de computadorasMicrosoft Windows. Usamos el contenedor ou=DSA  para almacenar cuentas de seguridadespecíficas para clientes LDAP).

     No es obligatorio utilzar este DIT para tu propia implementación, más sin embargo, se recomiendaseguir estas recomendaciones para la configuración inicial, en instalaciones posteriores podrásadaptar el DIT y las configuraciones a tu gusto.

    Capítulo 3. Requerimientos de Software

    La implementación de este documento será hecha en la distribución Ubuntu Server Hardy 8.04, lamayoría de los pasos podrán implementarse en Ubuntu Gutsy, a excepción de las configuracionesde NSS_LDAP y PAM_LDAP ya que en Hardy se consolido el archivo de configuración deambos.

    Instalaremos el siguiente software:

    http://www.padl.com/~lukeh/rfc2307bis.txthttp://www.padl.com/~lukeh/rfc2307bis.txthttp://www.padl.com/~lukeh/rfc2307bis.txthttp://www.padl.com/~lukeh/rfc2307bis.txt

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    13/132

    8

    OpenLDAP 2.4.9-0ubuntu0.8.04.1 

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

    Samba 3.0.28a-1ubuntu4.7 

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

    smbldap-tools 0.9.4-1 

    Herramientas para administrar cuentas Unix/Posix y Samba almacenadas en un servidorOpenLDAP

    libnss-ldap 258-1ubuntu3 

     NSS son las bibliotecas de resolución de entidades, servirán para resolver nombres deusuarios a UID y viceversa, así como nombres de grupos a GID y viceversa usando comofuente de información el directorio LDAP.

    libpam-ldap 184-2ubuntu2 

    PAM son los modulos de autenticación/autorización para otorgar permisos de acceso adiferentes servicios locales (login, KDM, su, sudo, ssh, samba, cron, cups, etc.) usandocomo 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.

    Su rootInstalación y Configuración del servidor OpenLDAP

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    14/132

    9

    root@pdc:~# apt-get install slapd ldap-utils

    (...)

    (...)

    (...)

    Setting up slapd (2.4.31-1+nmu2ubuntu8) ...

    Creating new user openldap… done.

    Creating initial configuration... done.Creating LDAP directory... done. StartingOpenLDAP: slapd.

    Setting up ldap-utils (2.4.31-1+nmu2ubuntu8) ...

    Processing triggers for libc-bin ...

    Cuando se instala el paquete slapd al final nos lanzará un asistente de configuración del servicioslapd, ser verá como en la siguiente pantalla:

    Aunque despues vamos a reconifgurar el servidor OpenLDAP (slapd), ingresaremos unacontraseña para el usuario administrador del servidor LDAP:

    Administrator passwd: uacj 

    Confirm passwd: uacj 

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    15/132

    10

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

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

    Al reconfigurar el paquete slapd se lanzará el mismo asistente que vimos atras, pero en este casoserá reconfigurado desde cero.

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    16/132

    11

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

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    17/132

    12

    A continuación nos pregunta el nombre de la organización para la que configuraremos el directorioLDAP. Ingresaremos: Example S.A. de C.V. 

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    18/132

    13

    Ahora confirmaremos la contraseña para el Administrador del servidor LDAP, usaremos la mismaque se ingreso arriba: uacj 

    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 serecomienda BDB 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 articuloThe King is Dead, Long Live the King.

    http://www.connexitor.com/blog/pivot/entry.php?id=219http://www.connexitor.com/blog/pivot/entry.php?id=219http://www.connexitor.com/blog/pivot/entry.php?id=219http://www.connexitor.com/blog/pivot/entry.php?id=219

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    19/132

    14

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

     No seleccione la opción Yes ya que si por error desinstalamos el paquete slapd no perderemosla base de datos del directorio /var/lib/ldap  y podremos recuperar nuestra instalaciónusando dichos archivos.

    Si por alguna razón ya existia una base de datos de una instalación anterior (como en nuestro casode re instalación) el asistente nos pregunta si deseamos mover la base de datos vieja a un directorio

    de respaldo (/var/backups/), elejimos la opción Yes.

    Importante 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    20/132

    15

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

    Cuando el asistente termina de configurar los parametros especificados veremos en la salida de laconsola un mensaje como el siguiente:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    21/132

    16

    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 inicia el servidor slapd con la nueva configuración y el nuevodirectorio.

    En la siguiente sección veremos como configurar el servidor slapd para nuestros propositos.

    Configuración Inicial del servicio slapd

    Cuando instalamos el paquete slapd se creó un grupo y un usuario de nombre openldap, con los privilegios de este usuario y grupo será con los que se ejecutará el demonio slapd, así mismo, losarchivos y directorios que utilicemos en nuestra instalación deberán de pertenecer a este usuario ygrupo.

    Verificaremos que se creo un grupo de nombre openldap:

    root@pdc:~# grep ldap /etc/group openldap:x:130:

    Como vemos, nos creo el grupo openldap y tiene el GID: 130 Ahora

    confirmaremos que el usuario openldap fue creado:

    root@pdc:~# grep ldap /etc/passwd openldap:x:121:130:OpenLDAP ServerAccount,,,:/var/lib/ldap:/bin/false

    Como vemos nos creo el usaurio openldap, con el ID de Usuario (UID): 121, su grupo primario es

    el grupo de ID 130 (openldap), su directorio $HOME es /var/lib/ldap, y esta cuenta no tiene unshell válido: /bin/false.

    También verificaremos que los permisos del directorio /var/lib/ldap sean los correctos y nos

    aseguraremos que el usuario openldap tenga permiso de lectura, escritura y acceso al directorio:

    root@pdc:~# ls -ld /var/lib/ldap drwx-xr-x- 2 openldapopenldap 4096 May 28 12:25 /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í:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    22/132

    17

    root@pdc:~# nano /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 deque el demonio no este corriendo, lo verificamos así:

    root@pdc:~# ps aux | grep slapd

    openldap 9495 0.0 2.7 22124 3560 ? Ssl 23:20 0:00 /usr/sbin/slapd -g openldap-u openldap -f /etc/ldap/slapd.d

    Si el servicio esta en ejecución, entonces lo detendremos así:

    root@pdc:~# sudo /etc/init.d/slapd stop StoppingOpenLDAP: slapd.

    Más adelante veremos como controlar el servicio slapd.

     Agregando los esquemas (schemas) necesarios

    Los esquemas ( schemas) definen el tipo de objectos (objectClass) que podemos manejar en nuestroarbol de directorio, además definen el tipo de atributos que podemos usar así como las reglas desintaxis para cada uno de estos atributos.

    Los esquemas que vienen por defecto en la configuración de slapd son los necesarios para poderalmacenar información de cuentas Unix/POSIX, almacenar información para crear un tipo de

    Directorio Amarillo, o una agenda de contactos. Estos esquemas predeterminados no nos permitenalmacenar atributos para cuentas de usuario y dominios Samba/Windows, sin embargo,OpenLDAP permite la carga de esquemas externos para almacenar diferente tipo de información,el esquema LDAP Samba permite almacenar la siguiente información:

    •  El Nombre de Dominio Samba: sambaDomainName •  El SID del Dominio Samba: SambaSID •  Ruta al directorio del perfil del usaurio Samba: sambaProfilePath 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    23/132

    18

    •  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 demas atributos ver el archivo /etc/ldap/schemas/samba.schema .

    Los esquemas estan definidos en archivos dentro del directorio /etc/ldap/schema/, el esquema

     para samba no viene incluido dentro de la instalación de slapd, así que tendremos que instalar el paquete samba-doc, el cual contiene el archivo samba.schema:

    # apt-get install samba-doc

    El archivo del esquema de samba se encuentra en el archivo

    /usr/share/doc/sambadoc/examples/LDAP/samba.schema.gz   en formato comprimido, lodescomprimiremos 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.schema

    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 servidorslapd que lo utilize, para hacer esto hacemos lo siguiente:

    Creamos un archivo que llamaremos schema_convert.conf  y agregamos las siguientes líneas:

    include /etc/ldap/schema/core.schema include/etc/ldap/schema/cosine.schema include/etc/ldap/schema/inetorgperson.schema include/etc/ldap/schema/samba.schema

    Creamos el siguiente folder temporal:

    mkdir /tmp/ldif_output 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    24/132

    19

    Con el siguiente commando vamos a crear el archivo LDIF que necesitaremos LDIF

    slaptest -f schema_convert.conf -F /tmp/ldif_output/ 

    Editamos el archivo /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{3\}samba.ldif  

    •  En la primera linea (Seria la 3 si se toman en cuenta los comentarios) cambiamos dn:

    cn={3}samba  por dn: cn=samba,cn=schema,cn=config .

    •  En la tercera lienas (Seria la 4 con comentarios) la linea que contiene cn: {3}samba dejamos solamente cn

    samba .

    •  Removemos las ultimas 7 lineas del archivo (empezando con: structuralObjectClass:

    olcSchemaConfig) y lo grabamos.

    Iniciamos nuevamente LDPA con el siguiente comando:

    root@pdc:~# sudo /etc/init.d/slapd start

    Starting OpenLDAP: slapd.

     Agregamos el LDIF al LDAP con el siguiente comando: ldapadd -H ldapi:/// -Y EXTERNAL -f

    /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{3\}samba.ldif

    Configurando las Listas de Control de Acceso (ACLs)

    Vamos a editar el archivo sldap.conf con el siguente comando:

    root@pdc:~# nano /usr/share/slapd/slapd.conf

    El archivo slapd.conf que tenemos abierto ya viene preconfigurado con algunas reglas de acceso,entre ellas una donde permite cambiar la contraseña a los usuarios Unix debidamente autenticados.Ya que nuestro directorio también almacenará información de cuentas Samba, debemos permitirque los usuarios Samba plenamente autenticados puedan cambiar su contraseña desde el mismocliente Windows. Las contraseñas de cuentas Samba estan almacenadas en los atributossambaLMPassword y SambaNTPassword, por lo tanto permitiremos a los usuarios autenticados poder cambiar su contraseña.

    En la sección # Schema and ObjectClass definitions agregamos la línea

    include /etc/ldap/schema/samba.schema

    Debe de quedar asi: include /etc/ldap/schnanema/core.schema

    include /etc/ldap/schema/cosine.schema

    include /etc/ldap/schema/nis.schema include

    /etc/ldap/schema/inetorgperson.schema

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    25/132

    20

    include /etc/ldap/schema/samba.schema 

    En la sección de los ACLs, cambiar:

    access to attrs=userPassword,shadowLastChangeby dn="@ADMIN@" 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 byself write by * none

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

    Configurando los Indices de atributos más usados

    Es importante que los atributos más consultados por los clientes y aplicaciones LDAP estendebidamente indexados en la base de datos del directorio LDAP, de no ser así podríamos sufrir de penalizaciones en el rendimiento del directorio, en especial en el tiempo de respuesta en lasconsultas, para optimizar el rendimiento del directorio agregaremos una lista de atributos a la listade atributos a indexar.

    En la sección de Indice de atributos del archivo /usr/share/slapd/slapd.conf (que tenemos

    abierto) Cambiar:

    # Indexing options for database #1 indexobjectClass eq

    Por:

    # Indexing options for database #1

    index objectClass,uidNumber,gidNumber eq indexcn,sn,uid,displayName pres,sub,eq indexmemberUid,mail,givenname eq,subinitial indexsambaSID,sambaPrimaryGroupSID,sambaDomainName eq

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

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

    http://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldaphttp://tuxjm.net/docs/Configurar_Servidor_Controlador_de_Dominio_con_Samba_y_OpenLDAP/Ubuntu/html-onechunk/#agregar-atributos-openldap

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    26/132

    21

    Configuración de los Registros de Eventos (logs) del servidor Slapd

    En esta sección se verán los parametros requeridos para configurar el servicio slapd para elresgistro de eventos, los cuales nos ayudarán a analizar la información provista por el directorioLDAP, disgnosticar problemas o simplemente para verificar que todo este funcionando

    correctamente. Veremos las configuraciones requeridas para el legendario syslogd  o sysklogd  ysyslog-ng.

    Configuracion de los logs en OpenLDAP

    Ya que esta es nuestra primera instalación de un servidor OpenLDAP, es aconsejable que seincremente el nivel de severidad del registro de eventos del servidor slapd. El parametro loglevel  define la prioridad de los mensajes registrados, la siguiente tabla muestra los niveles de logsoportados 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 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    27/132

    22

    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 el registro de eventos de slapd use el valor none.

    Para nuestro caso usaremos el nivel stats (256) el cual nos mostrará información sobre el servicioslapd, conexiones, y accesos al servidor.

    En la sección de logs cambiaremos:

    # Read slapd.conf(5) for possible values loglevelnone

    Por:

    # Read slapd.conf(5) for possible values loglevelstats

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

    Configuraciones para sysklogd

    En la mayoría de distribuciones Linux el sistema de logs esta controlado por el demonio syslog,en Ubuntu el paquete sysklogd provee el demonio de logs predeterminado. En la configuración predeterminada de syslog en Ubuntu, los logs del servidor slapd son enviados con un facility

    local4.*, y por default todos los mensajes del servidor slapd son enviados a los archivos/var/log/debug   y /var/log/syslog , esta configuración hace que los mesajes de ldap semezclen con mensajes de sistema generales.

    Configuraremos el demonio sysklogd para que los logs referentes a OpenLDAP sean enviados a

    un archivo de logs independiente, por ejemplo, al archivo /var/log/ldap.log.

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

    root@pdc:~# cp /etc/rsyslog.d/50-default.conf{,.orig}

    Editamos el archivo /etc/rsyslog.d/50-default.conf y al final agregamos lo siguiente:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    28/132

    23

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

    Y también agregaremos unas exclusiones a los logs debug y syslog para que no se registren logsde ldap en ellos.

    Cambiando configuracion para el log /var/log/syslog:

    Cambiamos en el archivo archivo /etc/rsyslog.d/50-default.conf

    *.*;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:

    Quitamos el simbolo de # a las líneas de:

    *.=debug;\

    auth,authpriv.none;\

    news.none;mail.none -/var/log/debug

    y las dejamos de esta manera:

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

    news.none;mail.none;local4.none  -/var/log/debug

    Grabamos el archivo y nos salimos, después creamos el archivo vacio para los de ldap:

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

    Ahora garbamos y nos salimos del archivo slapd.conf y reiniciamos el servidor syslog para que los cambios tomenefecto:

    root@pdc:~# sudo /etc/init.d/rsyslog restart* Restarting system log daemon... [ OK ]

    Ahora pruebe hacer un tail -f /var/log/syslog, (termínelo con Ctrl + C) reinicie el servidor slapd y vea que no seregistre ningún evento relacionado al demonio slapd, si no aparece nada en dichos logs confirme que todos los logs se

    estan enviando a /var/log/ldap 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    29/132

    24

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

    # nano /etc/logrotate.d/rsyslog

    Con el siguiente contenido:/var/log/ldap.log{ rotate 7weeklymissingoknotifemptycompresspostrotate

    invoke-rc.d sysklogd reload > /dev/nullendscript}

    Y listo, ahora sus logs se rotarán semanalmente y serán mantenidos durante 7 semanas, al cumplirla 8a semana los logs serán rotados automáticamente.

    Configuración de los límites de consulta y conexión

    Existe un limite de cuantas entradas serán devueltas en las operaciones de busqueda de los clientesLDAP, este limite por defecto esta configurado a 500 lo que significa que solo serán devueltas 500entradas a los clientes LDAP aun cuando la consulta 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 específico cuando se haga unareplicación/sincronización del DIT.

    Revisión de permisos en archivos y directorios de Configuración

    Vamos a parar nuevamente el servicio de slapd

    root@pdc:~# sudo /etc/init.d/slapd stop StoppingOpenLDAP: slapd.

    Cambiamos el dueño y los permisos del archivo slapd.conf con los comandos:

    root@pdc:~# chown root:openldap /usr/share/slapd/slapd.conf

    Y le damos la mascara 640

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    30/132

    25

    root@pdc:~# chmod 640 /usr/share/slapd/slapd.conf

    Antes de volver reiniciar nuestro servidor para que nuestros cambios tomen efecto, verificaremosque los permisos sean los adecuados:

    Verificando que los permisos del archivo /usr/share/slapd/slapd.conf esten como se muestra aquí:root@pdc:~

    # ls -rw-

    r----- 1 /usr/share/slapd/slapd.conf 

    -l

    23:45

    /usr/share/slapd/slapd.c

    onfroot openldap 5079 2009-01-11 

    Ejecutando una revisión sintactica del archivo de configuración slapd.conf

    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 nuestroarchivo de configuración /usr/share/slapd/slapd.conf 

    root@pdc:~# slaptest -v -u configfile testing succeeded

    Con la opción -v habilitamos el modo verbose, esto es para que muestre detalles sobre posibles errores encontradosen la configuració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 eldeminio slapd con el nivel de severidad mayor, por ejemplo:

    root@pdc:~# slapd -d 16383

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

    Capitulo 4. Iniciando el servidor slapd y haciendo

    Pruebas Preliminares

    Ahora que ya tenemos nuestro servidor correctamente configurado y todas los permisos estancorrectos podremos iniciar nuestro servidor de forma ordinaria usando el script de inicio, parainiciar el servidor slapd usamos el comando:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    31/132

    26

    root@pdc:~# sudo /etc/init.d/slapd start

    * Starting OpenLDAP: slapd [ OK ]

    Si el servidor slapd se inicia correctamente, este registrará en el log /var/log/syslog el siguientemensaje:

    Jan 11 23:51:06 pdc slapd[9753]: @(#) $OpenLDAP: slapd 2.4.9 (Aug 1 2008 01

    begin_of_the_skype_highlighting 1 2008

    01 FREE end_of_the_skype_highlighting :08:50) $

    ^Ibuildd@terranova:/build/buildd/openldap2.3-  2.4.9/debian/build/servers/slapd

    Jan 11 23:51:06 pdc slapd[9755]: slapd starting

    En el mensaje anterior nos muestra que el proceso slapd con el identificador de proceso (PID)15795 se inicio correctamente.

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

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

    root@pdc:~# netstat -pltn | grep slapd

    tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN

    4400/slapd

    tcp6 0 0 :::389 :::* LISTEN4400/slapd

    Ahora haremos una consulta al servidor LDAP para ver si responde con lo más básico. Usaremos el comandoldapsearch para buscar el namingContexts del DIT.

    root@pdc:~# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

    # extended LDIF

    #

    # LDAPv3

    # base with scope baseObject

    # filter: (objectclass=*)

    # requesting: namingContexts

    #

    # dn: namingContexts:dc=example,dc=com  

    # search 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 LDAPesta funcionando correctamente.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    32/132

    27

    Ahora haremos una busqueda en el directorio LDAP autenticado como el usuario admin del LDAP y haremos la buqueda usando como base dc=example,dc=com, esto es para comprobar que la autenticación y nuestras ACLsfuncionen correctamente, 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" -W

    Enter LDAP Password:uacj # extended LDIF

    ## LDAPv3

    # base with scope subtree

    # filter: (objectclass=*)

    # requesting: ALL

    #

    # example.com dn:dc=example,dc=com  objectClass: topobjectClass: dcObjectobjectClass:organization o: ExampleS.A. de C.V.

    dc: example

    # admin, example.com dn:cn=admin,dc=example,dc=com  objectClass:simpleSecurityObjectobjectClass: organizationalRolecn: admindescription: LDAP administrator userPassword::e2NyeXB0fWUwTng4TmRUZk54Wm8=

    # search resultsearch: 2result: 0 Success

    # numResponses: 3# numEntries: 2

    Controlando el servicio Slapd

    En esta sección veremos como controla el servicio slapd, al controlar el servicio nos referimos ainiciar, detener, reiniciiar el proceso slapd.

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

    root@pdc:~# invoke-rc.d slapd start StartingOpenLDAP: slapd.

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

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

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    33/132

    28

    root@pdc:~# update-rc.d slapd defaults Adding system startup for/etc/init.d/slapd ...

    /etc/rc0.d/K20slapd -> ../init.d/slapd

    /etc/rc1.d/K20slapd -> ../init.d/slapd

    /etc/rc6.d/K20slapd -> ../init.d/slapd

    /etc/rc2.d/S20slapd -> ../init.d/slapd

    /etc/rc3.d/S20slapd -> ../init.d/slapd/etc/rc4.d/S20slapd -> ../init.d/slapd

    /etc/rc5.d/S20slapd -> ../init.d/slapd

    Cuando se instala el paquete slapd, este agregará el servicio slapd para que sea iniciadoautomaticamente al arranque del sistema, por lo que es posible que reciba un mensaje como elsiguiente:

    root@pdc:~# update-rc.d slapd defaults

    System startup links for /etc/init.d/slapd already exist.

    Si deseamos que el servidor slapd NO sea iniciado al arranque del sistema usaremos el comando:

    root@pdc:~# update-rc.d -f slapd remove

    Removing any system startup links for /etc/init.d/slapd ...

    /etc/rc0.d/K20slapd

    /etc/rc1.d/K20slapd

    /etc/rc2.d/S20slapd

    /etc/rc3.d/S20slapd

    /etc/rc4.d/S20slapd

    /etc/rc5.d/S20slapd

    /etc/rc6.d/K20slapd

    Con el comando anterior slapd ya no será iniciado al arranque del sistema, para controlarlo se

    tendrá que hacer con los comandos antes mencionados.

    Recursos adicionales

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

    Sitios web

    En las paginas listadas a continuación encontrará mayor información sobre los programasutilizados 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 SambaOpenLDAP

    Howto•  https://help.ubuntu.com/8.04/serverguide/C/openldap-server.html - Ubuntu Server Guide

    - OpenLDAP Server

    http://www.openldap.org/doc/admin24/http://www.openldap.org/doc/admin24/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/https://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttps://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttps://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttps://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttps://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttps://help.ubuntu.com/8.04/serverguide/C/openldap-server.htmlhttp://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/http://www.openldap.org/doc/admin24/http://www.openldap.org/doc/admin24/

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    34/132

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    35/132

    30

    Los parametros antes definidos son de uso general, si desea usar parametros diferentes para un

    usuario de sistema en particular cree un archivo ~/.ldaprc dentro del directorio home del usuario, por ejemplo:

    root@pdc:~# nano ~/.ldaprc

    Con el contenido:

    BASE dc=example,dc=com

    URI ldap://127.0.0.1

    BINDDN 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).

    Capítulo 6. Configuración de Samba y las

    herramientas smbldap-tools

    Instalación y configuración del servidor Samba

    En esta sección configuraremos el servidor Samba como un Controlador de Dominio Primario(PDC) Windows NT con la base de datos SAM almacenada en nuestro directorio LDAP.

    Los parámetros 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.

    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 paraservidor y el segundo las herramientas de cliente, diagnostico y resolución de problemas.

    Instalamos los paquetes para cliente y servidor Samba:

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    36/132

    31

    El paquete que instala la parte servidor de samba preconfigurado con algunos parámetros, además

    de que importa los usuarios de sistema en /etc/passwd a la base de datos de cuentas samba, ennuestro caso esta configuración no nos sirve por lo que eliminaremos la configuración creada y losarchivos de configuración que se crearon, para inicializar la configuración de samba detenemoslos servicios samba siga los siguienes pasos:

    root@pdc:~# sudo service smbd stop smbdstop/waiting

    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 configuració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 iniciaremoscon una configuración nueva, haremos un respaldo de este archivo antes de iniciar con lasmodificaciones.

    Creamos el respaldo del archivo /etc/samba/smb.conf por lo que lo vamos a mover

    root@pdc:~# mkdir /resp root@pdc:~# mv/etc/samba/smb.conf /resp

    En la siguiente sección podemos continuar con los parametros que nos intersan.

    Parametros Globales del servidor Samba

    El archivo de conifguración de samba define la sección [global], en esta sección especificaremos

     parametros globales que afectará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-SRV •  Descripción del servidor Samba: Servidor PDC-SRV 

    Además configuraremos los siguientes parametros extras:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    37/132

    32

    Soporte para habilitar privilegios de Grupos de Dominio Samba: enable privileges = yes, este parametro es útil por ejemplo para dar privilegios a los usuarios miembros del grupo DomainAdmins para unir equpos Windows a un Dominio NT.

    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-SRV server string =Servidor PDC-SRV wins support =yes os level = 33

    Configurando la autentificación para el controlador de dominio

    Agregamos la sección ## Authetication ## revisamos que exista:

    ####### Authetication #######

    #enable privileges = yes map to guest = Bad User

    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 lasconexiónes de usuarios que se autentiquen con una contraseña invalida serán rechazadas.

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

    Ahora configuraremos algunos parámetros para la generación de mensajes de logs, en la sección## Debugging/Accounting ## agregamos las siguientes líneas:

    ####### Debugging/Accounting #######syslog = 0 log level = 0 max logsize = 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 deseveridad 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 guardan en el directorio /var/log/samba  con el formatoMAQUINA.log.

    l

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    38/132

    33

    Configuraciones de Red para el servidor Samba

    En la sección [Networking] configuraremos los parametros de red y algunas configuraciones deseguridad recomendadas.

    ####### Networking #######

    interfaces = eth0 lo 192.167.1.0/24 148.210.119.0/70hosts allow = 127.0.0.1 192.168.1.0/24 148.210.119.0/70hosts deny = 0.0.0.0 smb ports = 139 445 bindinterfaces only = Yesname resolve order = wins hosts lmhosts bcast

    remote announce = 192.168.1.255/EXAMPLE

    Configurando los Parametros para Controlador de Dominio

    Ahora configuraremos los parametros relacionados con la configuración de un servidorControlador de Dominio ## Domains ##, por lo que agreamos las siguientes lineas.

    ####### Domains #######time server = yesdomain logons = yespreferred master = yeslogon path = logonhome = logon drive =logon script = casesensitive = no utmp =yes

    Parametros para interacción con el servidor LDAP

    Ahora definiremos los parametros necesarios para que samba utilice el directorio LDAP, por loque en la sección de ### Misc ###.

    ####### Misc #######

    socket options = TCP_NODELAY SO_RCVBUF=8192SO_SNDBUF=8192 username map = /etc/samba/smbuserspassdb 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  ldapuser 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 trusteddomains only = Yes

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    39/132

    34

    #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"

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

    set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

    Configuraciones de Codificación y Charset

    Ahora configuraremos los parametros para especificar el juego de caracteres predeterminado paraarchivos dos y unix en la sección de ### Misc ### .

    dos charset = 850Unix charset = ISO8859-1

    Hasta aquí termina la sección Global de smb.conf, en las siguientes secciones configuraremossecciones especiales para nuestro Controlador de Dominio.

    El recurso compartido especial [homes]

    El recurso compartido [homes] es un recurso compartido especial que es usado para compartir el

    directorio $HOME  de cada usuario, por ejemplo, tenemos un usuario unix/windows   de nombre

     jmedina, este usuario tiene un directorio$HOME

      en la ruta/home/jmedina

    , con este recursocompartido, cada vez que el usuario jmedina inicia sesión por Samba, tendrá disponible un recursocompartido en el servidor con el nombre "jmedina" y por medio de él podrá entrar a sus archivos privados en el servidor.

    [homes]

    comment = Home Directoriesvalid users = %U read only= no create mask = 0664directory mask = 0775

    browseable = no

    La linea valid users = %U  indica que este recurso compartido solo esta disponible para losusuarios Samba autenticados.

    En este recurso compartido no se especifica un path ya que podrá variar dependiendo del usuarioque haga login.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    40/132

    35

    El recurso compartido especial [netlogon]

    Este es otro recurso compartido especial, el recurso [netlogon] solo es utilizado cuando Sambaactua como un Controlador de Dominio, el proposito de este recurso compartido es almacenar losscripts de inico (logon scripts), estos scripts 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 deshares disponibles en el servidor, más sin embargo, si podrá ser accesado para los usuarios quehacen login en el dominio, el acceso será de solo lectura.

    Grabamos el archivo smb.conf y nos salimos a la terminal.

    La ultima opción que especificamos es username map apuntando al archivo/etc/samba/smbusers, este archivo sirve para mapear nombres de usuarios (alias), por ejemploen este archivo podemos crear un mapeo de usuario para que la cuenta root  sea mapeada aAdministrator  que es comunmente usada en entornos de red Windows para la cuenta de

    administrador. Para hacer esto, abrimos el archivo /etc/samba/smbusers  y agregamos elsiguiente contenido:

    root = Administrator

    TIP (NO HACER): Meter opción para que los usuarios miembros del grupo "Domain Admins"tengan permiso de escritura a este recurso compartido, así, estos usuarios podrán crear los logonscripts.

    Ahora creamos el directorio base en el cual almacenaremos los logon scripts:

    root@pdc:~# mkdir -p --mode 755 /home/samba/netlogon

    TIP(NO HACER): Cambiar los permisos a root:"Domain Admins" con permisos 775

    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:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    41/132

    36

    root@pdc:~# nano /home/samba/netlogon/logon.bat

    Y agregue el siguiente contenido:

    net time \\PDC-SRV /set /yes net

    use h: \\PDC-SRV\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

    Volvemos a editar el archivo /etc/samba/smb.conf

    El recurso compartido especial [profiles]

    El recurso compartido [profiles] también es de uso especial y solo es necesario cuando Samba seconf igura como Controlador de Dominio , el proposito de este recurso compartido es almacenarlos Perfiles de Usuarios, en especifico es usado cuando se configura que los usuarios de dominioutilizen los Perfiles Móviles ( Roaming Profiles), por lo que agregamos las siguientes lineas

    [profiles]

    path =/home/samba/profiles readonly = No create mask =

    0600 directory mask = 0700browseable = No guest ok =Yes profile acls = Yescsc policy = disable forceuser = %Uvalid users = %U @"Domain Admins"

    La ruta de este recurso compartido será usado con el atributo ProfilePath para indicar la ruta endonde esta almacenado el Perfil del Usuario, por ejemplo, la entrada en la SAM del dominio parael usuario jmedina especifica: ProfilePath=\\PDC-SRV\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 desde otra terminal como root ponemosel siguiente comando:

    root@pdc:~# mkdir -p --mode 1777 /home/samba/profiles

    Continue editando el archivo para agregar el recurso compartido publico.

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    42/132

    37

    El recurso compartido publico

    Crearemos un recurso compartido público con documentos, programas e imagenes en dondecualquier usuario del dominio puede acceder, incluso usuarios anonimos, el recurso compartido sellamará público, y en samba lo definimos así:

    [publico]

    comment = Directorio de datos publicospath = /home/samba/publico read only =Yes guest ok = yes

    Ahora si se puede guardar el archivo y continuar con las configuraciones.

    Creamos el directorio:

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

    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 un revisión sintactica del archivo smb.conf, este comando nos dirá si hayalgún error de configuración, o si algun parametro esta mal escrito.

    Para correr la revisón ejecutamos:

    root@pdc:~# testparm Loadsmb config files from fProcessing section "[homes]"

    Processing section "[netlogon]"

    Processing section "[profiles]"Loaded services file OK.Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions

    Si le aparece el mensaje "ERROR: the 'unix password sync' parameter is set and the 'passwd program'(/usr/sbin/smbldap-passwd) cannot be executed (error was No such file or directory)." ignorelo, en la siguiente seccióninstalaremos el paquete smbldap-tools.

    Si hubiera algun error en la sintaxis el comando testparm no lo reportará y nos dirá en que linea se encuentra el errory alguna descripción corta sobre el error.

    Nota

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    43/132

    38

    Para más información acerca de los parametros en el archivo de configuración/etc/samba/smb.conf ver la página del manual 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 lacontraseña del usuario ldap admin dn especificada en el archivo smb.conf. La cuenta del ldap admin dn debe de tener los suficientes permisos para leer, agregar y modificar entradas en el directorio LDAP.

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

    root@pdc:~# smbpasswd -W

    Setting stored password for "cn=admin,dc=example,dc=com " in secrets.tdb New SMB password:uacj Retype new SMB password:uacj 

    La contraseña será almacenada en el archivo /var/lib/samba/secrets.tdb. Se almacena aquí para no tener

    que espcificarla cada vez que se vaya a ejecutar alguna operación relacionada a cuentas Samba en el directorio LDAP.

    El archivo secrets.tdb debe de tener los permisos así:

    Nota 

    Para poder manipular los archivos tdb podemos utilizar las herramientas del paquete tdbtools.

    Ahora si podemos iniciar el servidor samldaba

    root@pdc:~# sudo service smbd start smbd start/running,process 4306 (puede cambiar este numero)

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

    Instalación y Configuración de las smbldap-tools

    Ahora configuraremos las herramientas smbldap-tools para predefinir los parametros deconfiguración para la administración de cuentas Unix y Samba.

    Primero instalaremos el paquete smbldap-tools así:

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

    root@pdc:~# ls -l /var/lib/samba/private/secrets.tdb

    -rw------- 1 root root 8192

    /var/lib/samba/private/secrets.tdb

    2008-06-18 23:29 

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    44/132

    39

    Los archivos de configuración de las herramientas smbldap-tools se encuentran en el directorio/etc/smbldap -tools, en este directorio deben de existir dos archivos de configuración, el archivo

    smbldap.conf   contiene directivas de configuración tanto para la creación y modificación de

    cuentas Unix y Samba y el archivo smbldap_bind.conf  contiene el 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 deejemplo que se instala junto con el paquete smbldap-tools, lo copiamos así:

    root@pdc:~# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz >/etc/smbldap-tools/smbldap.conf

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

    root@pdc:~# cp

    /etc/smbldap-tools/

    /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf

    Antes de empezar a configurar estas herramientas cambiaremos los permisos de acceso para estosarchivos,

    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 yel grupo dueño debe de ser openldap.

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

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

    root@pdc:~# chmod 640 smbldap*

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

    root@pdc:~# nano smbldap_bind.conf

    Cambiar:

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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    45/132

    40

    Por:

    slaveDN="cn=admin,dc=example,dc=com " slavePw="uacj"masterDN="cn=admin,dc=example,dc=com "masterPw="uacj"

    Nota 

    Aunque aun no tengamos configurado un servidor LDAP esclavo usaremos el mismocn=admin que en nuestro servidor Maestro.

    En el archvo smbldap.conf se debe de especificar el SID del dominio Samba con el que estaremostrabajando, para obtener el SID de nuestro servidor utilizaremos el comando net.

    Obteniendo el SID local:

    root@pdc:~# net getlocalsid SID for domain PDC-SRV is: S-1-5-21-2911508632-2405292923-4115677068 

    El SID resultante lo copiaremos, en este caso el SID es: S-1-5-21-2911508632-2405292923- 4115677068 Como minimo debemos de configurar los parametros que estan marcados en negritas.

    Ahora editamos el archivo principal de configuración de smbldap-tools/etc/smbldaptools/smbldap.conf:

    root@pdc:~# nano /etc/smbldap-tools/smbldap.conf

    TODO: Dividir los parametros globales para el dominio Samba y los parametros para especificaren que servidor LDAP almacenaremos 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" return

    SID="S-1-5-21-2911508632-2405292923-4115677068"

    # Domain name the Samba server is in charged.# If not defined, parameter is taking from smb.conf configuration file

    # Ex: sambaDomain="IDEALX-NT" sambaDomain="EXAMPLE"

    # Slave LDAP server

    # Ex: slaveLDAP=127.0.0.1# If not defined, parameter is set to "127.0.0.1" slaveLDAP="ldap://127.0.0.1"

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    46/132

    41

    # 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="ldap://127.0.0.1"

    # 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/TLSdesactivaremos el uso de TLS en nuestra 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á comovariable para otras configuraciones, todos los contenedores para almacenar cuentas y gruposestará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 andgroups

    # 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:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    47/132

    42

    # 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) GID

    defaultUserGid="513"

    # Default Computer (Samba) GIDdefaultComputerGid="515"

    # Skel dir

    skeletonDir="/etc/skel"

    # Default password validation time (time in days) Comment the next line if# 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 del directorio home automáticamente en clienteswindows a través del logon script:

    # The UNC path to home drives location (%U username substitution)

    # Just set it to a null string if you want to use the smb.conf 'logon home'# directive and/or disable roaming profiles# Ex: userSmbHome="\\PDC-SMB3\%U" userSmbHome="\\PDC-SRV\%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

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    48/132

    43

    # Ex: userProfile="\\PDC-SMB3\profiles\%U" userProfile="\\PDC-SRV\profiles\%U"

    # The default Home Drive Letter mapping

    # (will be automatically mapped at logon time if home directory exist)

    # Ex: userHomeDrive="H:"userHomeDrive="H:"

    # The default user netlogon script name (%U username substitution)

    # if not used, will be automatically username.cmd

    # make sure script file is edited under dos

    # Ex: userScript="startup.cmd" # make sure script file is edited under dos

    userScript="logon.bat"

    Cerramos y guardamos el archivo, En la siguiente sección veremos como actualizar el directorioLDAP con la información de Samba requerida para un controlador de dominio.

    Llenando el Directorio LDAP con smbldap-populate

    Ahora que ya hemos editado los archivos de configuración de las herramientas smbldap-tools,inicializaremos nuestro directorio 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 al usuarios Administrador  y Guest  Samba respectivamente.

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

    En el contenedor de los Grupos, se crearán por defecto los Grupos Predeterminados de undominio Samba: Domain Admins, Domain Users, Domain Guests, Domain Computers.

    •  Contenedor (OU= Unidad Organizativa ) para las cuentas de Computadoras Windows:ou=Computers 

    •  Contenedor (OU= Unidad Organizativa ) para los mapeos de Cuentas Unix a CuentasSamba/Windows (SID): ou=Idmap

    Para inicializar nuestro directorio LDAP con la información de arriba usaremos el comandosmbldap-populate de la siguiente manera:

  • 8/17/2019 Instalacion de Un Servidor SAMBA en Dominio y Recursos Compartidos

    49/132

    44

    root@pdc:~# smbldap-populate

    Populating LDAP directory for domain EXAMPLE (S-1-5-21-2911508632-24052929234115677068)(using builtin directory structure)

    entry dc=example,dc=dev alreadyexist.

    adding new entry: ou=Users,dc=example,dc=com adding new entry:ou=Groups,dc=example,dc=com adding new entry: ou=Computers,dc=example,dc=comadding new entry: ou=Idmap,dc=example,dc=com adding new entry:uid=root,ou=Users,dc=example,dc=com adding new entry:uid=nobody,ou=Users,dc=example,dc=com adding new entry: cn=DomainAdmins,ou=Groups,dc=example,dc=com adding new entry: cn=DomainUsers,ou=Groups,dc=example,dc=com adding new entry: cn=DomainGuests,ou=Groups,dc=example,dc=com adding new entry: cn=DomainComputers,ou=Groups,dc=example,dc=com adding new entry:cn=Administrators,ou=Groups,dc=example,dc=com adding new entry: cn=AccountOperators,ou=Groups,dc=example,dc=com adding new entry: cn=PrintOperators,ou=Groups,dc=example,dc=com adding new entry: cn=BackupOperators,ou=Groups,dc=example,dc=com adding new entry:

    cn=Replicators,ou=Groups,dc=example,dc=com entrysambaDomainName=EXAMPLE,dc=example,dc=com already exist. Updating it...

    Please provide a password for the domain root:

    Changing UNIX and sdamba passwords for root

    New password:uacj Retype new password:uacj 

    Al final se nos solicita que asignemos una contraseña para el usuario root del dominio, utilizaremosla contraseña: uacj 

    Si al llenar el directorio LDAP no se presenta error alguno, entonces al final tendremos nuestro

    arbol de directorio con la siguiente estructura.dc=EXAMPLE,dc=COM  |

    ,___ ou=Users  Contenedor para almacenar cuentas deusuario para sistemas Linux/Unix y Windows | |

    | ,_______uid=root  Usuario Unix/Samba root (AdministradorUnix y Administrador de Dominio Samba)

    | |

    | ,_______uid