8
linux en la empresa Integrar sistemas GNU/Linux con MS-Windows 34 Linux+ 10/2007 [email protected] S amba es un servidor/cliente de software libre que implementa el protocolo de red para com- partir recursos conocido como SMB (Server Message Block), actualmente como CIFS (Common Internet Filesystem). Esto permite que máquinas con GNU/ Linux o Unix actúen como servidores o clientes en redes Microsoft, nos permite compartir diferentes tipos de recur- sos: archivos, directorios, colas de impresión, etc. Aparte de dar servicio a estos recursos la última versión (Samba v.3) también tiene la posibilidad de validar usuarios ac- tuando como PDC “Controlador Principal de Dominio” siendo miembro de un dominio existente en la red o bien siendo el servidor maestro del dominio. En infraestructuras complejas en donde la adminis- tración de cuentas de usuario se puede complicar, la con- figuración básica de Samba no nos alcanza y es necesario tener un buen servicio de directorio que unifique todo tipo de cuentas de usuario en una sola base de datos de acceso ligero, con el objetivo de no tener diferentes bases de datos (usuarios Linux, usuarios Windows, ...) que tendríamos que administrar por separado. OpenLDAP es una versión libre de LDAP (Lightweight Directory Access Protocol) que se basa en el estándar ISO X.500 y nos permite organizar de manera jerárquica todo tipo de cuentas, grupos, puntos de montaje, cuentas de equipos, etc. En este artículo vamos a tratar la configuración y puesta en marcha tanto de Samba como de OpenLDAP y la integración de los mismos. Configuración del servidor Samba Lo primero de todo es instalar los paquetes referentes a Samba, en este artículo hemos utilizado la distribución Debian etch. Los paquetes necesarios son: samba, samba- common y samba-doc que también están disponibles en otras distribuciones como Fedora Core en RPM, Ubuntu, etc. Una vez instalados los paquetes procedemos a la configu- ración básica del servidor, aunque Debian ya preconfigura algunas cosas como por ejemplo el tipo de ejecución del servicio: daemon o bien a través del servicio inetd Figura 2, seleccionar si queremos crear una base de datos de usuarios, el nombre del grupo de trabajo/dominio Figura 1. Aparte nos va a pedir una serie de parámetros adicio- nales de configuración como: utilizar contraseñas cifradas, permitir trabajar con DHCP de manera conjunta con el servidor de nombres WINS. Este último nos permite que el Samba: Servidor para redes Microsoft Cuando se trata de integrar sistemas GNU/Linux con MS-Windows, hay muchos puntos a tener en cuenta, tanto en servicios como en administración de los mismos. Como por ejemplo es la utilización de Samba como servidor principal de dominio o PDC (Prinicipal Domain Controller) para dar servicios de: validación de usuarios, ficheros, directorios, colas de impresión, etc., a estaciones de trabajo con MS-Windows. Tomeu Capó Capó

Samba Servidor para redes Microsoft.pdf

Embed Size (px)

Citation preview

  • linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    34 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    35www.lpmagazine.org

    linux

    @so

    ftwar

    e.co

    m.p

    l

    Samba es un servidor/cliente de software libre

    que implementa el protocolo de red para com-

    partir recursos conocido como SMB (Server

    Message Block), actualmente como CIFS (Common

    Internet Filesystem). Esto permite que mquinas con GNU/

    Linux o Unix acten como servidores o clientes en redes

    Microsoft, nos permite compartir diferentes tipos de recur-

    sos: archivos, directorios, colas de impresin, etc. Aparte

    de dar servicio a estos recursos la ltima versin (Samba

    v.3) tambin tiene la posibilidad de validar usuarios ac-

    tuando como PDC Controlador Principal de Dominio

    siendo miembro de un dominio existente en la red o bien

    siendo el servidor maestro del dominio.

    En infraestructuras complejas en donde la adminis-

    tracin de cuentas de usuario se puede complicar, la con-

    figuracin bsica de Samba no nos alcanza y es necesario

    tener un buen servicio de directorio que unifique todo tipo

    de cuentas de usuario en una sola base de datos de acceso

    ligero, con el objetivo de no tener diferentes bases de datos

    (usuarios Linux, usuarios Windows, ...) que tendramos

    que administrar por separado. OpenLDAP es una versin

    libre de LDAP (Lightweight Directory Access Protocol) que se

    basa en el estndar ISO X.500 y nos permite organizar de

    manera jerrquica todo tipo de cuentas, grupos, puntos de

    montaje, cuentas de equipos, etc. En este artculo vamos a

    tratar la configuracin y puesta en marcha tanto de Samba

    como de OpenLDAP y la integracin de los mismos.

    Configuracin del servidor SambaLo primero de todo es instalar los paquetes referentes a

    Samba, en este artculo hemos utilizado la distribucin

    Debian etch. Los paquetes necesarios son: samba, samba-

    common y samba-doc que tambin estn disponibles en otras

    distribuciones como Fedora Core en RPM, Ubuntu, etc.

    Una vez instalados los paquetes procedemos a la configu-

    racin bsica del servidor, aunque Debian ya preconfigura

    algunas cosas como por ejemplo el tipo de ejecucin del

    servicio: daemon o bien a travs del servicio inetd Figura

    2, seleccionar si queremos crear una base de datos de

    usuarios, el nombre del grupo de trabajo/dominio Figura

    1. Aparte nos va a pedir una serie de parmetros adicio-

    nales de configuracin como: utilizar contraseas cifradas,

    permitir trabajar con DHCP de manera conjunta con el

    servidor de nombres WINS. Este ltimo nos permite que el

    Samba: Servidor para redes Microsoft

    Cuando se trata de integrar sistemas GNU/Linux con MS-Windows, hay muchos puntos a tener en cuenta, tanto en servicios como en administracin de los mismos. Como por ejemplo es la utilizacin de Samba como servidor principal de dominio o PDC (Prinicipal Domain Controller) para dar servicios de: validacin de usuarios, ficheros, directorios, colas de impresin, etc., a estaciones de trabajo con MS-Windows.

    Tomeu Cap Cap

  • linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    34 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    35www.lpmagazine.org

    servidor DHCP pueda proveer informacin

    sobre otros servidores de WINS (Windows

    Internet Name Service) que haya en la red.

    Una vez realizada la tarea de instalacin

    el servicio arranca automticamente, con los

    parmetros por defecto.

    Configuracin bsicaAhora vamos a revisar el fichero de configu-

    racin que nos genera el programa de insta-

    lacin de manera automtica y que reside en

    /etc/samba llamado smb.conf. Este fichero

    est dividido en una serie de secciones:

    global: Configuracin global del servidor.

    homes: Configuracin del recurso referen-

    te al directorio home de cada usuario

    printers: Recurso sobre las colas de im-

    presin.

    Cuando revisemos el fichero de configuracin

    lo que tendremos que mirar es si el nombre

    del dominio/grupo de trabajo es el correcto,

    como podemos observar en el Listado 1, es el

    primer parmetro: workgroup de la seccin glo-

    bal. Aparte tambin podemos cambiar la des-

    cripcin del servidor con server string y el nom-

    bre del equipo (de cara a la red Microsoft) con

    netbios name. Si queremos contraseas cifradas

    activamos encrypt passwords. Todos estos par-

    metros son configurados desde la interfaz de

    instalacin.

    Un parmetro importante es security que

    establece el nivel de seguridad de nuestro servi-

    dor Samba, por defecto el nivel es user, esto sig-

    nifica que para acceder al servidor es necesario

    validarse usando un usuario existente dentro

    de la base de datos de usuarios de Samba es-

    pecificada con otro parmetro, el passdb backend.

    Hay diferentes niveles de seguridad:

    user: En este nivel el cliente enva una

    peticin de iniciar la sesin de manera

    directa, ste proporciona el usuario y con-

    trasea. El servidor recoge el usuario/con-

    trasea y acepta o niega el acceso.

    share: Cada cliente valida el usuario de

    manera separada, el cliente pide y poste-

    riormente enva la contrasea cada vez

    que se solicita un recurso compartido del

    servidor sin necesidad de mandar el usua-

    rio.

    server: Los usuarios se validan utilizando

    un servidor externo, este parmetro va

    en conjuncin con otro parmetro, el

    password server, donde especificamos el

    nombre o IP del servidor de contraseas

    (podra ser un servidor de Microsoft) .

    domain: Utilizado normalmente en ser-

    vidores que son secundarios, nos da la

    posibilidad de usar una base de datos

    central de cuentas de usuario del contro-

    lador principal de dominio. Este parme-

    tro necesita tener habilitado el cifrado de

    contraseas con encrypt passwords.

    En cuanto a los recursos por defecto, suele traer

    tres recursos bsicos: directorio de cada usua-

    rio (homes), impresoras (printers) y el recurso

    oculto (print$) donde estaran los controla-

    dores para Windows de las impresoras. Los

    parmetros de un recurso pueden ser variados,

    desde el nombre (nombre de la seccin) hasta

    usuarios vlidos para lectura/escritura. En

    el caso de los directorios de cada usuario, en

    lugar de tener un recurso por usuario tenemos

    una sola seccin que tiene la configuracin del

    Figura 2. Seleccin del modo de ejecucin del servicio

    Figura 1. Configuracin del grupo de trabajo

    Listado 1. Fichero de configuracin bsico: smb.conf

    [global]

    workgroup = LINUXPLUS

    netbios name = servidor

    security = user

    server string = Servidor de red %h

    log file = /var/log/samba/log.%m

    max log size = 1000

    syslog = 0

    panic action = /usr/share/samba/

    panic-action %d

    encrypt passwords = true

    passdb backend = tdbsam

    obey pam restrictions = yes

    invalid users = root

    passwd program = /usr/bin/passwd %u

    passwd chat = *Enter\snew\sUNIX\

    spassword:* %n\n *Retype\snew\

    sUNIX\

    spassword:* %n\n *password\supdated

    \ssuccessfully* .

    socket options = TCP_NODELAY

    ...

    # Recursos compartidos

  • 36 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    37www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    recurso referente al directorio de un usuario

    dado como se puede observar en el Listado 2.

    La seccin referente a un recurso puede conte-

    ner: una descripcin comment, si puede verse en

    entorno de red browseable, si puede escribirse

    writeable, usuarios vlidos valid users, el direc-

    torio donde est ubicado en el servidor path, y

    muchos ms parmetros que se pueden encon-

    trar en el manual del smb.conf (man smb.conf).

    Por defecto el recurso homes slo se comparte

    en modo lectura, si se necesita trabajar con l

    es mejor cambiar la propiedad writeable a yes

    como est en el ejemplo del Listado 2.

    En el tema de los recursos como impre-

    soras, Samba comparte todas las impresoras

    que tiene configurado el servidor. Lo que

    puede suceder es que cuando queramos uti-

    lizar alguna impresora el cliente Windows se

    ponga a buscar los drivers, para ello Samba

    dispone de un recurso oculto el print$ que

    apunta a un directorio del servidor el /var/

    lib/samba/printers. Donde podemos colocar

    todos los drivers para Windows de nuestras

    impresoras.

    Configuracin de nuestros recursosSi se quisiera se podra crear un recurso ge-

    neral para que los usuarios puedan pasarse

    ficheros a travs de estos recursos como se

    puede ver en el Listado 3, si existen 2 gru-

    pos: gestin, contabilidad y que cada grupo

    solamente pueda leer y escribir dentro de su

    recurso. En el parmetro valid users se pueden

    poner tambin grupos con el prefijo @, tam-

    bin utilizamos un nuevo parmetro llamado

    write list que nos permite definir una lista de

    usuarios que pueden escribir dentro de este

    recurso. Es muy importante que los directorios

    reales del sistema tambin tengan asignados

    los grupos y permisos pertinentes, en este

    caso /usr/local/datos/gestion es del grupo gestin

    y puede leer/escribir, de manera anloga se

    hara al directorio de contabilidad. Por defecto

    cualquier recurso nuevo se puede ver una vez

    reiniciado el servicio sin necesidad de ponerle

    el parmetro browseable.

    Truco: Siempre que se haya cambiado

    alguno de los parmetros de la configuracin

    del fichero smb.conf sera conveniente com-

    probar que la configuracin no tiene errores,

    para ello utilizaremos el comando testparm.

    Hay algunos otros parmetros de gran in-

    ters como pueden ser: force group, create mode

    y directory mode que suelen ser necesarios en el

    momento que queramos forzar que los archi-

    vos que se creen dentro de estos directorios

    sean de un grupo determinado con force group

    o bien forzar los permisos de los archivos con

    un valor octal con create mode de la misma for-

    ma que lo hacemos con chmod en la terminal de

    Linux. En el ejemplo hemos configurado que

    los ficheros que se creen dentro de contabilidad

    tengan los permisos de lectura/escritura para

    el usuario propietario y el grupo correspon-

    diente, en este caso contabilidad.

    Configuracin de cuentas de usuarioUna vez configurados los recursos, ser ne-

    cesario crear los grupos y usuarios que van

    a usar el servidor Samba. Primero en el siste-

    ma y luego activar las cuentas de Samba, ya

    que van por separado tanto las cuentas como

    las contraseas (todo con el super-usuario del

    sistema root):

    Creamos los grupos en el sistema: add-

    group gestion; addgroup contabilidad

    Creamos el/los usuarios en el sistema:

    adduser usuario

    Agregamos el usuario a algn grupo

    creado: adduser usuario gestion

    Activamos y asignamos contrasea a la

    cuenta Samba: smbpasswd -a -U usuario

    Podramos tener algn usuario ya creado

    dentro del sistema que deseramos habilitarle

    como usuario Samba, esto lo podemos hacer

    utilizando el comando smbpasswd (por ejemplo:

    smbpasswd tomeu) y aadirlo a un grupo

    existente como por ejemplo: adduser tomeu

    contabilidad. Seguidamente debemos reiniciar

    el servicio de Samba para que coja la configura-

    cin smb.conf, en Debian: /etc/init.d/samba restart.

    Figura 3. Configuracin del grupo de trabajo en Windows XP Home Edition

    Figura 4. Accediendo al servidor a travs de Entorno de red

    Listado 2. Fichero de configuracin smb.conf (Recursos)

    [homes]

    comment = Home Directories

    browseable = no

    writable = yes

    create mask = 0700

    directory mask = 0700

    valid users = %S

    [printers]

    comment = All Printers

    browseable = no

    path = /var/spool/samba

    printable = yes

    public = no

    writable = no

    create mode = 0700

    [print$]

    comment = Printer Drivers

    path = /var/lib/samba/printers

    browseable = yes

    read only = yes

    guest ok = no

  • 36 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    37www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    Ms adelante vamos a ver otro sistema que

    nos permitir una mejor gestin de las cuentas

    como puede ser el sistema de directorio

    OpenLDAP.

    Configuracin de los clientes MS-WindowsA partir de aqu ya se puede acceder al ser-

    vidor Samba con un cliente MS-Windows,

    pero antes vamos a configurar el cliente.

    Primero ser necesario asignar el grupo de

    trabajo del equipo, por eso vamos a: Mi PC >

    Propiedades > Nombre de equipo > Cambiar ... y

    en donde pone Grupo de trabajo: (Figura

    3) vamos a poner el mismo grupo de trabajo

    (variable workgroup) que tengamos en la

    configuracin del servidor. Despus nos va

    a pedir que reiniciemos el equipo, una vez

    haya reiniciado ya podremos ir a: o bien

    a travs de Entorno de Red (Figura 4) o bien

    en Ejecutar poniendo la direccin IP o nom-

    bre del servidor (por ejemplo: \\servidor). Si

    el nombre de usuario y contrasea del equi-

    po coinciden con las que hemos creado den-

    tro del servidor no nos va pedir nada, pero

    si no, pasar lo que podemos observar en la

    Figura 4.

    Una vez accedido al servidor nos vamos

    a encontrar casi todos los recursos que hemos

    definido dentro del smb.conf como se puede

    ver en la Figura 5, los dos recursos contabili-

    dad, gestion y adems el recurso que pertenece

    al usuario actual, o sea su home, donde podr

    poner sus documentos, imgenes, etc., pero

    por ejemplo slo podr acceder y escribir

    dentro del recurso compartido de gestion ya

    que as se ha configurado.

    Truco: Para listar los usuarios conectados

    al servidor Samba y ver los recursos y ficheros

    que estn usando, utilizaremos el comando

    smbstatus.

    Configuracin de Samba como PDC Como hemos comentado al principio del artcu-

    lo aveces la infraestructura es tan compleja que

    es necesario que adems de compartir recursos

    necesitemos que Samba nos sirva para: auten-

    ticar el inicio de sesin de los clientes, gestionar

    los perfiles de cada usuario y que adems nos

    permita conectar ms de un servidor a la red

    Figura 5. Los recursos compartidos del servidor

    Figura 6. Asistente de Windows XP Professional para unir el equipo al dominio

    Listado 4. Parmetros que convierten a Samba en PDC

    domain master = yes

    local master = yes

    domain logons = yes

    preferred master = yes

    os level = 65

    Listado 3. Configuracin de recursos extras en smb.conf.

    [gestion]

    comment = Documentos compartidos de

    gestin

    path = /usr/local/datos/gestion

    valid users = @gestion

    write list = @gestion

    force group = gestion

    create mode = 770

    directory mode = 770

    [contabilidad]

    comment = Documentos

    compartidos de contabilidad

    path = /usr/local/datos/

    contabilidad

    valid users = @contabilidad

    write list = @contabilidad

    force group = contabilidad

    create mode = 770

    directory mode = 770

  • 38 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    39www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    y que sean secundarios de ste. En resumen lo

    mismo que hara un servidor de Microsoft (por

    ejemplo: Windows 2003 Server).

    En una red Microsoft est el concepto

    llamado Network Browsing, el cual permite

    a Windows y a Samba aparecer en el Entorno

    de Red de los clientes Windows. El Network

    Browsing es el que permite a los clientes generar

    la lista de servidores Windows y Samba que

    hay en la red, esto es gracias a unos mensajes

    que se transmiten va UDP en broadcast a los

    clientes y servidores. Para esto es necesario

    tener un servidor que acte de master browser,

    el cual coteja las listas de los masters locales de

    todas las sub-redes as es posible ir al Entorno

    de Red y poder ver cualquier grupo de trabajo

    y sus servidores. Para ello tendremos que

    aadir unos parmetros al fichero /etc/samba/

    smb.conf para activar la funcionalidad de PDC

    a Samba, estos parmetros se colocarn dentro

    de la seccin global, de la forma especificada en

    el Listado 4.

    Como hemos dicho antes es necesario

    definir un servidor como master browser, para

    hacerlo vamos a activar el parmetro domain

    master, tambin vamos hacer que Samba

    permita autentificar el inicio de sesin de los

    usuarios con el parmetro domain logons.

    Una vez incluidos estos parmetros

    referentes al PDC, tendremos que aadir un

    par de parmetros referentes a la creacin

    automtica de usuarios y equipos. Para

    eso es necesario habilitar el uso del usuario

    root como usuario de administracin con el

    parmetro (admin users) y su correspondiente

    contrasea con smbpasswd, tendramos que

    asegurarnos que en el fichero smb.conf no est

    el parmetro invalid users con el valor de root.

    Como se puede ver en el Listado 5 tenemos

    dos parmetros adicionales que definen las

    utilidades que tienen que ejecutar Samba

    cuando un equipo Windows se aade al

    dominio, esto es debido a que cada equipo del

    dominio tiene una cuenta del sistema asociada

    (del estilo pc-pruebas$).

    Una vez configurado Samba como PDC

    ser necesario reiniciar el daemon para que los

    cambios tengan efecto. Ahora lo nico que hace

    falta es ver como se configurarn los clientes

    Windows, en este caso vamos a unir al dominio

    un equipo con Windows XP Professional. Para

    hacerlo vamos a repetir los mismos primeros

    pasos: Mi PC > Propiedades > Nombre de

    equipo > Id. de Red, esto nos va sacar un

    asistente como el de la Figura 6 que nos va

    a hacer un par de preguntas referentes al equi-

    po y a la red, en principio vamos a decirle que

    el equipo forma parte de una red organizativa

    y que la red es con dominio. Seguidamente nos

    pedir la informacin de usuario y del domi-

    nio, como vemos en la Figura 7, vamos a po-

    nerle el nombre de nuestro dominio y un usu-

    ario existente en el servidor Samba. Despus

    nos pedir el nombre del equipo y el nombre

    del dominio (LINUXPLUS en nuestro caso),

    a partir de aqu nos va a pedir el usuario de

    administracin (root en nuestro caso), la con-

    trasea y el dominio para que nos cree el usu-

    ario referente al equipo dentro del servidor

    como podemos ver en la Figura 8.

    Configuracin del servicio de directorio OpenLDAP Cuando las infraestructuras son muy grandes

    y se hace muy pesada la gestin de mltiples

    cuentas de usuario, grupos, equipos, etc., se ha-

    ce necesario el uso de servicios que faciliten esa

    gestin, uno de estos servicios es OpenLDAP

    una versin libre de LDAP (Lightweight Direc-

    tory Access Protocol) que nos permite unificar

    todo tipo de cuentas de usuario en una sola

    base datos de acceso ligero. LDAP tambin

    puede servir como directorio de contactos de

    una empresa, porque aparte tambin nos per-

    mite organizar en forma de rbol la estructura

    de la empresa utilizando unidades organiza-

    tivas o OU (Organizational Unit) que actan

    Figura 7. Asistente nos pregunta nombre de usuario y dominio

    Figura 8. Autenticarse como administrador para unirse al dominio

    Listado 5. Parmetros referentes a la creacin automtica de cuentas de equipos

    admin users = root

    add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false "%u"

    add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false

    "%u"

  • 38 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    39www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    como carpetas organizando usuarios, grupos,

    equipos, etc., como podemos ver en la Figu-

    ra 9. En esta seccin nos vamos a centrar en la

    puesta en marcha del servicio y la configura-

    cin de Samba para que utilice el OpenLDAP

    para la gestin de usuarios y dems.

    Lo primero ser instalar el servidor de

    OpenLDAP si no tenemos ninguno y las uti-

    lidades necesarias, como dijimos al principio

    trabajamos con la distribucin Debian etch,

    pero estos paquetes tambin estn disponi-

    bles con otras distribuciones de Linux como

    por ejemplo: Ubuntu, Red Hat, etc. Los

    paquetes en Debian son: slapd, ldap-utils.

    Una vez descargados los paquetes vamos

    a proceder a su configuracin de manera

    automtica, pero antes nos puede pedir si

    queremos omitir hacer la configuracin, le

    decimos que no. Seguidamente nos empe-

    zar pidiendo parmetros sobre el nombre

    del dominio (linuxplus.com en nuestro caso)

    y nombre de la organizacin, finalmente la

    contrasea del administrador del directorio

    LDAP. Una vez instalado y configurado ya

    tendramos que tener la base de datos LDAP

    creada y el servicio slapd en marcha, pode-

    mos probar de listar el contenido de la base

    de datos con el comando slapcat que nos va

    a devolver en principio dos elementos: la

    raz del rbol y el nodo referente al usuario

    de administracin.

    Integracin de Samba con OpenLDAPPara poder integrar Samba con OpenLDAP es

    necesario unas utilidades llamadas smbldap-

    tools que tambin estn disponibles como pa-

    quete de Debian, aparte de configurar Samba

    para que trabaje con OpenLDAP como base de

    datos de cuentas de usuario, grupos, etc.

    Figura 9. Estructura de la base de datos OpenLDAP

    Listado 6. Configuracin de los parmetros del OpenLDAP en Samba

    passdb backend = ldapsam:ldap://127.0.0.1

    ldap passwd sync = Yes

    ldap suffix = dc=linuxplus,dc=com

    ldap user suffix = ou=People

    ldap group suffix = ou=Groups

    ldap machine suffix = ou=Computers

    ldap idmap suffix = ou=Idmap

    ldap admin dn = cn=admin,dc=linuxplus,dc=com

    add user script = /usr/sbin/smbldap-useradd -m "%u"

    add machine script = /usr/sbin/smbldap-useradd -w "%u"

    add group script = /usr/local/smbldap-groupadd -p "%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"

    delete user script = /usr/sbin/smbldap-userdel "%u"

    delete group script = /usr/sbin/smbldap-groupdel "%g"

    Listado 7. Configuracin del fichero smbldap_bind.conf

    slaveDN="cn=admin,dc=linuxplus,

    dc=com"

    slavePw="contrasea_

    administrador_ldap"

    masterDN="cn=admin,dc=linuxplus,

    dc=com"

    masterPw="contrasea_

    administrador_ldap"

  • 40 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    41www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    Ajustes de OpenLDAPAl servidor de LDAP es necesario hacerle una

    serie de ajustes para poder ubicar los usuarios

    de Samba, parmetros muy simples como por

    ejemplo la inclusin del schema de Samba 3.

    El fichero de configuracin que vamos a mo-

    dificar es /etc/ldap/slapd.conf, si nos fijamos

    en el fichero, al principio de todo tiene unos

    includes. Al final del ltimo include aadimos

    esta lnea:

    include /etc/ldap/schema/samba.schema

    Si no tenemos el samba.schema en /etc/ldap/

    schema lo podemos copiar del directorio /usr/

    share/doc/samba-doc/examples/LDAP/ que est

    comprimido con gzip. Lo vamos a descomprimir

    con gunzip samba.schema.gz para su pos-

    terior copia a /etc/ldap/schema. Despus vamos

    a aadir la linea index sambaSID,sambaPrimar

    yGroupSID,sambaDomainName eq despus de

    la lnea que contiene index objectClass eq. Este

    ltimo parmetro configura los ndices por

    los que indexar la base de datos para poder

    realizar bsquedas con estos campos.

    Finalmente vamos a reiniciar el daemon

    del servidor LDAP con /etc/init.d/slapd restart

    en nuestro caso con Debian.

    Ajustes de SambaAhora vamos a aadir los parmetros necesarios

    para que Samba trabaje con OpenLDAP para

    la validacin de usuarios, gestin de grupos,

    equipos, etc. A partir del fichero /etc/samba/

    smb.conf vamos hacer una serie de cambios, el

    primero es el de cambiar el backend de la base de

    datos de usuarios/contraseas con el parmetro

    passdb backend, seguidamente configuraremos

    todos los parmetros referentes a la estructura

    de cmo estn organizados los datos dentro del

    OpenLDAP (usuarios, grupos, equipos, etc.)

    como est en el Listado 6. Cuidado con duplicar

    parmetros como los de add user script y add

    machine script que hemos puesto anteriormente,

    es mejor sustituirlos por los nuevos.

    Utilidades para la integracinComo hemos comentado al principio de este

    apartado, para integrar Samba y OpenLDAP

    necesitamos las utilidades smbldap-tools. Estas

    herramientas son utilizadas por Samba para

    Figura 10. Herramienta de administracin de LDAP para Windows

    Listado 8. Configuracin del fichero smbldap.conf

    SID="S-1-5-21-2063575342-

    2847459922-2710907528"

    sambaDomain="LINUXPLUS"

    slaveLDAP="127.0.0.1"

    slavePort="389"

    masterLDAP="127.0.0.1"

    masterPort="389"

    ...

    suffix="dc=linuxplus,dc=com"

    usersdn="ou=People,${suffix}"

    computersdn="ou=Computers,${suffi

    x}"

    groupsdn="ou=Groups,${suffix}"

    idmapdn="ou=Idmap,${suffix}"

    sambaUnixIdPooldn="sambaDomainName=

    LINUXPLUS,${suffix}"

    ...

    hash_encrypt="CRYPT"

    ...

    userSmbHome="\\SERVIDOR\%U"

    userProfile="\\SERVIDOR\%U\profile"

    userHomeDrive="Z:"

    userScript="logon.bat"

    mailDomain="linuxplus.com"

    ...

    Listado 9. Salida del comando smbldap-populate

    Populating LDAP directory for domain LINUXPLUS

    (S-1-5-21-2063575342-2847459922-2710907528)

    (using builtin directory structure)

    entry dc=linuxplus,dc=com already exist.

    adding new entry: ou=People,dc=linuxplus,dc=com

    adding new entry: ou=Groups,dc=linuxplus,dc=com

    adding new entry: ou=Computers,dc=linuxplus,dc=com

    adding new entry: ou=Idmap,dc=linuxplus,dc=com

    adding new entry: uid=administrador,ou=People,dc=linuxplus,dc=com

    adding new entry: uid=nobody,ou=People,dc=linuxplus,dc=com

    adding new entry: cn=Domain Admins,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Domain Users,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Domain Guests,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Domain Computers,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Administrators,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Account Operators,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Print Operators,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Backup Operators,ou=Groups,dc=linuxplus,dc=com

    adding new entry: cn=Replicators,ou=Groups,dc=linuxplus,dc=com

    adding new entry: sambaDomainName=LINUXPLUS,dc=linuxplus,dc=com

  • 40 Linux+ 10/2007

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    41www.lpmagazine.org

    linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows

    realizar tareas de creacin, modificacin y bo-

    rrado de cuentas en la base de datos LDAP, por

    tanto vamos a proceder a su configuracin

    para su posterior manejo.

    Despus de realizar la instalacin del pa-

    quete smbldap-tools vamos a proceder a su con-

    figuracin, la cual est ubicada en el directorio

    /etc/smbldap-tools, la mayora de veces nos po-

    demos encontrar el directorio vaco, para ello

    vamos a copiar dos ficheros que se encuentran

    en /usr/share/doc/smbldap-tools/examples llama-

    dos smbldap_bind.conf y smbldap.conf.gz este l-

    timo comprimido (mejor descomprimirlo antes

    de su copia). Los vamos a copiar al directorio

    /etc/smbldap-tools y vamos a realizar unas modi-

    ficaciones, primero al fichero smbldap_bind.conf

    como se puede ver en el Listado 7. Este fiche-

    ro contiene el usuario y contrasea en texto

    plano del administrador del LDAP que hemos

    configurado en la instalacin del mismo. Una

    vez editado vamos a cambiarle los permisos

    para que solamente root pueda acceder a l,

    con chmod 600 smbldap_bind.conf.

    Seguidamente realizaremos una serie de

    cambios al fichero smbldap.conf, este fichero

    ya viene preconfigurado con unos valores por

    defecto y que nosotros ajustaremos depen-

    diendo de nuestras necesidades. Realmente

    basta con cambiar cinco parmetros referentes

    al nombre de dominio y el nombre de las es-

    tructuras que contienen las cuentas de usuario

    dentro del LDAP. Vamos a cambiar los par-

    metros especificados por el Listado 8, el fichero

    tiene ms parmetros pero nosotros solamente

    vamos a cambiar stos. El parmetro SID

    determina el identificador del servidor que se

    obtiene de ejecutar el comando net getlocalsid en

    la consola como root, los otros parmetros son

    referentes al nombre del dominio Samba, IP del

    servidor LDAP (la misma mquina en nuestro

    caso) y la configuracin de los contenedores

    de los usuarios (People), grupos de usuarios

    (Groups) y cuentas de equipos (Computers).

    Una vez realizada la configuracin vamos

    a proceder a la posterior ejecucin del coman-

    do smbldap-populate -a administrador el cual nos

    va a crear toda la estructura de grupos por de-

    fecto y contenedores de cuentas como se puede

    observar en el Listado 9, es muy importante

    que la fase de configuracin de OpenLDAP

    haya ido bien porque si no smbldap-populate nos

    va a fallar. En la ejecucin del smbldap-po-

    pulate va a realizar operaciones dentro de la

    base de datos OpenLDAP, creando los gru-

    pos requeridos por Samba para la adminis-

    tracin del dominio y el usuario administra-

    dor del dominio. As como cuando hemos

    configurado Samba como PDC pero con las

    cuentas del sistema utilizamos el usuario

    root para unirnos al dominio, esta vez vamos

    a utilizar el usuario administrador y contrasea

    que nos pedir al final de la ejecucin. Esto

    tambin quiere decir que el usuario que

    habamos creado al principio de pruebas

    tampoco nos va a servir porque ahora Samba

    utiliza LDAP como base de datos para las

    cuentas de usuario.

    Lo ltimo que nos queda hacer es que

    el sistema tambin utilice el OpenLDAP pa-

    ra leer los grupos y usuarios en lugar de las

    bases de datos /etc/passwd y /etc/shadow. Esto

    lo vamos hacer instalando el paquete nss_ldap

    en nuestro caso el paquete libnss-ldap para

    Debian, en la instalacin nos va a pedir la di-

    reccin del servidor LDAP (ldap://127.0.0.1/ en

    nuestro caso), el base DN (dc=linuxplus,dc=com

    en nuestro caso la raz de LDAP), la versin

    que utilizamos (versin 3), no necesitamos

    usuario para acceder a la base de datos, damos

    privilegios especiales de LDAP para root, cuen-

    ta de administracin de la base de datos LDAP

    (cn=admin, dc=linuxplus, dc=com en nuestro

    caso) y su contrasea. Una vez configurado

    cambiaremos los parmetros especificados en

    el Listado 10 del fichero /etc/nsswitch.conf. Es

    muy importante recordar que a partir de esta

    operacin los usuarios y grupos creados an-

    teriormente con adduser (resp. addgroup) ya

    no estn operativos y es mejor eliminarlos con

    userdel y groupdel para volverlos a crear dentro

    del OpenLDAP. La gestin de cuentas se puede

    o bien hacer manualmente con las herramien-

    tas de consola o bien visuales, del estilo LD-

    AP Admin for Windows (Figura 10) que se

    puede descargar de manera gratuita de http://

    ldapadmin.sourceforge.net/.

    Por ejemplo queremos crear los grupos

    que tenamos al principio: gestion y contabili-

    dad, usando la herramienta ldapadd de la sigu-

    iente forma: crearemos un fichero de texto

    como el del Listado 11 y ejecutamos la sigu-

    iente lnea como root: ldapadd -x -D 'cn=admin,

    dc=linuxplus,dc=com' -W -f contabilidad.ldif.

    Tenemos que tener en cuenta que el gid-

    Number puede ser mayor o igual a 1000 para

    que no entre en conflicto con ningn otro. El

    fichero est compuesto por diferentes cam-

    pos que nos determinan la situacin del nue-

    vo objeto dentro de la base de datos con dn,

    el nombre del objeto con cn y despus el tipo

    o tipos de objeto, en nuestro caso es un objeto

    tipo posixGroup (grupo de sistema), samba-

    GroupMapping (grupo de Samba). Cada tipo de

    objeto tiene su conjunto de campos propios,

    como por ejemplo el posixGroup nos propor-

    ciona el campo gidNumber y el sambaGroupMa-

    pping los campos sambaGroupType y sambaSID.

    El campo sambaSID est compuesto por

    el SID local cogido con net getlocalsid y aa-

    diendo el RID que es igual a 2*gidNumber+

    1001. Pero es mejor utilizar las herramien-

    tas smbldap-tools que ya llevan utilidades pa-

    ra crear y borrar todo tipo de usuarios y gru-

    pos adems ya se encarga de darle un GID

    correlativo y un RID automticamente. Por

    ejemplo smbldap-groupadd -a contabilidad nos

    dar el mismo resultado que con ldapadd

    pero sin tener que especificar todos los par-

    metros que son necesarios, basta con el nom-

    bre del grupo. De la misma forma podemos

    crear un usuario nuevo con smbldap-useradd -a

    -G contabilidad tomeu y asignarle una contrasea

    con smbldap-passwd tomeu.

    Es necesario que una vez hecho el cambio

    a OpenLDAP volver a unir el equipo que

    hemos utilizado anteriormente al dominio de

    la misma manera que hemos hecho anterior-

    mente, con la diferencia de que cuando nos

    pregunte por la cuenta que tenga privilegios

    para unirse al dominio usaremos la cuenta

    que ha creado la utilidad smbldap-populate, la

    de administrador con su contrasea corres-

    pondiente.

    Listado 10. Cambios en el fichero /etc/nsswitch.conf

    ...

    passwd: compat ldap

    group: compat ldap

    shadow: compat ldap

    ...

    Listado 11. Fichero para crear un grupo dentro de OpenLDAP

    dn: cn=contabilidad,ou=Groups,dc=linuxplus,dc=com

    cn: contabilidad

    objectclass: posixGroup

    objectclass: top

    objectclass: sambaGroupMapping

    sambaGroupType: 2

    sambaSID: S-1-5-21-2063575342-2847459922-2710907528-23653

    gidNumber: 11326