You are on page 1of 77

2010

Universidad de El Salvador, Facultad Multidisciplinaria de Occdente Alumnos: Hctor Oswaldo Marroqun Argueta Ricardo Enrique Martnez Monterrosa Yassir Miguel Alfredo Tejada Gutierrez Catedrtico: Juan Carlos Pea

[ MANUAL DE SISTEMA DE CONTROL DE DOMINIO ]


Implementacin de un sistema de control de dominio, con autenticacon LDAP

Contenido
Introduccin ........................................................................................................................................ 1 Datos Generales de Configuracin ...................................................................................................... 1 Requerimientos de Software .............................................................................................................. 2 Instalacin y configuracin de servidor DNS....................................................................................... 3 Instalacin y configuracin del servidor LDAP .................................................................................... 5 Configuracin inicial del servicio slapd ........................................................................................... 7 Agregando los esquemas (schemas) necesarios ............................................................................. 8 Configurando las Listas de Control de Acceso (ACLs) ................................................................... 10 Configurando los ndices de atributos ms usados ....................................................................... 11 Revisin de permisos en archivos y directorios de Configuracin ................................................ 11 Ejecutando una revisin sintctica del archivo de configuracin slapd.conf ............................... 12 Iniciando el servidor slapd y haciendo pruebas preliminares ....................................................... 13 Configuracin del Cliente LDAP..................................................................................................... 14 Configuracin de Samba y las herramientas smbldap-tools ............................................................. 15 Instalacin y configuracin del servidor Samba............................................................................ 15 Instalando el servidor y cliente Samba ......................................................................................... 15 Configuraciones de Samba para Controlador de Dominio............................................................ 16 Parmetros Globales del servidor Samba ..................................................................................... 16 El recurso compartido especial [homes] ....................................................................................... 19 El recurso compartido especial [netlogon] ................................................................................... 19 El recurso compartido especial [profiles]...................................................................................... 20 Especificando la contrasea del ldap admin dn ............................................................................ 22 Instalacin y Configuracin de las smbldap-tools ......................................................................... 23 Llenando el Directorio LDAP con smbldap-populate .................................................................... 27 Configuracin de la resolucin de Identidades con NSS_LDAP ........................................................ 29 Configuracin de la Autenticacin con PAM_LDAP .......................................................................... 33 Introduccin a los Mdulos de Autenticacin PAM ...................................................................... 33 Respaldando la configuracin de PAM ......................................................................................... 34 Configurando los mdulos de autenticacin de PAM ................................................................... 34 Instalando el modulo Cracklib de PAM ..................................................................................... 35 Configurando Archivo de configuracin libpam-ldap.conf ........................................................... 35

Migracin de usuarios y grupos Unix/Posix al directorio LDAP ........................................................ 36 Migracin de Usuarios (/etc/passwd y /etc/shadow) ................................................................... 36 Migracin de Grupos (/etc/group) ................................................................................................ 38 Integrando Clientes Windows al Dominio Samba ............................................................................. 39 Requerimientos del Sistema ......................................................................................................... 39 Configuracin de los parmetros de red en el equipo Windows.................................................. 39 Informacin necesaria para configurar los parmetros de red ................................................ 39 Configurando correctamente los parmetros de red ............................................................... 40 Verificacin de los Parmetros de Red ..................................................................................... 43 Configuracin del nombre de equipo Windows ........................................................................... 43 Uniendo el equipo Windows al Dominio Samba........................................................................... 45 Como Iniciar Sesin el Dominio Samba ......................................................................................... 54 Integracin de clientes Linux al dominio........................................................................................... 56 Autenticacin De Usuarios Y Grupos De Dominio Samba En Clientes Linux ................................ 57 Configurando un Controlador de Dominio de Respaldo (BDC) ......................................................... 60 Servidor de archivos OpenFiler ......................................................................................................... 62 Instalacin del servidor OpenFiler ................................................................................................ 62 Configuracin de servidor de archivos OpenFiler ......................................................................... 63 Integrando servidor de archivos OpenFiler con los controladores de dominio................................ 71

Introduccin
El presente proyecto muestra las configuraciones necesarias para montar un control de dominio con tolerancia a fallos, es decir, un servidor de control de dominio con un servidor secundario que respalde su funcionamiento. ste, permitir el logueo de clientes desde sistemas Windows y Linux al mismo, usando la autenticacin de usuarios propia de dichos sistemas, con la variante que los usuarios no estarn en las computadoras que posean los mismos, sino que se encontrarn dentro una base de datos montada en un servidor LDAP, contra el cual debern autenticarse. Adems, los clientes que dispongan de los servicios del dominio, tendrn sus archivos y configuraciones en un servidor de red de rea de almacenamiento (Servidor SAN por sus siglas en ingls), de manera que dichos archivos y configuraciones estarn disponibles para ellos en cualquier computadora que se encuentre pegada al dominio y siempre y cuando se logueen con su usuario. La idea de esto, es crear una red donde los recursos de cada usuario estn disponibles solo para l en cualquier parte donde haya una computadora que pueda unirse al dominio creado para el proyecto, con lo que se logra una mayor disponibilidad de la informacin para los usuarios en cualquier parte del rea fsica de accin de la red, a la vez que se mantiene centralizada la informacin de los mismos.

Datos Generales de Configuracin


Un poco de informacin general que usaremos en muchas de las configuraciones de este tutorial: Se configurar el Nombre de Dominio Samba/NT: CEVIRTUAL Nombre NetBIOS del servidor Samba: cevirtual La Direccin IP del servidor de control de dominio principal de cevirtual es: 192.168.0.2 El servidor samba, dns y el servidor ldap estn en la misma mquina, la 192.168.0.2 La Direccin IP del servidor de control de dominio de cevirtual es: 192.168.0.2 La Direccin IP del servidor de control de dominio de respaldo de cevirtual puede ser cualquiera en el rango 192.168.0.0/24 mientras no se repita con ningn otro servidor o cliente. La Direccin IP del servidor OpenFiler es: 192.168.0.4 Los clientes del control de dominio para stas configuraciones estn dentro del rango 192.168.0.0/24, pero no significa que solo en dicho rango se puedan colocar, ya que puede trabajar con otras redes (esto se detallar mas adelante) 1

Requerimientos de Software
La implementacin de lo que se describe en este documento ser en base a la distribucin de Linux Debian Squeeze, adems, usaremos el siguiente software con su respectiva versin: OpenLDAP Slapd 2.4.21-1 OpenLDAP es una implementacin libre de los protocolos LDAP. Samba 2:3.4.8 Samba es la implementacin libre de los protocolos SMB/CIFS el cual funcionar como servidor Controlador de Dominio usando como base de informacin un directorio LDAP, adems servir como servidor de impresoras y archivos. smbldap-tools 0.9.5-1 Herramientas para administrar cuentas Unix/Posix y Samba almacenadas en un servidor OpenLDAP libnss-ldap 1.3.04-4 NSS son las bibliotecas de resolucin de entidades, servirn para resolver nombres de usuarios a UID y viceversa, as como nombres de grupos a GID y viceversa usando como fuente de informacin el directorio LDAP. libpam-ldap 1.1.1-3 PAM son los mdulos de autenticacin/autorizacin para otorgar permisos de acceso a diferentes servicios locales usando como fuente de informacin el servidor LDAP. klamav 0.46-3 Antivirus para sistemas UNIX utilizado para la proteccin de los archivos del dominio. libpam-cracklib 1.1.1-3 Librera que incluye un modelo para comprobar la seguridad de los passwords usados en el dominio por los usuarios para que no sean demasiado dbiles. ssh 1:5.5 Asistente de conexin remota utilizado para realizar las pruebas en el dominio, principalmente para las conexiones Openfiler NSA 2.6.26.8-1 Servidor de archivos basado en CentOS que utiliza la tecnologa SAN (Storage Area Network) bind9 1:9.7.0.dfsg.P1-1 Servidor DNS usado para resolver el dominio a la red utilizada en el proyecto 2

Instalacin y configuracin de servidor DNS


Como primer paso y para iniciar con la implementacin del proyecto, configuraremos un servidor DNS que permita el acceso a un dominio que ser el que controlaremos para proveer los servicios desados a los clientes. Utilizaremos el servidor Bind, el cual es un servidor DNS para sistemas Linux. Para instalarlo, escribiremos como root el siguiente comando (las lneas de comandos que empiecen con # deben ser ejecutadas autenticados como usuarios root del sistema):
#apt-get install bind9

Luego de ello, configuraremos los archivos de zona necesarios para definir las configuraciones del dominio que deseamos que nuestro servidor DNS resuelva. Crearemos una carpeta en /var bajo el nombre de bind donde guardaremos los archivos de zona para nuestro dominio. Para crear nuestra carpeta escribimos en consola el siguiente comando:
#mkdir -vp --mode 0700 /var/bind

Luego, en dicha carpeta crearemos los archivos de zona con la siguiente informacin: Archivo db.cevirtual
$TTL @ 604800 IN SOA cevirtual. admin.cevirtual. ( 1 ; Serial 1200 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ns.cevirtual. 192.168.0.2 192.168.0.2

; @ @ ns

IN IN IN

NS A A

Archivo db.0.168.192
$TTL @ 604800 IN SOA cevirtual. admin.cevirtual. ( 1 ; Serial 1200 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ns.cevirtual. ns.cevirtual.

; @ 2

IN IN

NS PTR

Ahora, configuraremos el servidor bind para que agregue estas zonas y provea el servicio dns para nuestro dominio cevirtual Agregamos las siguientes lneas al archivo /etc/bind/named.conf.local
zone "cevirtual" { type master; file "/var/bind/db.cevirtual"; }; zone "0.168.192.in-addr.arpa" { type master; file "/var/bind/db.0.168.192"; };

Con esto, solo reiniciamos nuestro servidor bind con el comando:


#/etc/init.d/bind9 restart

Y ya nuestro servidor bind debera proveer el servicio de dns para dicho dominio. Para agregar a nuestro servidor DNS a las mquinas que usaran nuestro dominio, solo debe agregarse la siguiente lnea al archivo /etc/resolv.conf:
nameserver 192.168.0.2

No se entrar en detalles de funcionamiento del servidor DNS. Si desea mas informacin, visite la pgina oficial de bind9 donde encontrar en detalle manuales sobre le funcionamiento y las configuraciones del mismo: http://www.bind9.net/manuals

Instalacin y configuracin del servidor LDAP


Para empezar, instalaremos y configuraremos el servidor LDAP junto con las herramientas de administracin y cliente. Para ello ejecutaremos el siguiente comando:
# apt-get install slapd ldap-utils

Cuando se instala el paquete slapd al final nos lanzar un asistente de configuracin del servicio slapd, nos pedir que ingresemos la contrasea para el usuario administrador de LDAP. Aunque despus vamos a reconfigurar el servidor slapd, ingresaremos una contrasea para el usuario administrador del servidor LDAP: Administrator passwd: admin Confirm passwd: admin El asistente post instalacin automticamente nos configurar un directorio usando el Base DN en base al nombre de dominio que tenga configurado nuestro servidor. Se recomienda reconfigurar el paquete slapd para una configuracin ms personalizada, para reconfigurar el paquete slapd usamos el comando:
# dpkg-reconfigure slapd

Al reconfigurar el paquete slapd se lanzar el mismo asistente que vimos atrs, pero en este caso ser reconfigurado desde cero. La primer pantalla nos pregunta si queremos omitir la configuracin inicial del servidor slapd, contestaremos: NO Despus, nos pregunta el nombre de dominio con el que queremos configurar nuestro rbol de directorio, este nombre de dominio ser configurado con la base de nuestro directorio (Base DN). Si ingresamos el nombre de dominio cevirtual entonces en formato Domain Component (DC por sus siglas en Ingls) nos pondr nuestra base as: dc=cevirtual. A continuacin nos pregunta el nombre de la organizacin para la que configuraremos el directorio LDAP. Ingresaremos: ues (o la organizacin que ustedes deseen). Despus de configurar el nombre de dominio y la organizacin nos pide ingresar una contrasea para el usuario Administrador del directorio LDAP, en este caso el

Distinguished Name (DN por sus siglas en Ingls) cn=admin,dc=cevirtual, usaremos la contrasea: admin

de

la

cuenta

ser:

Ahora confirmaremos la contrasea para el Administrador del servidor LDAP, usaremos la misma que se ingreso arriba: admin En este paso seleccionaremos el tipo de base de datos (data store) en el que almacenaremos la informacin de nuestro directorio, utilizaremos el tipo HDB por ser un tipo de base mas nuevo y que proporciona mejores prestaciones que BDB. En el siguiente paso nos pregunta si deseamos eliminar la base de datos del directorio cuando purguemos el paquete slapd, contestaremos: No
Importante

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

Configuracin 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, los archivos y directorios que utilicemos en nuestra instalacin debern de pertenecer a este usuario y grupo. Verificaremos que se cre un grupo de nombre openldap:
# grep ldap /etc/group openldap:x:108:

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

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

Verificaremos que el demonio slapd sea ejecutado con el usaurio y grupo openldap, esto est definido en el archivo /etc/default/slapd, y por defecto est as:
# nano /etc/default/slapd

Este es el contenido del archivo (sin los comentarios):


SLAPD_USER="openldap" SLAPD_GROUP="openldap" SLAPD_PIDFILE=

Antes de modificar el archivo principal de configuracin del demonio slapd, detendremos el servicio:
# /etc/init.d/slapd stop Stopping OpenLDAP: slapd.

Agregando los esquemas (schemas) necesarios


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

El Nombre de Dominio Samba: sambaDomainName El SID del Dominio Samba: SambaSID Ruta al directorio del perfil del usaurio Samba: sambaProfilePath Letra de unidad de red asignada al HOME del usuario Samba: sambaHomeDrive La contrasea NT (MD4 hash) del usuario Samba: sambaNTPassword La contrasea LanManager del usuario Samba: sambaLMPassword La ruta del script de inicio de sesin (Logon Script) del usuario Samba: sambaLogonScript La Ruta al directorio HOME del usuario Samba: sambaHomePath El ID del grupo primario al que pertenece el usuario Samba: sambaPrimaryGroupID

El esquema samba define ms atributos, pero los principales son estos que se mencionaron arriba, para conocer los dems atributos ver el archivo:
/etc/ldap/schemas/samba.schema.

Los esquemas estn definidos en archivos dentro del directorio /etc/ldap/schema/, el esquema para samba no viene incluido dentro de la instalacin de slapd, as que tendremos que instalar el paquete samba-doc, el cual contiene el archivo samba.schema:
# apt-get install samba-doc

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

Revisamos que tenga los permisos adecuados:


# ls -l /etc/ldap/schema/samba.schema

-rw-r--r-- 1 root root 19424 2010-06-24 16:21 /etc/ldap/schema/samba.schema

Ahora que ya tenemos el archivo del esquema de samba instalado necesitamos decirle al servidor slapd que lo utilice, para hacer esto modificaremos el archivo:
/etc/ldap/slapd.conf.

Antes de modificar el archivo de configuracin de slapd haremos una copia de seguridad:


# cp /etc/ldap/slapd.conf{,.orig}

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


# nano /etc/ldap/slapd.conf

En la seccin donde se incluyen los esquemas:


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

Despus del esquema inetorgperson, agregar:


include /etc/ldap/schema/samba.schema

De manera que quede as:


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

Configurando las Listas de Control de Acceso (ACLs)


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

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

10

Configurando los ndices de atributos ms usados


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

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

Revisin de permisos en archivos y directorios de Configuracin


Antes de reiniciar nuestro servidor para que nuestros cambios tomen efecto, verificaremos que los permisos sean los adecuados: Verificando que los permisos del archivo /etc/ldap/slapd.conf estn como se muestra aqu:
# ls -l /etc/ldap/slapd.conf -rw-r----- 1 root openldap 5079 2010-06-24 16:35 /etc/ldap/slapd.conf

Si no estn as, entonces cambiarlos con los comandos:


# chown root:openldap /etc/ldap/slapd.conf # chmod 640 /etc/ldap/slapd.conf

11

Ejecutando una revisin sintctica del archivo de configuracin slapd.conf


Antes de reiniciar nuestro servidor slapd realizaremos una comprobacin de que nuestras configuraciones estn correctas, el comando slaptest nos har una revisin sintctica de nuestro archivo de configuracin /etc/ldap/slapd.conf.
# slaptest -v -u config file testing succeeded

Con la opcin -v habilitamos el modo verbose, esto es para que muestre detalles sobre posibles errores encontrados en la configuracin. La opcin -u permite que solo se ejecuta la revisin sintctica aun cuando no se puedan abrir los archivos de bases de datos del directorio (/var/lib/ldap/). Si el comando slaptest nos muestra algn 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 demonio slapd con el nivel de severidad mayor, por ejemplo:
# slapd -d 16383

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

12

Iniciando el servidor slapd y haciendo pruebas preliminares


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

Si el servidor slapd se inicia correctamente, este registrar en el log /var/log/syslog un mensaje con el error que pudo haber provocado que no se iniciara. Ahora haremos una consulta al servidor LDAP para ver si responde con lo ms bsico. Usaremos el comando ldapsearch para buscar el namingContexts del DIT.
root@ushldap:~# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts # extended LDIF # # LDAPv3 # base <> with scope baseObject # filter: (objectclass=*) # requesting: namingContexts # # dn: namingContexts: dc=cevirtual # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1

Si el comando ldapsearch nos muestra algo similar a lo que se muestra arriba significa que nuestro servidor LDAP est funcionando correctamente. Ahora haremos una bsqueda en el directorio LDAP autenticado como el usuario admin del LDAP y haremos la bsqueda usando como base dc=cevirtual, esto es para comprobar que la autenticacin y nuestras ACLs funcionen correctamente, adems, de comprobar que el directorio se haya inicializado con la estructura bsica.
# ldapsearch -x -D "cn=admin,dc=cevirtual" -b "dc=cevirtual" -W Enter LDAP Password:admin

Este comando nos debe retornar una salida similar a la anterior solo que con los datos del usuario admin.
13

Configuracin del Cliente LDAP


Las herramientas cliente LDAP como: ldapsearch, ldapmodify, ldapadd y otras usan los parametros de configuracin definidos en el archivo /etc/ldap/ldap.conf, bsicamente en este archivo se pueden definir los siguientes parmetros:

URI - Direccin del servidor o servidores LDAP predeterminados BASE - Sufijo de la base de bsqueda Base DN SIZELIMIT - Tamao mximo de las bsquedas TIMELIMIT - Lmite de tiempo para las consultas BINDDN - DN de la cuenta con la que se efectuarn las operaciones

Por ahora solo configuraremos los primeros dos parametros, editemos el archivo de configuracin del cliente LDAP /etc/ldap/ldap.conf:
# nano /etc/ldap/ldap.conf

Definimos la direccin del servidor LDAP y la base de bsqueda:


BASE URI dc=cevirtual ldap://127.0.0.1

14

Configuracin de Samba y las herramientas smbldap-tools


Ahora vamos a ver como configurar el servidor Samba y las herramientas smbldap-tools para configurar Samba como Controlador de Dominio usando un directorio OpenLDAP como fuente de informacin centralizada para cuentas Unix y Samba.

Instalacin y configuracin del servidor Samba


En esta seccin 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 parmetros Generales que configuraremos son:

Parmetros de identificacin de red como: Dominio, Nombre Servidor. Configuracin para registro de eventos (logs) Interfaces y direcciones de red a las que est conectado el servidor Configuracin de parmetros para Controlador de Dominio Informacin del servidor LDAP y cmo utilizarlo Definicin de script para automatizar la administracin de las cuentas samba/ldap. Directorios compartidos especiales como homes, netlogon y profiles.

A continuacin se explica detalladamente la instalacin de samba:

Instalando el servidor y cliente Samba


En esta seccin instalaremos el servidor samba que en Debian est conformado principalmente por los paquetes: samba y smbclient, el primero contiene los programas para servidor y el segundo las herramientas de cliente y diagnostico. Primero instalaremos los paquetes tanto de servidor y clientes.
# apt-get install samba smbclient

El paquete de instalacin del servidor samba es pre configurado con algunos parmetros y tambin importan los usuarios en /etc/passwd, en nuestro caso esta configuracin no nos sirve por lo que eliminaremos la configuracin creada y los archivos de configuracin que se inicializaron, detenemos los servicios samba para iniciar con la configuracin en limpio.
# /etc/init.d/samba stop * Stopping Samba daemons [ OK ]

Nota

Todava no iniciaremos el servidor samba hasta que este nuevamente configurado.

15

Configuraciones de Samba para Controlador de Dominio


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

En la siguiente seccin podemos continuar con los parmetros que nos interesan.

Parmetros Globales del servidor Samba


El archivo de configuracin de samba define la seccin [global], en esta seccin especificaremos parmetros globales que afectarn el comportamiento del servidor Samba, los parmetros principales son:

El nombre del Grupo de Trabajo/Dominio al que pertenecemos: CEVIRTUAL Nombre NetBIOS del Servidor Samba: cevirtual Descripcin del servidor Samba: Samba PDC Version %v

Adems configuraremos los siguientes parametros extras: Soporte para habilitar privilegios de Grupos de Dominio Samba: enable privileges = yes, este parmetro es til por ejemplo para dar privilegios a los usuarios miembros del grupo Domain Admins para unir equpos Windows a un Dominio NT. Hay muchos parmetros que se configuran en ste archivo, pero no detallaremos para que sirve cada uno, para ms informacin, puedes dirigirte al manual oficial de smb.conf en el siguiente url: http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html Crearemos un archivo /etc/samba/smb.conf nuevo con los siguientes parametros: El inicio de la seccin global quedar as:
[global] workgroup = CEVIRTUAL netbios name = cevirtual server string = Samba PDC Version %v wins support = yes map to guest = Bad User dns proxy = no

16

name resolve order = wins hosts lmhost bcast

El parmetro map to guest = Bad User define que cuando un usuario no existente (en el dominio) se conecte al servidor, el servidor smbd mapear esa conexin al usuario annimo, pero las conexiones de usuarios que se autentiquen con una contrasea invalida sern rechazadas.

Configurando los logs Ahora configuraremos algunos parmetros para la generacin de logs.
syslog = 0 log level = 0 max log size = 50 log file = /var/log/samba/%m.log

Configuraciones de red para el servidor Samba En esta seccin configuraremos los parmetros de red y algunas configuraciones de seguridad recomendadas.
####networking socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = eth0 lo hosts allow = 127.0.0.1, 192.168.0.0/24 hosts deny = 0.0.0.0 smb ports = 139 445 bind interfaces only = Yes name resolve order = wins hosts lmhosts bcast

Configurando los parmetros para Controlador de Dominio Ahora configuraremos los parmetros relacionados con la configuracin de un servidor Controlador de Dominio.
### PDC Options time server = Yes wins support = Yes os level = 65 domain logons = Yes preferred master = Yes

17

logon logon logon logon

path = home = drive = script =

unix password sync = Yes passwd program = /usr/sbin/smbldap-passwd -u %u passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n" ldap passwd sync = Yes

Parmetros para interaccin con el servidor LDAP Ahora definiremos los parmetros necesarios para que samba utilice el directorio LDAP.
###SAMBA-LDAP declarations passdb backend = ldapsam:ldap://127.0.0.1/ ldap admin dn = cn=admin,dc=cevirtual ldap suffix = dc= cevirtual ldap group suffix = ou=groups ldap user suffix = ou=users ldap machine suffix = ou=machines 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 add machine script = /usr/sbin/smbldap-useradd -w -g 515 -d /dev/null -s /bin/false "%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"

Configuracines de codificacin Ahora configuraremos los parmetros para especificar el juego de caracteres predeterminado para archivos dos y unix.
###Configuracin de juego de caracteres dos charset = 850 Unix charset = ISO8859-1

Hasta aqu termina la seccin Global de smb.conf.


18

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 alguien, este usuario tiene un directorio $HOME en la ruta /home/alguien, con este recurso compartido, cada vez que el usuario alguien inicia sesin por Samba, tendr disponible un recurso compartido en el servidor con el nombre "alguien" y por medio de l podr entrar a sus archivos privados en el servidor.
###Configuraciones de recursos compartidos [homes] comment = Home Directories valid users = %U read only = No create mask = 0664 directory mask = 0775 browseable = No

La lnea valid users = %U indica que este recurso compartido solo est disponible para los usuarios Samba autenticados. En este recurso compartido no se especifica un path ya que podr variar dependiendo del usuario que haga login.
Nota

Aunque no sea de sta seccin, debemos crear tambin la carpeta donde se almacenaran las carpetas home de los usuarios ya que la usaremos en configuraciones posteriores, la cual sera /home/samba/homes, y la creamos con el siguiente comando:
# mkdir -vp --mode 1777 /home/samba/homes

El recurso compartido especial [netlogon]


Este es otro recurso compartido especial, el recurso [netlogon] solo es utilizado cuando Samba acta como un Controlador de Dominio, el propsito de este recurso compartido es almacenar los scripts de inicio (logon scripts), estos scripts son ejecutados cada vez que un usuario inicia sesin en el dominio.
[netlogon] path = /home/samba/netlogon/ browseable = No read only = yes

19

La opcin browseable = No especifica que este recurso compartido no ser visible en la lista de shares disponibles en el servidor, ms sin embargo, si podr ser accesado para los usuarios que hacen login en el dominio, el acceso ser de solo lectura. Ahora creamos el directorio base en el cual almacenaremos los logon scripts:
# mkdir -vp --mode 755 /home/samba/netlogon mkdir: se ha creado el directorio `/home/samba/netlogon'

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 \\cevirtual\homes a la unidad H: Mapear el recurso de red \\cevirtual\publico a la unidad P:

Creamos el archivo /home/samba/netlogon/logon.bat:


# nano /home/samba/netlogon/logon.bat

Y agregue el siguiente contenido:


net time \\cevirtual /set /yes net use h: \\cevirtual\homes net use p: \\cevirtual\publico

Nota

\\cevirtual hace referencia a la carpeta /home/samba/ la cual definimos en el archivo de configuracin de samba /etc/samba/smb.conf en la seccin de [netlogon] Ahora convertimos el archivo a formato DOS con CR/LF
# sed -i 's/$/\r/' /home/samba/netlogon/logon.bat

Verificar si el script requiere permisos de ejecucin, en caso de que no los tenga, ejecutamos: # chmod Rvf 666 /home/samba/netlogon/logon.bat

El recurso compartido especial [profiles]


El recurso compartido [profiles] tambin es de uso especial y solo es necesario cuando Samba se configura como Controlador de Dominio, el propsito de este recurso compartido es almacenar los Perfiles de Usuarios, en especfico es usado cuando se configura que los usuarios de dominio utilicen los Perfiles Mviles (Roaming Profiles).
20

[profiles] comment = Users profiles path = /home/samba/profiles guest ok = yes browseable = no create mask = 0600 directory mask = 0700 read only = no profile acls = yes csc policy = disable valid users = %U @"Domain Admins"

La ruta de este recurso compartido ser usado con el atributo ProfilePath para indicar la ruta en donde est almacenado el Perfil del Usuario, por ejemplo, la entrada en la SAM del dominio para el usuario alguien especifica: ProfilePath=\\cevirtual\profiles\alguien, lo cual indica que el perfil del usuario alguien estar en el directorio local /home/samba/profiles/alguien. Creamos el directorio para el recurso compartido profiles:
# mkdir -vp --mode 1777 /home/samba/profiles mkdir: se ha creado el directorio `/home/samba/profiles'

En este momento ya podemos guardar el archivo smb.conf. Realizando una revisin sintctica del archivo de configuracin smb.conf Despus de haber editado el archivo de configuracin smb.conf ejecutaremos el comando testparm para realizar un revisin sintctica del archivo smb.conf, este comando nos dir si hay algn error de configuracin, o si algn parmetro est mal escrito. Para correr la revisin ejecutamos:
# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[profiles]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions

Si le aparece el mensaje "ERROR: the 'unix password sync' parameter is set and the 'passwd program' (/usr/sbin/smbldap-passwd) cannot be executed (error was No such file or directory)." ignrelo, en la siguiente seccin instalaremos el paquete smbldap-tools. Si hubiera algn error en la sintaxis el comando testparm no lo reportar y nos dir en que lnea se encuentra el error y alguna descripcin corta sobre el error.

21

Especificando la contrasea del ldap admin dn


Para que Samba pueda agregar/modificar cuentas almacenadas en el directorio LDAP es necesario que sepa la contrasea del usuario ldap admin dn especificada en el archivo smb.conf. La cuenta del ldap admin dn debe de tener los suficientes permisos para leer, agregar y modificar entradas en el directorio LDAP. Para especificar la contrasea del admin dn, usamos el comando:
# smbpasswd -W Setting stored password for "cn=admin,dc=cevirtual" in secrets.tdb New SMB password:admin Retype new SMB password:admin

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

Ahora si podemos iniciar el servidor samba


# /etc/init.d/samba start * Starting Samba daemons [ OK ]

22

Instalacin y Configuracin de las smbldap-tools


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

Los archivos de configuracin de las herramientas smbldap-tools se encuentran en el directorio /etc/smbldap-tools, en este directorio deben de existir dos archivos de configuracin, el archivo smbldap.conf contiene directivas de configuracin tanto para la creacin y modificacin de cuentas Unix y Samba y el archivo smbldap_bind.conf contiene el usuario y la contrasea del usuario con el que nos conectaremos al servidor LDAP para efectuar las operaciones de administracin de usuarios y grupos Unix/Samba. Ya que el archivo /etc/smbldap-tools/smbldap.conf no existe, usaremos un archivo de ejemplo que se instala junto con el paquete smbldap-tools, lo copiamos as:
# 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:


# 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:
# cd /etc/smbldap-tools

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

Nadie ms a excepcin del usuario root tendr permiso de lectura y escritura sobre los archivos, el grupo openldap solo tendr permisos de lectura.
# chmod 640 smbldap*

Editaremos el archivo de configuracin smbldap_bind.conf para especificar el usuario con con el que haremos las operaciones de administracin de usuarios y grupos en el servidor LDAP.
# nano smbldap_bind.conf

23

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

Por:
slaveDN="cn=admin,dc=cevirtual" slavePw="admin" masterDN="cn=admin,dc=cevirtual" masterPw="admin"

Nota

Aunque aun no tengamos configurado un servidor LDAP esclavo usaremos el mismo cn=admin que es nuestro servidor Maestro. En el archivo smbldap.conf se debe de especificar el SID del dominio Samba con el que estaremos trabajando, para obtener el SID de nuestro servidor utilizaremos el comando net. Obteniendo el SID local:
# net getlocalsid SID for domain cevirtual is: S-1-5-21-2850906233-539131870-2269658519

El SID resultante lo copiaremos, en este caso el SID es: S-1-5-21-2850906233-5391318702269658519 Como mnimo debemos de configurar los parmetros que estn marcados en negritas. Ahora editamos el archivo principal de configuracin de smbldap-tools /etc/smbldaptools/smbldap.conf:
# nano /etc/smbldap-tools/smbldap.conf

Primero editaremos los parmetros 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-2850906233-539131870-2269658519" # Domain name the Samba server is in charged. # If not defined, parameter is taking from smb.conf configuration file # Ex: sambaDomain="IDEALX-NT" sambaDomain="CEVIRTUAL" # Slave LDAP server # Ex: slaveLDAP=127.0.0.1

24

# 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" # Master LDAP port # If not defined, parameter is set to "389" masterPort="389"

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

Ahora especificaremos el Base DN de nuestro directorio LDAP, esta configuracin servir como variable para otras configuraciones, todos los contenedores para almacenar cuentas y grupos estarn bajo este Base DN.
# LDAP Suffix # Ex: suffix=dc=IDEALX,dc=ORG suffix="dc=cevirtual" # 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="MD5" # 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"

Adems, debemos configurar las rutas donde se almacenaran los directorios home de los usuarios Unix, como tambin otros parmetros que se usaran como valores por defecto, en este caso definimos la home como /home/samba/homes/%U pues ya habamos definido
25

antes que ah estaran las carpetas de los usuario (%U indica el nombre del usuario, que ser el nombre de la carpeta del mismo):
# Login defs # Default Login Shell # Ex: userLoginShell="/bin/bash" userLoginShell="/bin/bash" # Home directory # Ex: userHome="/home/%U" userHome="/home/samba/homes/%U" # Default mode used for user homeDirectory userHomeDirectoryMode="700" # Gecos userGecos="System User" # Default User (POSIX and Samba) GID defaultUserGid="512" # Default Computer (Samba) GID defaultComputerGid="20003" # 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"

Lo mismo debemos hacer con las cuentas de para los usuarios Windows solo que usando un formato algo diferente, similar al usado en la definicin del script de logueo:
# 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="\\cevirtual\homes\%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="\\cevirtual\profiles\%U" # The default Home Drive Letter mapping # (will be automatically mapped at logon time if home directory exist) # Ex: userHomeDrive="H:" userHomeDrive="H:"

26

# 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="\\cevirtual\netlogon\logon.bat"

Llenando el Directorio LDAP con smbldap-populate


Ahora que ya hemos editado los archivos de configuracin de las herramientas smbldaptools, inicializaremos nuestro directorio LDAP con la informacin para el dominio NT: CEVIRTUAL. El comando smbldap-populate inicializar nuestro directorio LDAP con la siguiente informacin:

Base DN: dc=cevirtual Contenedor (OU= Unidad Organizativa ) para las cuentas Unix/Samba: ou=users En el contenedor para los Usuarios, se crearn por defecto los usuarios: root y nobody los cuales sern mapeados al usuarios Administrador y Guest Samba respectivamente.

Contenedor (OU= Unidad Organizativa ) para los Grupos Unix/Samba: ou=groups En el contenedor de los Grupos, se crearn por defecto los Grupos Predeterminados de un dominio Samba: Domain Admins, Domain Users, Domain Guests, Domain Computers.

Contenedor (OU= Unidad Organizativa ) para las cuentas de Computadoras Windows: ou=machines Contenedor (OU= Unidad Organizativa ) para los mapeos de Cuentas Unix a Cuentas Samba/Windows (SID): ou=idmap

Para inicializar nuestro directorio LDAP con la informacin de arriba usaremos el comando smbldap-populate de la siguiente manera:
# smbldap-populate

Al final se nos solicita que asignemos una contrasea para el usuario root del dominio, utilizaremos la contrasea: admin Es importante que se tenga en consideracin la estructura de nuestro rbol de Directorio, ya que esta misma estructura podr ser utilizada al configurar otras aplicaciones para que interacten con el directorio LDAP.

27

Las herramientas smbldap-populate crean 5 grupos locales (built-in): Account Operators, Administrators, Backup Operators, Print Operators, Replicators. A estos grupos les agrega el atributo sambaGroupType con el valor 5, el tipo de grupo samba 5 es usado para grupos de dominio y no para grupos locales, para los grupos samba locales debe usar el tipo 4, ms informacin sobre el bug ver el bug 5551 de samba y el bug td18119198 de smbldap-tools. Use el comando ldapmodify para cambiar los atributos en los dn de los grupos, cree el archivo /tmp/samba-builtin-changetype.ldif con el siguiente contenido:
dn: cn=Account Operators,ou=groups,dc=cevirtual changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Administrators,ou=groups,dc=cevirtual changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Backup Operators,ou=groups,dc=cevirtual changetype: modify replace: sambaGroupType sambaGroupType: 4 dn: cn=Print Operators,ou=groups,dc=cevirtual changetype: modify replace: sambaGroupType sambaGroupType: 4

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


# ldapmodify -h localhost -x -D "cn=admin,dc=midominio,dc=com" -W -f /tmp/samba-builtin-changetype.ldif Enter LDAP Password:admin modifying entry "cn=Account Operators,ou=Groups,dc=cevirtual" modifying entry "cn=Administrators,ou=Groups,dc=cevirtual" modifying entry "cn=Backup Operators,ou=Groups,dc=cevirtual" modifying entry "cn=Print Operators,ou=Groups,dc=cevirtual"

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

28

Configuracin de la resolucin de Identidades con NSS_LDAP


En los sistemas Unix las cuentas de usuario y grupo son mapeadas a un identificador numrico llamado UID (User ID) y GID (Group ID) respectivamente, esta resolucin es llevada a cabo por la biblioteca del sistema NSS (Name Service Switch), la cual es invocada cada vez que algn comando o aplicacin tratan con alguna cuestin de permisos o autenticacin. Por default la biblioteca de sistema NSS realiza la consulta de usuarios, grupos y shadow usando archivos locales, es decir, /etc/passwd, /etc/group y /etc/shadow, ya que nuestro sistema usar un directorio LDAP para almacenar la informacin de los usuarios y grupos ser necesario indicarle a la biblioteca NSS que debe usar un directorio LDAP para obtener informacin sobre dichas identidades, es aqu donde entra el paquete nss_ldap, el paquete nss_ldap es un plugin para la biblioteca del sistema NSS para poder realizar la resolucin de identidades usando como fuente de origen un directorio LDAP. En Debian/Ubuntu el plugin LDAP para la biblioteca NSS es provisto por el paquete libnss-ldap, lo instalaremos en el sistema va apt: Para instalar el paquete libnss-ldap, usamos el comando:
# apt-get install libnss-ldap

Al instalar el paquete libnss-ldap se instalarn otros paquetes como libpam-ldap que lo utilizaremos en la siguiente seccin para configurar la autorizacin a los servicios del sistema. El sistema de administracin de paquetes apt nos lanzar un asistente para configuracin, la configuracin del asistente no es exactamente como nosotros la necesitamos, por lo que solo contestaremos las preguntas con cualquier cosa para despus 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=cevirtual LDAP version to use: 3 Make local root Database admin: No Does the LDAP database require login?: No

Este asistente genero un archivo de configuracin /etc/ldap.conf, ya que nosotros crearemos una configuracin nueva este archivo lo podemos renombrar.
# cp /etc/ldap.conf{,.orig}

29

Importante

No confundir con el archivo de los clientes LDAP /etc/ldap/ldap.conf. Despus de respaldar el archivo ldap.conf lo editaremos
# nano /etc/ldap.conf

Deber de quedar as:


# Config file for libnss-ldap and libpam-ldap uri ldap://127.0.0.1/ ldap_version 3 base dc=cevirtual pam_filter objectclass=posixAccount pam_login_attribute uid pam_member_attribute memberuid pam_password exop nss_base_passwd nss_base_passwd nss_base_shadow nss_base_group ou=users,dc=cevirtual ou=machines,dc=cevirtual ou=users,dc=cevirtual ou=groups,dc=cevirtual

bind_policy soft nss_initgroups_ignoreusers backup,bin,daemon,dhcp,games,gnats,irc,klog,libuuid,list,lp,mail,man,news ,openldap,proxy,sshd,sync,sys,syslog,uucp,www-data

Los permisos del archivo /etc/ldap.conf deben de ser 644, como se muestra a continuacin:
# ls -l /etc/ldap.conf -rw-r--r-- 1 root root 467 2008-06-18 23:37 /etc/ldap.conf

Para que el servicio de resolucin de entidades en realidad pueda obtener la informacin del directorio LDAP, deberemos de modificar el archivo /etc/nsswitch.conf y modificar las entradas para las entidades: passwd, group y shadow. Antes de modificar el archivo de configuracin de resolucin de entidades haremos una copia de seguridad:
# cp /etc/nsswitch.conf{,.FILES}

Ahora editamos el archivo para decirle que para obtener la informacin de usuarios, grupos tambin consulte el directorio LDAP especificado en el archivo /etc/ldap.conf.
30

# nano /etc/nsswitch.conf

Cambiar:
passwd: group: shadow: compat compat compat

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

Nota

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

En la salida del comando anterior deberemos de ver dos resultados para root, una fue obtenida del archivo /etc/passwd y otra del directorio LDAP. Ahora haremos una prueba para que podamos obtener la lista de grupos tanto del archivo /etc/group como del directorio LDAP.
# getent group | grep -E 'root|Domain' root:x:0: Domain Admins:*:512:root Domain Users:*:513: Domain Guests:*:514: Domain Computers:*:515:

En la salida del comando anterior la entrada para el grupo root fue obtenida del archivo /etc/group y las entradas de los grupos Domain XXXX fueron obtenidas del directorio LDAP. Podemos utilizar el comando id para verificar que la resolucin de entidades muestre a que grupos pertenece el usuario root.
31

Inicie una nueva sesin como root en el equipo ya sea por ssh o localmente en una TTY, y despues ejecute lo siguiente:
# id root uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)

En este caso, el usuario root pertenece al grupo 512 (Domain Admins) que est en el directorio LDAP.
Nota

Es recomendable crear un link al archivo libnss-ldap en la carpeta /etc porque pueda que segn las versiones de los paquetes que se estn usando no los encuentre, ya que otras versiones lo buscan con el nombre ldap.conf. Para crear el link ejecutamos la siguiente lnea: #ln --l /etc/libnss-ldap.conf /etc/ldap.conf

32

Configuracin de la Autenticacin con PAM_LDAP


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

A continuacin se explica que es cada elemento:


password

La primer columna sirve para indicar el tipo de modulo de autenticacin


requisite

La segunda columna (Control Flag) sirve para indicarle a PAM como es que debe de actuar d
pam_unix.so

La tercer columna se usa para especificar el nombre del modulo a usar


nullok obscure md5

La cuarta columna (opcional) sirve para especificar argumentos a los modulos.

33

Respaldando la configuracin de PAM


Ya que la configuracin de PAM y sus modulos es muy importante, y cualquier configuracin mal hecha podra causar que ya no podamos iniciar sesin localmente ( ni como root), haremos un respaldo antes de realizar nuestras modificaciones: Todas las configuraciones de PAM estan en el directorio /etc/pam.d/, respaldaremos todo el directorio
root@ushldap:~# 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.

Configurando los mdulos de autenticacin de PAM


Configuracin del modulo auth Configurar los archivos de acuerdo a:
# nano /etc/pam.d/common-auth auth sufficient auth sufficient auth required pam_unix.so likeauth nullok pam_ldap.so use_first_pass pam_deny.so

Configuracin del modulo account


# nano /etc/pam.d/common-account account required pam_unix.so account sufficient pam_ldap.so

Configuracin del modulo session Configurando la Autorizacin (Auths) con PAM LDAP:
# nano /etc/pam.d/common-session session required pam_unix.so session optional pam_ldap.so

Configuracin del modulo password


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

34

Instalando el modulo Cracklib de PAM

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

Configurando Archivo de configuracin libpam-ldap.conf


Sencillo, este archivo se configura exactamente igual que el archivo libnss-ldap, son prcticamente idnticos. Referirse a la seccin de configuracin de dicho archivo para configurar este ltimo. La ruta del mismo es /etc/libpam-ldap.conf.
Nota

Es recomendable crear un link al archivo libpam-ldap en la carpeta /etc porque pueda que segn las versiones de los paquetes que se estn usando no los encuentre, ya que otras versiones lo buscan con el nombre pam.conf. Pero antes, debemos cambiar de nombre a un archivo que tiene el mismo nombre (pam.conf) para que nos deje crear el link que deseamos. Para crear el link ejecutamos la siguiente lnea: #ln --l /etc/libpam-ldap.conf /etc/pam.conf

35

Migracin de usuarios y grupos Unix/Posix al directorio LDAP


Aca explicaremos como migrar las cuentas locales de sistema (/etc/passwd) y los grupos locales (/etc/group) a nuestro directorio LDAP. En Debian no se incluyen las herramientas necesarias para migrar cuentas Unix a LDAP, sin embargo, estas herramientas estan como ejemplos en el directorio /usr/share/doc/smbldap-tools/examples/migration_scripts/, necesitaremos copiar estas herramientas a /usr/sbin/, lo haremos as: Instalando el script para migrar cuentas unix:
# zcat /usr/share/doc/smbldap-tools/examples/migration_scripts/smbldapmigrate-unix-accounts.gz > \ /usr/sbin/smbldap-migrate-unix-accounts

Instalando el script para migrar grupos Unix:


# zcat /usr/share/doc/smbldap-tools/examples/migration_scripts/smbldapmigrate-unix-groups.gz > \ /usr/sbin/smbldap-migrate-unix-groups

Ahora le configuraremos los permisos a estos dos scripts para que puedan ser ejecutados sin problemas:
# chmod 755 /usr/sbin/smbldap-migrate-unix-*

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


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

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

Migracin de Usuarios (/etc/passwd y /etc/shadow)


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

36

2. Eliminar de ambos archivos todas las cuentas que no quieras importar en el directorio LDAP
3. 4. 5. 6. 7. # for user in root nobody bin daemon do export user perl -i pe's@^$ENV{user}:(.*)\n@@' /tmp/passwd perl -i -pe's@^$ENV{user}:(.*)\n@@' /tmp/shadow done

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


# smbldap-migrate-accounts -a -P /tmp/passwd -S /tmp/shadow

Nota

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

37

Migracin de Grupos (/etc/group)


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

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

7. Ahora si migramos los grupos al directorio LDAP


# smbldap-migrate-groups -a -G /tmp/group

8. Eliminando el archivo temporal


9. # rm -i /tmp/group rm: remove regular file '/tmp/group'? y

Nota

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

38

Integrando Clientes Windows al Dominio Samba


Para que un equipo con el sistema operativo Windows pueda participar en un dominio de red, sea Samba o NT, el equipo debe de unirse al dominio, el proceso para unir un equipo Windows a un Dominio Samba/NT se detalla en los siguientes pasos:

Configurar los parmetros de red Configuracin del nombre de equipo Unir el equipo al Dominio

En la siguientes secciones se detallarn los pasos antes mencionados.

Requerimientos del Sistema


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 XP Profesional, los equipos con Windows Home Edition no pueden participar por completo en un Dominio de Red por lo tanto no se podr utilizar el siguiente procedimiento. Debe de tener una interfaz de red funcional y tener conectividad con el servidor de PDC. Se debe de tener una cuenta de usuario con privilegios administrativos en el equipo local, por ejemplo, la cuenta Administrador.

Configuracin de los parmetros de red en el equipo Windows


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

Antes de unir un equipo Windows al dominio, verificaremos que los parmetros de red estn correctamente configurados. Es importante que el equipo tenga los siguientes parmetros de red configurados: Direccin IP: Una direccin IP disponible en el segmento 192.168.1.0/24 Servidor DNS: 192.168.0.2 Servidor WINS: 192.168.0.2

39

Soporte NetBIOS sobre TCP/IP: El equipo deber de tener el soporte de NetBIOS sobre TCP/IP Activado.
Configurando correctamente los parmetros de red

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

En el cuadro de dialogo Configuracin avanzada de TCP/IP despus damos click en la pestaa de nombre WINS

40

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

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

41

Despus de agregar la direccin IP del servidor WINS damos click en el botn Agregar y el servidor WINS aparecer en la lista.
Nota

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

42

Verificacin de los Parmetros de Red

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

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

Configuracin del nombre de equipo Windows


Verificacin de nombre de equipo y grupo de trabajo. Esta es una computadora recin instalada y en el proceso de instalacin se le asigno el nombre de equipo: virtualxp
43

Para verificar el nombre de nuestro equipo vamos al Panel de Control=>Rendimiento y mantenimiento=>Sistema Estando en el cuadro de dialogo Propiedades del sistema vamos a la pestaa de Nombre de equipo donde veremos algo as: Propiedades del sistema, Nombre de Equipo

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

44

Se cambia el nombre donde dice Nombre de equipo: y se da click en Aceptar. El nombre de Grupo de trabajo Dominio no es necesario cambiarlo en este paso ya que puede ser cambiado en el proceso de unir la maquina al dominio.

Uniendo el equipo Windows al Dominio Samba


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

45

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

Para continuar con el asistente damos click en el botn Siguiente >


46

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

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

47

En el siguiente paso del asistente nos da un da un resumen de la informacin de red que necesitamos para unir este equipo al dominio Asistente de identificacin de red, paso 4

A continuacin se muestra la informacin requerida junto con la informacin correspondiente a nuestro dominio: Nombre de usuario: alguien Contrasea de usuario: alguien Cuenta de usuario del dominio: alguien Es posible que tambin necesite: Nombre del equipo: virtualxp Dominio del equipo: CEVIRTUAL Adems necesitaremos la contrasea del usuario root del dominio, esta cuenta ser necesaria para poder unir la maquina al dominio y crear la cuenta de computadora correspondiente a virtualxp. Configuramos esta informacin como se muestra en la siguiente imagen: Asistente de identificacin de red, paso 5

48

Despus de ingresar la informacin damos click en el botn Siguiente >. Al dar click en Siguiente el asistente tratar de encontrar una cuenta de equipo de nombre virtualxp en el dominio CEVIRTUAL, si no la encuentra nos mostrar un cuadro como el siguiente, donde nos avisa que no encontr la cuenta de equipo en el dominio, nos pide escribir nuevamente el nombre de equipo y el dominio. Asistente de identificacin de red, paso 6

49

Damos click en el botn Siguiente >, ya que la cuenta de equipo no se encontr en el dominio CEVIRTUAL, necesitaremos usar una cuenta con privilegios administrativos de dominio y su contrasea para que por medio del asistente de identificacin de red se cree la cuenta de equipo virtualxp en el dominio CEVIRTUAL. Asistente de identificacin de red, paso 7

Ya que no tenemos cuentas con privilegios administrativos de dominio, usaremos la cuenta de root que se cre con smbldap-populate, ingresamos su contrasea y el nombre de dominio CEVIRTUAL como se muestra en la imagen de arriba, despus damos click en el botn Aceptar para continuar.

50

Si las credenciales que presentamos fueron correctas, en la siguiente ventana, nos dir que podemos agregar un usuario al equipo, cuando se agrega un usuario a este equipo se le concede acceso a todos los recursos del equipo y a todos los recursos compartidos en la red. Asistente de identificacin de red, paso 8

Usaremos el nombre de usuario: alguien y el nombre de dominio: CEVIRTUAL, como se muestra en la imagen de arriba y damos click en el botn Siguiente > para continuar. En la siguiente ventana nos solicita asignar un nivel de acceso que el usuario alguien tendr sobre el equipo VIRTUALXP, por defecto esta seleccionado el nivel de acceso: Usuario estndar. Asistente de identificacin de red, paso 9

51

El nivel de acceso Usuario estndar permite que los usuarios puedan cambiar muchas configuraciones del sistema e instalar programas que no afecten a los archivos del sistema de Windows. Digamos que este es el nivel intermedio. El nivel de acceso Usuario restringido permite que los usuarios pueden utilizar el equipo y guardar documentos, pero no pueden instalar programas o cambiar la configuracin del sistema. En Otros: podemos elegir otros niveles de acceso, por ejemplo, podemos dar acceso de Administrador al usuario, esto quiere decir que el usuario alguien tendr todos los privilegios sobre el equipo VIRTUALXP, lo cual significa que puede cambiar configuraciones, puede instalar y desinstalar programas que afecten el sistema, es decir, puede hacer lo que le d la gana sobre el equipo, incluso formatear :D. Por ahora seleccionamos el nivel de acceso Usuario estndar y damos click en el botn Siguiente > para finalizar. Figura 12.17. Asistente de identificacin de red, Ultimo Paso

52

El ltimo paso nos dice que ya hemos completado con xito el asistente para identificacin de red, y nos solicita re iniciar el equipo para que los cambios tengan efecto. Damos click en el botn Finalizar. Asistente de identificacin de red, reiniciar el equipo

Damos click en el botn Aceptar y nos lleva a la siguiente imagen:

Asistente de identificacin de red, Alerta de re iniciar el equipo

53

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

Como Iniciar Sesin el Dominio Samba


Despus de reiniciar el equipo nos cambiar la ventana de inicio de sesin a como se muestra a continuacin. Inicio de sesin de Windows - Pantalla inicial

Para poder iniciar sesin presionamos la combinacin de teclas Ctrl+Alt+Supr y nos mostrar una ventana como la siguiente: Inicio de sesin de Windows - Pantalla predeterminada de login

Si queremos ver en qu equipo o dominio queremos iniciar sesin podemos dar click en el botn "Opciones" y nos mostrar algo as: Inicio de sesin de Windows - Pantalla con opciones activa

54

Nota Si queremos conectarnos al equipo local, damos click en el men desplegable de Conectarse a: y elegimos: VIRTUALXP (este equipo). Despus de iniciar sesin en el dominio el men de inicio se ver as:

Inicio de sesin - Men inicio

55

Integracin de clientes Linux al dominio


Instalar libnss-ldap y libpam-ldap
apt-get install libnss-ldap libpam-ldap

Reconfiguramos los archivos de libnss-ldap


#dpkg-reconfigure libnss-ldap

Reconfiguramos los archivos de libpam-ldap


#dpkg-reconfigure -a libpam-ldap

Configuramos el archivo /etc/ldap/ldap.conf, agregar


BASE URI dc=cevirtual ldap://192.168.0.2/

Configuramos e archivo /etc/libnss-ldap.conf (/etc/ldap.conf para ubuntu y otros)


host 192.168.0.2 base dc=cevirtual uri ldap://192.168.0.2/ ldap_version 3 rootbinddn cn=admin,dc=cevirtual pam_password exop nss_base_passwd nss_base_shadow nss_base_group ou=users,dc=cevirtual ou=users,dc=cevirtual ou=groups,dc=cevirtual

Configuramos e archivo /etc/pam-ldap.conf (/etc/pam.conf para ubuntu y otros)


host 192.168.0.2 base dc=cevirtual uri ldap://192.168.0.2/ rootbinddn cn=admin,dc=cevirtual pam_password exop nss_base_passwd ou=users,dc=cevirtual 56

nss_base_shadow nss_base_group

ou=users,dc=cevirtual ou=groups,dc=cevirtual

Para corregir cualquier error que puede llegar a suceder entre diferentes distros se crean links de los siguientes archivos, renombrando los archivos linkeados con sus similares de la distro ubuntu, tal como est a continuacin:
ln --l /etc/pam-ldap.conf /etc/pam.conf ln --l /etc/libnss-ldap.conf /etc/ldap.conf

Autenticacin De Usuarios Y Grupos De Dominio Samba En Clientes Linux


Instalar samba smbclient
# apt-get install samba smbclient

Ahora creamos el archivo de configuracin con el siguiente contenido:


# # Archivo de configuracin para desktop miembro de dominio # [global] workgroup = CEVIRTUAL netbios name = debian server string = debian de CEVIRTUAL 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.0. 127. hosts deny = 0.0.0.0 remote announce = 192.168.0.255 wins server = 192.168.0.2 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

57

utmp = Yes #========= Opciones para la codificacin ===================

Dos charset = 850 Unix charset = ISO8859-1 display charset = ISO8859-1 #========= Configuraciones para LDAP ======================= passdb backend = ldapsam:ldap://192.168.0.2/ ldap admin dn = cn=admin,dc=cevirtual ldap suffix = dc=cevirtual ldap group suffix = ou=groups ldap user suffix = ou=users ldap machine suffix = ou=machines ldap idmap suffix = ou=idmap idmap backend = ldap:ldap://192.168.0.2/ idmap uid = 10000-20000 idmap gid = 10000-20000 winbind trusted domains only = Yes

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


# smbpasswd -W Setting stored password for "cn=admin,dc=cevirtual" in secrets.tdb New SMB password:admin Retype new SMB password:admin

Reiniciamos samba para que los cambios tomen efecto:


# /etc/init.d/samba restart * Stopping Samba daemons * Starting Samba daemons [ OK ] [ OK ]

Ahora verificamos que samba pueda leer las cuentas de dominio:


# pdbedit -L root:0:root nobody:65534:nobody virtualxp$:1003:VIRTUALXP$

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


# net rpc join -U root Password:dominioadmin Joined domain CEVIRTUAL.

Podemos utilizar el mismo comando net para obtener informacin del dominio al que nos unimos:
# net rpc info U alguien Password:

58

Domain Name: CEVIRTUAL Domain SID: S-1-5-21-2911508632-2405292923-4115677068 Sequence number: 1232322213 Num users: 6 Num domain groups: 7 Num local groups: 0

59

Configurando un Controlador de Dominio de Respaldo (BDC)


Las configuraciones para un servidor de control de dominio de respaldo (bdc) son similares a las del servidor maestro (PDC), asi que no mostraremos los configuraciones completas, solo los cambios que se deben hacer para que se comporte como respaldo, para montar el servidor BDC en s, sigue los pasos que se describieron anteriormente. Para empezar, debemos recalcar que solo es necesario instalar y configurar el servidor Samba y sus complemento smbldap-tools, libnss-ldap y libpam-ldap. La parte del servidor LDAP, servidor DNS (Bind9) y dems no son necesarias. A continuacin se detallarn las configuraciones que son diferentes en los diferentes archivos de los paquetes instalados y necesarios para el servidor BDC que detallamos al inicio de sta seccin. Archivo ldap.conf (/etc/ldap/ldap.conf) La nica lnea que cambia de este archivo de configuracin es la siguiente:
URI ldap://192.168.0.2/

La cual indica la direccin la direccin donde se encuentra la base de datos LDAP Archivo smb.conf (/etc/samba/smb.conf) En ste archivo debemos configurar unas cuantas cosas:
passdb backend = ldapsam:ldap://192.168.0.2/

sta linea indica el servidor contra el que se autenticar, que en nuestro caso es LDAP y la ip del servidor maestro (no el que estamos configurando como servidor de respaldo)
os level = 60

El cual indica el nivel de presentacin de samba en la red, por ello el servidor maestro debe tener un nmero mayor que el servidor de respaldo, debes verificar este nmero en ambos.
domain master = no

sta opcin es algo obvia, pero debe colocarse en no para que nuestro servidor sea reconocido como BDC Archivo smbldap.conf, libnss-ldap y libpam-ldap Primeramente las rutas de estos archivos son las siguientes: smbldap.conf : /etc/smbldap-tools/smbldap.conf libnss-ldap y lbpam-ldap: /etc/nombre_del_archivo
60

En estos 3 archivos, lo nico que debemos configurar es que cada ip ya no apuntar al servidor local (127.0.0.1) sino a nuestro servidor maestro que est para nuestro caso en 192.168.0.2. Y listo, ya tenemos configurado nuestro servidor BDC. Para comprobarlo podemos usar el comando testparm en cada uno de nuestros servidores y veremos el rol de cada uno y que nuestras configuraciones sean correctas. Nos tendran que dar unas salidas como stas (poner atencin a la lnea que dice Server role: En el PDC:

Y en el BDC:

61

Servidor de archivos OpenFiler


Bueno, como se dijo al inicio de ste manual, en la implementacin del mismo se utilizar un servidor de archivos llamado OpenFiler, ste servidor ser utilizado para almacenar de manera centralizada los archivos de todos los usuarios del sistema. Pero, Qu es OpenFiler? Es un sistema Linux basado en una distribucin llamada CentOS, el cual provee muchos servicios para montar un servidor de archivos con diferentes tecnologas, as como tambin otros servicios que ayuden al funcionamiento o a dar mayores prestaciones a nuestro servidor de archivos. Para ms informacin visita su pgina oficial: http://www.openfiler.com/

Instalacin del servidor OpenFiler


Primeramente, puedes obtener el archivo .iso de la pgina oficial de OpenFiler mencionada anteriormente. Luego la quemas en un CD para poder instalarlo en una mquina que ser utilizada solo como servidor de datos. Los pasos a seguir para instalar el sistema son los siguientes: 1. Entramos con el CD de OpenFiler en la computadora que servir como servidor. 2. Seleccionar el idioma. 3. Particionar el disco: esto se puede hacer automticamente de forma que hace lo que considera oportuno o bien lo haces t manualmente. Para ms o menos hacerse una idea, la instalacin ocupa algo ms de 500 MB as que no hace falta un disco duro exageradamente grande para instalarlo. Otra cosa es el espacio que quieras destinar para almacenar los archivos de guardaras en el servidor, para ello, debemos dejar una porcin del disco sin particionar y sin formato, mas adelante explicaremos las configuraciones necesarias para poder utilizarlas. 4. Configuracin de red: DHCP o IP esttica, DNSs, gateways. 5. Poner la clave de root. IMPORTANTE esta clave NO es la que usaremos para administrar el OpenFiler. Para administrar OpenFiler, usaremos la cuenta openfiler y la clave es password. Una vez finalizada la instalacin podremos y cambiar la clave. 6. Instalacin de paquetes. Aca el sistema instala los archivos necesarios, es una instalacin relativamente rpida. 7. Reiniciar Ya con esto tenemos instalado nuestro servidor de archivos, si deseas ver informacin mas detallada sobre la instalacin del mismo, visita su manual oficial (en ingls): http://www.openfiler.com/learn/how-to/graphical-installation

62

Configuracin de servidor de archivos OpenFiler

Una vez tenemos instalado OpenFiler, puedes acceder al mismo via su panel de control basado en web, el cual te permite configurar todas las opciones disponibles en el mismo. Para hacer esto, debemos escribir en un navegador (de una computadora que este en el mismo dominio que el servidor) la direccin ip del OpenFiler seguida por dos puntos y el numero 446 que es el puerto que utiliza OpenFiler, adems, deberas utilizar http seguro para poder acceder al mismo, as: https://IP de OpenFiler:446/ Aparecer en el navegador una ventana como la siguiente:

Aca, usa el username openfiler y la contrasea password para poder loguearte al servidor Configurando la red Lo primero que debemos hacer, es configurar los host, la red o las redes que podrn tener acceso a nuestro servidor. Para ello, seleccionamos la opcin System del men principal y luego la seccin Network Access Configuration hasta el fondo de la pgina, ah agregamos la ip del/los hosts que podrn accesar a la red, en nuestro caso, configuramos una red completa que pueda acceder al servidor, la 192.168.0.0 con la mscara (Netmask) 255.255.255.0, adems, debemos seleccionar en el campo Type la opcin Share, para que el servidor est disponible para esa red.
Nota

Como en nuestro control de dominio, solo el servidor samba PDC y samba BDC se encargan de guardar los archivos, lo mejor sera agregar nada mas ellos como hosts de acceso al servidor, para evitar que cualquier otra mquina pueda acceder a ellos.

63

Informacin importante sobre volmenes Antes de continuar con las configuraciones, aclararemos unos conceptos importantes como lo son los volmenes en OpenFiler, ya que los utilizaremos para configurar la parte del almacenamiento de archivos en el servidor: 1. Physical Volume (volumen fsico) Asigna un espacio en el disco fsico de la maquina para ser usado por el Volume Group. 2. Volume Group (Grupo del volumen) Contiene un volume fsico en el cual se crear un volumen lgico que ser nuestro espacio de almacenamiento. 3. Logical Volume (LUN o volumen lgico) Este es el espacio que utilizar el servidor para almacenar los archivos. Con estos conceptos presentes, pasaremos a configurar los volmenes para nuestro servidor.

64

Creacin de un Nuevo volumen fsico Recuerdan que dejamos un espacio sin particionar en el disco del servidor? Bueno, aca configuraremos ese espacio como volumen fsico para que este disponible para ser usado por OpenFiler. Necesitamos crear un volumen fsico que luego ser presentado a travs de un grupo de volumen. Para hacer esto, seleccionamos Block Devices del men Volumes Section:

Seleccionamos la opcin Edit Disk en el disco que queramos crear el volumen fsico. Ve hacia el fondo de la pgina que se te presentar al seleccionar esa opcin y vers el espacio disponible en el disco para crear el nuevo volumen fsico (podrs notar que tienes espacio para crear el volumen si la opcin Starting Cylinder y Ending Cylinder estn habilitadas, si no se habilitan, prueba cambiando el tipo de particin en la opcin Mode) Seleccionamos el espacio que queremos darle al volumen con las cajas de texto para los cilindros, en la opcin Partition Type seleccionamos el tipo Physical Volume y presionamos el botn Create para crear nuestro nuevo volumen:

Luego, nos aparecer una pantalla resumen donde estaran los diferentes volmenes que tenemos disponibles en nuestro servidor (si es que creamos mas de uno)

65

Creando el nuevo Grupo de volumen Lo siguiente que vamos a crear es el Volume Group para el Physical Volume que creamos anteriormente. Damos click en la ficha Volumes y luego seleecionamos Volume Groups de la seccin de Volume en el men que esta al lado derecho. Escribimos un nombre para el grupo en la casilla llamada Volume group name, en nuestro caso le pusimos cevirtual_volumegroup y chequeamos mas abajo el volumen fsico que vamos a asociar al volumen de grupo, para finalizar presionamos el botn Add volumen group

Ahora aparecer una pantalla que muestre el nuevo grupo de volumen que acabamos de crear:

66

Creando el volumen Es el momento de crear el volumen. Damos click en la opcin Add volume en la parte derecha de la pantalla en el men Volumes section y nos aparecer algo como esto:

Seleccionamos el grupo de volumen que creamos en el paso anterior y presionamos el botn Change. Veremos una pantalla donde se configure el tamao del volumen que crearemos para el grupo de volumen que estamos editando. Para nuestro caso en particular, crearemos un volumen que ocupe todo el espacio del grupo de volumen que esta unido al volumen fsico que creamos antes. Escribimos un nombre para el volumen, nosotros lo llamamos cevirtual_volume. Tambien debemos seleccionar el tamao que ocupara moviendo el indicador lo mas a la derecha o segn te convenga o desees. Luego, para el sistema de archivos (Filesystem/Volume type) seleccionamos iSCSI, muy importante el escoger este tipo de volumen.

67

Luego de verificar las configuraciones, podemos presionar el botn Create para crear nuestro nuevo volumen. Una vez tenemos creado nuestro volumen, veremos una pantalla donde aparece un gran circulo verde que indica el la cantidad o el espacio usado del grupo de volumen que nuestro nuevo volumen consume:

68

Bueno, ya tenemos completamente creado y configurado nuestro volumen para los datos. Ahora debemos habilitar el lado de la conectividad para que se pueda acceder a este nuevo recurso que hemos habilitado. Habilitando el servicio iSCSI en el servidor (iSCSI Target) Damos click en la opcin Services en el men principal de OpenFiler. Lo siguiente es ir a la opcin Modification y dar click en Enable del servicio iSCSI target server para habilitar el servicio (esto en caso de que no este habilitado con anterioridad). Al final tendremos algo como sto:

Agregando un target iSCSI o servicio iSCSI Regresamos a la seccin de volmenes y seleccionamos la opcin iSCSI Targets del men a la derecha. Primero crearemos un nuevo servicio iSCSI (iSCSI target) y lo hacemos seleccionando la vieta Tarjeta Configuration en la pantalla actual. Puedes cambiar el nombre del target o Target IQN si lo deseas. Luego presionamos el botn Add para agregar el target.

69

Mapeando el volumen lgico o LUN Ahora seleccionamos la vieta LUN Mapping y damos click en el botn Map

Permitiendo el acceso al servidor iSCSI Establecemos la regla de acceso para la red o hosts que podrn acceder a los datos. Para ello, seleccionamos en Access la opcin Allow para permitir a quienes queramos el acceso.

Hasta aqu con la configuracin del servidor. Ya lo tenemos listo para ser utilizado en la red o hosts que configuramos que podran tener acceso al mismo.

70

Integrando servidor de archivos OpenFiler con los controladores de dominio


Como recordamos, ya tenemos montado nuestro servidor de archivos OpenFiler y nuestros controladores de dominio PDC y BDC, pero aun no los hemos integrado para que los archivos de los usuarios de nuestro sistema de control de dominio tengan sus archivos de manera centralizada. Para lograr esto, vamos a montar la particin iSCSI que tenemos en nuestro servidor OpenFiler ya configurado y tambin debemos configurar a nuestro PDC y BDC como clientes iSCSI, es decir, la siguiente configuracin se realizar en ambos servidores de manera idntica. Instalacin de open-iscsi Lo primero que vamos a hacer es instalar el software iniciador. En Linux contamos con varios iniciadores iSCSI, sin embargo el ms usado es open-iscsi, adems est dentro de la paquetera de Debian. Lo instalamos
# apt-get install open-iscsi

Esto nos instalar un script de inicio que carga los mdulos y lanza un programa que controla el iniciador (iscsid), y un programa para configurar nuestro iniciador (iscsiadm). Lo primero que debemos hacer es iniciar el servicio
# /etc/init.d/open-iscsi start

Configuracin de open-iscsi La configuracin de open-iscsi se realiza a travs del comando iscsiadm y la misma se guarda en una base de datos. Si queremos cambiar algn parmetro de la configuracin tenemos que hacerlo a travs de iscsiadm. Deteccin del target En primer lugar tenemos que indicarle a iscsiadm que detecte nuestro target iSCSI y lo agregue a su base de datos. Hay que aclarar que iscsiadm tiene tres formas de operacin
discovery: node:

En este modo se pueden descubrir targets y agregarlos a la base de datos.

En este modo se administran los targets ya descubiertos y se pueden visualizar datos acerca de estos nodos, as como conectarse a ellos.
session:

En este modo se administran los targets a los que se est conectados (en los que se ha hecho login).
71

Para descubrir nuestro target usamos obviamente discovery


# iscsiadm -m discovery -t sendtargets -p 192.168.0.4 192.168.0.4,1 iqn.2005-02.au.com.empresa:san.200G.samba

Con lo que le indicamos a iscsiadm que descubra los targets que le ofrece el portal ubicado en 192.168.0.4. El mtodo que usa para descubrirlo es sendtargets, que es el mtodo soportado ms estable a la fecha (existen otros mtodos, como por ejemplo uno que resuelve nombre de targets). Como vemos descubri el target que instalamos anteriormente. Por lo cual, si hacemos solo:
# iscsiadm -m discovery 192.168.0.4:3260 via sendtargets

Vemos que la informacin del servidor iSCSI target descubierto qued almacenada en la base de datos de iscsiadm Ahora, si queremos saber cul es la informacin que se almacen sobre el target descubierto, tenemos que operar en modo nodo
# iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 node.name = iqn.2005-02.au.com.empresa:san.200G.samba node.transport_name = tcp node.tpgt = 1 node.active_conn = 1 node.startup = manual node.session.initial_cmdsn = 0 node.session.auth.authmethod = None node.session.auth.username = node.session.auth.password = node.session.auth.username_in = node.session.auth.password_in = node.session.timeo.replacement_timeout = 120 node.session.err_timeo.abort_timeout = 10 node.session.err_timeo.reset_timeout = 30 node.session.iscsi.InitialR2T = No node.session.iscsi.ImmediateData = Yes node.session.iscsi.FirstBurstLength = 262144 node.session.iscsi.MaxBurstLength = 16776192 node.session.iscsi.DefaultTime2Retain = 0 node.session.iscsi.DefaultTime2Wait = 0 node.session.iscsi.MaxConnections = 1 node.session.iscsi.MaxOutstandingR2T = 1 node.session.iscsi.ERL = 0 ...

72

Login en el dispositivo Ahora que la informacin del target ya est configurada, podemos empezar a usarlo. Para ello debemos hacer login o autenticarnos en el target.
# iscsiadm -m node -targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -l

La opcin -l indica que queremos hacer login en el target. Esto significa que el disco iSCSI estar disponible como un dispositivo de hardware ms en nuestro servidor. Para comprobar si el disco iSCSI se detecto y se conect al equipo, basta con ver la salida de
dmesg #dmesg SCSI device sda: 390620475 512-byte sda: Write Protect is off sda: Mode Sense: 77 00 00 08 SCSI device sda: drive cache: write SCSI device sda: 390620475 512-byte sda: Write Protect is off sda: Mode Sense: 77 00 00 08 SCSI device sda: drive cache: write sda: sda1 sd 1:0:0:0: Attached scsi disk sda

hdwr sectors (199998 MB) through hdwr sectors (199998 MB) through

En el ejemplo el disco iSCSI se detect y se conect al equipo como un disco SCSI ms. Tambin notamos que para el sistema nuestro disco iSCSI no se diferencia de un dsico SCSI conectado fsicamente. Creacin de particiones y formateo. Aunque el disco iSCSI ya est conectado, no es usable hasta que definamos particiones en l y las formateemos en un sistema que el kernel maneje. Para ello podemos usar fdisk o alguna otra herramienta en Linux que pueda servir para formatear la particin ya montada. Como dato extra, la particin en nuestros controladores de dominio se mostrar bajo el nombre de sdb1 o hdb1 (dependiendo del tipo de disco que se tenga). Se recomienda que la particin sea formateada con el sistema de archivos ext3 por cuestiones de compatibilidad con sistemas Linux. Montaje automtico del dispositivo de hardware iSCSI Como ltimo punto relacionado con la configuracin del iniciador, deberamos definir que se haga login al target y se conecte el disco automticamente cada vez que se inicie el servicio open-iscsi, de manera que no tengamos que hacerlo a mano luego de que nuestro sistema inicie. Volvemos a utilizar iscsiadm para modificar el parmetro que maneja esta opcin:

73

# iscsiadm -m node -targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.conn[0].startup -v automatic

Luego de esto, si hacemos


# /etc/init.d/open-iscsi restart

El disco iSCSI debera ser detectado automticamente y conectado al equipo.

Montaje de nuestra particin ext3 del servidor de archivos en la carpeta designada para almacenar la informacin de los clientes del dominio Como ltimo paso para la configuracin de la particin ya en el PDC y BDC, debemos montar la particin en la carpeta designada para guardar los archivos que estarn disponibles en la red. Como vimos anteriormente, sta carpeta es /home/samba, aqu es donde montaremos nuestra particin, para que todos los archivos en vez de almacenarse en el BDC o PDC, queden almacenados en el servidor de archivos. Para ello, ejecutamos el siguiente comando: #mount t ext3 /dev/sdb1 /home/samba Con esto, ya tenemos montada nuestra particin del servidor OpenFiler en ambos PDC y BDC, solo falta crear las carpetas y archivos con sus respectivos permisos que estaban en esa carpeta para que ya pueda usarse para guardar de manera centralizada la informacin de los clientes del dominio. Referirse a la seccin de configuracin de samba en los temas El recurso compartido especial [netlogon], El recurso compartido especial [homes] y El recurso compartido especial [profiles]

74

You might also like