Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Documentación de SUSE Enterprise Storage 7 / Guía de administración y operaciones / Acceso a los datos del clúster / Exportación de datos de Ceph a través de Samba
Se aplica a SUSE Enterprise Storage 7

24 Exportación de datos de Ceph a través de Samba

En este capítulo se describe cómo exportar datos almacenados en un clúster de Ceph a través de un recurso compartido Samba/CIFS, de forma que se pueda acceder fácilmente a ellos desde equipos cliente Windows.* También incluye información que le ayudará a configurar una pasarela Samba de Ceph para unirse a Active Directory en el dominio de Windows* para autenticar y autorizar a los usuarios.

Nota
Nota: rendimiento de pasarela Samba

Debido al aumento de la sobrecarga de protocolo y a la latencia adicional causados por saltos de red adicionales entre el cliente y el almacenamiento, el acceso a CephFS a través de una pasarela Samba puede reducir de forma significativa el rendimiento de la aplicación en comparación con los clientes de Ceph nativos.

24.1 Exportación de CephFS mediante un recurso compartido Samba

Aviso
Aviso: acceso con varios protocolos

Los clientes nativos de CephFS y NFS no están restringidos por los bloqueos de archivos obtenidos a través de Samba, y viceversa. Las aplicaciones que se basan en el bloqueo de archivos con varios protocolos pueden sufrir daños en los datos si se accede a las vías compartidas de Samba respaldadas por CephFS a través de otros medios.

24.1.1 Configuración y exportación de paquetes de Samba

Para configurar y exportar un recurso compartido Samba, es necesario instalar los paquetes siguientes: samba-ceph y samba-winbind. Instale estos paquetes si no lo están:

cephuser@smb > zypper install samba-ceph samba-winbind

24.1.2 Ejemplo de pasarela única

Para preparar la exportación de un recurso compartido Samba, elija un nodo adecuado para que actúe como pasarela Samba. El nodo debe tener acceso a la red del cliente de Ceph, así como suficientes recursos de CPU, memoria y redes.

Es posible proporcionar funcionalidad de failover con CTDB y SUSE Linux Enterprise High Availability Extension. Consulte la Sección 24.1.3, “Configuración de alta disponibilidad” para obtener más información sobre la configuración de alta disponibilidad.

  1. Asegúrese de que ya existe una instancia de CephFS en funcionamiento en el clúster.

  2. Cree un anillo de claves específico para la pasarela Samba en nodo de administración de Ceph y cópielo en ambos nodos de pasarela Samba:

    cephuser@adm > ceph auth get-or-create client.samba.gw mon 'allow r' \
     osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    cephuser@adm > scp ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/

    Sustituya SAMBA_NODE con el nombre del nodo de pasarela de Samba.

  3. Los pasos siguientes se ejecutan en el nodo de pasarela Samba. Instale Samba junto con el paquete de integración de Ceph:

    cephuser@smb > sudo zypper in samba samba-ceph
  4. Sustituya el contenido por defecto del archivo /etc/samba/smb.conf por lo siguiente:

    [global]
      netbios name = SAMBA-GW
      clustering = no
      idmap config * : backend = tdb2
      passdb backend = tdbsam
      # disable print server
      load printers = no
      smbd: backgroundqueue = no
    
    [SHARE_NAME]
      path = CEPHFS_MOUNT
      read only = no
      oplocks = no
      kernel share modes = no

    La vía CEPHFS_MOUNT anterior debe montarse antes de iniciar Samba con una configuración de recurso compartido CephFS del kernel. Consulte la Sección 23.3, “Montaje de CephFS en /etc/fstab.

    La configuración de recursos compartidos anterior utiliza el cliente CephFS del kernel de Linux, lo que se recomienda por motivos de rendimiento. Como alternativa, el módulo Samba vfs_ceph también se puede utilizar para comunicarse con el clúster de Ceph. Las instrucciones se muestran a continuación para sistemas heredados, pero no se recomiendan para distribuciones nuevas de Samba:

    [SHARE_NAME]
      path = /
      vfs objects = ceph
      ceph: config_file = /etc/ceph/ceph.conf
      ceph: user_id = samba.gw
      read only = no
      oplocks = no
      kernel share modes = no
    Sugerencia
    Sugerencia: Oplocks y modos compartidos

    Los oplocks (también conocidos como arrendamientos SMB2+) mejoran el rendimiento gracias al almacenamiento en caché agresivo del cliente, pero actualmente no son seguros si Samba se distribuye junto con otros clientes de CephFS, como el kernel mount.ceph, FUSE o NFS Ganesha.

    Si Samba controla en exclusiva todo el acceso a la vía del sistema de archivos CephFS, el parámetro oplocks se puede habilitar de forma segura.

    Actualmente, kernel share modes debe estar inhabilitado en un recurso compartido que se ejecute con el módulo CephFS vfs para que la provisión de archivos funcione correctamente.

    Importante
    Importante: permitir el acceso

    Samba asigna usuarios y grupos de SMB a cuentas locales. A los usuarios locales se les puede asignar una contraseña para el acceso compartido de Samba mediante:

    root # smbpasswd -a USERNAME

    Para que la E/S se realice correctamente, la lista de control de acceso (ACL) de la vía compartida debe permitir el acceso al usuario conectado a través de Samba. Puede modificar la ACL montándola temporalmente a través del cliente del kernel de CephFS y utilizando las utilidades chmod, chown o setfacl en la vía del recurso compartido. Por ejemplo, para permitir el acceso a todos los usuarios, ejecute:

    root # chmod 777 MOUNTED_SHARE_PATH

24.1.2.1 Inicio de los servicios de Samba

Inicie o reinicie los servicios Samba independientes mediante los comandos siguientes:

root # systemctl restart smb.service
root # systemctl restart nmb.service
root # systemctl restart winbind.service

Para garantizar que los servicios de Samba se inician al arrancar, habilítelos mediante:

root # systemctl enable smb.service
root # systemctl enable nmb.service
root # systemctl enable winbind.service
Sugerencia
Sugerencia: servicios nmb y winbind opcionales

Si no necesita examinar el recurso compartido de red, no es necesario que habilite e inicie el servicio nmb.

El servicio winbind solo es necesario cuando se configura como miembro del dominio de Active Directory. Consulte la Sección 24.2, “Unión de pasarela Samba y Active Directory”.

24.1.3 Configuración de alta disponibilidad

Importante
Importante: no se permite el failover transparente

Aunque una distribución de varios nodos de Samba + CTDB tiene mayor disponibilidades que un nodo único (consulte el Capítulo 24, Exportación de datos de Ceph a través de Samba), no se admite el failover transparente en el cliente. Es probable que las aplicaciones experimenten una breve interrupción por el error del nodo de pasarela Samba.

En esta sección se proporciona un ejemplo de cómo establecer una configuración de dos nodos de alta disponibilidad de los servidores de Samba. La configuración requiere SUSE Linux Enterprise High Availability Extension. Los dos nodos se denominan earth (192.168.1.1) y mars (192.168.1.2).

Para obtener información sobre SUSE Linux Enterprise High Availability Extension, consulte https://documentation.suse.com/sle-ha/15-SP1/.

Asimismo, dos direcciones IP virtuales flotantes permiten a los clientes conectarse al servicio independientemente del nodo físico en el que se estén ejecutando. 192.168.1.10 se usa para la administración del clúster con Hawk2 y 192.168.2.1 se usa exclusivamente para las exportaciones CIFS. De esta forma es más fácil aplicar más tarde restricciones de seguridad.

El procedimiento siguiente describe la instalación de ejemplo. Encontrará más información en https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html.

  1. Cree un anillo de claves específico de la pasarela Samba en el nodo de administración y cópielo en ambos nodos:

    cephuser@adm > ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    cephuser@adm > scp ceph.client.samba.gw.keyring earth:/etc/ceph/
    cephuser@adm > scp ceph.client.samba.gw.keyring mars:/etc/ceph/
  2. La configuración de SLE-HA requiere un dispositivo de aislamiento para evitar una situación de clúster con nodos malinformados cuando los nodos de clúster activos dejen de estar sincronizados. Para ello, puede utilizar una imagen Ceph RBD con un dispositivo de bloques Stonith (SBD). Consulte https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-ha-storage-protect.html#sec-ha-storage-protect-fencing-setup para obtener más información.

    Si aún no existe, cree un repositorio RBD denominado rbd (consulte la Sección 18.1, “Creación de un repositorio”) y asócielo con rbd (consulte la Sección 18.5.1, “Asociación de repositorios a una aplicación”). A continuación, cree una imagen RBD relacionada llamada sbd01:

    cephuser@adm > ceph osd pool create rbd
    cephuser@adm > ceph osd pool application enable rbd rbd
    cephuser@adm > rbd -p rbd create sbd01 --size 64M --image-shared
  3. Prepare earth y mars para que alojen el servicio de Samba:

    1. Asegúrese de que los paquetes siguientes están instalados antes de continuar: ctdb, tdb-toolsy samba.

      root # zypper in ctdb tdb-tools samba samba-ceph
    2. Asegúrese de que los servicios Samba y CTDB están detenidos e inhabilitados:

      root # systemctl disable ctdb
      root # systemctl disable smb
      root # systemctl disable nmb
      root # systemctl disable winbind
      root # systemctl stop ctdb
      root # systemctl stop smb
      root # systemctl stop nmb
      root # systemctl stop winbind
    3. Abra el puerto 4379 del cortafuegos en todos los nodos. Esto es necesario para que CTDB pueda comunicarse con los demás nodos del clúster.

  4. En earth, cree los archivos de configuración de Samba. Más adelante, se sincronizarán automáticamente con mars.

    1. Inserte una lista de direcciones IP privadas de los nodos de pasarela Samba en el archivo /etc/ctdb/node. Encontrará más información en la página de manual de ctdb (man 7 ctdb).

      192.168.1.1
      192.168.1.2
    2. Configure Samba. Añada las líneas siguientes en la sección [global] de /etc/samba/smb.conf. Utilice el nombre de host que desee en lugar de CTDB-SERVER (en realidad, todos los nodos del clúster aparecerán como un nodo extenso con este nombre): Añada también una definición de recurso compartido, como ejemplo, puede usar SHARE_NAME:

      [global]
        netbios name = SAMBA-HA-GW
        clustering = yes
        idmap config * : backend = tdb2
        passdb backend = tdbsam
        ctdbd socket = /var/lib/ctdb/ctdb.socket
        # disable print server
        load printers = no
        smbd: backgroundqueue = no
      
      [SHARE_NAME]
        path = /
        vfs objects = ceph
        ceph: config_file = /etc/ceph/ceph.conf
        ceph: user_id = samba.gw
        read only = no
        oplocks = no
        kernel share modes = no

      Tenga en cuenta que los archivos /etc/ctdb/nodes y /etc/samba/smb.conf deben coincidir en todos los nodos de pasarela Samba.

  5. Instale y cargue el clúster de SUSE Linux Enterprise High Availability.

    1. Registre SUSE Linux Enterprise High Availability Extension en earth y mars:

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Instale ha-cluster-bootstrap en ambos nodos:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Asigne la imagen RBD sbd01 en ambas pasarelas Samba mediante rbdmap.service.

      Edite /etc/ceph/rbdmap y añada una entrada para la imagen SBD:

      rbd/sbd01 id=samba.gw,keyring=/etc/ceph/ceph.client.samba.gw.keyring

      Habilite e inicie rbdmap.service:

      root@earth # systemctl enable rbdmap.service && systemctl start rbdmap.service
      root@mars # systemctl enable rbdmap.service && systemctl start rbdmap.service

      El dispositivo /dev/rbd/rbd/sbd01 debe estar disponible en ambas pasarelas Samba.

    4. Inicialice el clúster en earth y deje que mars se una a él.

      root@earth # ha-cluster-init
      root@mars # ha-cluster-join -c earth
      Importante
      Importante

      Durante el proceso de inicialización y unión al clúster, se le preguntará de forma interactiva si desea utilizar SBD. Confirme con y y, a continuación, especifique /dev/rbd/rbd/sbd01 como vía al dispositivo de almacenamiento.

  6. Compruebe el estado del clúster. Debería observar que se han añadido dos nodos al clúster:

    root@earth # crm status
    2 nodes configured
    1 resource configured
    
    Online: [ earth mars ]
    
    Full list of resources:
    
     admin-ip       (ocf::heartbeat:IPaddr2):       Started earth
  7. Ejecute los comandos siguientes en earth para configurar el recurso CTDB:

    root@earth # crm configure
    crm(live)configure# primitive ctdb ocf:heartbeat:CTDB params \
        ctdb_manages_winbind="false" \
        ctdb_manages_samba="false" \
        ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper
            ceph client.samba.gw cephfs_metadata ctdb-mutex"
        ctdb_socket="/var/lib/ctdb/ctdb.socket" \
            op monitor interval="10" timeout="20" \
            op start interval="0" timeout="200" \
            op stop interval="0" timeout="100"
    crm(live)configure# primitive smb systemd:smb \
        op start timeout="100" interval="0" \
        op stop timeout="100" interval="0" \
        op monitor interval="60" timeout="100"
    crm(live)configure# primitive nmb systemd:nmb \
        op start timeout="100" interval="0" \
        op stop timeout="100" interval="0" \
        op monitor interval="60" timeout="100"
    crm(live)configure# primitive winbind systemd:winbind \
        op start timeout="100" interval="0" \
        op stop timeout="100" interval="0" \
        op monitor interval="60" timeout="100"
    crm(live)configure# group g-ctdb ctdb winbind nmb smb
    crm(live)configure# clone cl-ctdb g-ctdb meta interleave="true"
    crm(live)configure# commit
    Sugerencia
    Sugerencia: primitivas nmb y winbind opcionales

    Si no necesita examinar el recurso compartido de red, no es necesario añadir el primitivo nmb.

    El primitivo winbind solo es necesario si se configura como miembro del dominio de Active Directory. Consulte la Sección 24.2, “Unión de pasarela Samba y Active Directory”.

    El archivo binario /usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper de la opción de configuración ctdb_recovery_lock tiene los parámetros CLUSTER_NAME CEPHX_USER RADOS_POOL y RADOS_OBJECT, en este orden.

    Es posible anexar un parámetro de tiempo de espera de bloqueo adicional para sustituir el valor por defecto utilizado (10 segundos). Un valor más alto aumentará el tiempo de failover del master de recuperación CTDB, mientras que un valor más bajo puede dar lugar a que se detecte incorrectamente que el master de recuperación está inactivo, lo que desencadenaría conmutaciones por error sucesivas.

  8. Añada una dirección IP agrupada en clúster:

    crm(live)configure# primitive ip ocf:heartbeat:IPaddr2
        params ip=192.168.2.1 \
        unique_clone_address="true" \
        op monitor interval="60" \
        meta resource-stickiness="0"
    crm(live)configure# clone cl-ip ip \
        meta interleave="true" clone-node-max="2" globally-unique="true"
    crm(live)configure# colocation col-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# order o-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# commit

    Si unique_clone_address se define como true (verdadero), el agente de recurso IPaddr2 añade un ID de clonación a la dirección especificada, lo que da como resultado que haya tres direcciones IP distintas. Normalmente, no son necesarias, pero ayudan a la hora de equilibrar la carga. Para obtener más información sobre este tema, consulte https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-ha-lb.html.

  9. Compruebe el resultado:

    root@earth # crm status
    Clone Set: base-clone [dlm]
         Started: [ factory-1 ]
         Stopped: [ factory-0 ]
     Clone Set: cl-ctdb [g-ctdb]
         Started: [ factory-1 ]
         Started: [ factory-0 ]
     Clone Set: cl-ip [ip] (unique)
         ip:0       (ocf:heartbeat:IPaddr2):       Started factory-0
         ip:1       (ocf:heartbeat:IPaddr2):       Started factory-1
  10. Realice una prueba desde un equipo cliente. En un cliente Linux, ejecute el comando siguiente para comprobar si puede copiar archivos desde el sistema y en el sistema:

    root # smbclient //192.168.2.1/myshare

24.1.3.1 Reinicio de recursos de Samba de alta disponibilidad

Después de cualquier cambio en la configuración de Samba o CTDB, es posible que sea necesario reiniciar los recursos de alta disponibilidad para que los cambios surtan efecto. Esto puede hacerse así:

root # crm resource restart cl-ctdb

24.2 Unión de pasarela Samba y Active Directory

Puede configurar la pasarela Samba de Ceph para que se convierta en miembro del dominio de Samba compatible con Active Directory (AD). Como miembro del dominio de Samba, puede usar usuarios y grupos de dominio en listas de acceso local (ACL) en archivos y directorios del sistema CephFS exportado.

24.2.1 Preparación de la instalación de Samba

En esta sección se presenta los pasos preparatorios que debe tener en cuenta antes de configurar Samba. Empezar con un entorno limpio ayuda a evitar confusiones y permite verificar que no se mezcla ningún archivo de la instalación anterior de Samba con la nueva instalación del miembro de dominio.

Sugerencia
Sugerencia: sincronización de relojes

Todos los relojes de los nodos de la pasarela Samba deben sincronizarse con el controlador de dominio de Active Directory. La diferencia de hora puede provocar errores de autenticación.

Compruebe que no se esté ejecutando ningún proceso de Samba ni de almacenamiento en caché de nombres:

cephuser@smb > ps ax | egrep "samba|smbd|nmbd|winbindd|nscd"

Si en el resultado aparece algún proceso samba, smbd, nmbd, winbindd o nscd, deténgalos.

Si ha ejecutado previamente una instalación de Samba en este host, elimine el archivo /etc/samba/smb.conf. Elimine también todos los archivos de base de datos de Samba, como los archivos *.tdb y *.ldb. Para mostrar directorios que contienen bases de datos Samba, ejecute:

cephuser@smb > smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"

24.2.2 Verificación de DNS

Active Directory (AD) utiliza DNS para localizar otros controladores de dominio (CD) y servicios, como Kerberos. Por lo tanto, los miembros del dominio de AD y los servidores deben poder resolver las zonas DNS de AD.

Verifique que DNS esté configurado correctamente y que tanto la búsqueda directa como la inversa den resultados correctamente, por ejemplo:

cephuser@adm > nslookup DC1.domain.example.com
Server:         10.99.0.1
Address:        10.99.0.1#53

Name:   DC1.domain.example.com
Address: 10.99.0.1
cephuser@adm > 10.99.0.1
Server:        10.99.0.1
Address:	10.99.0.1#53

1.0.99.10.in-addr.arpa	name = DC1.domain.example.com.

24.2.3 Resolución de registros SRV

AD utiliza registros SRV para localizar servicios, como Kerberos y LDAP. Para comprobar si los registros SRV se resuelven correctamente, utilice la shell interactiva nslookup, por ejemplo:

cephuser@adm > nslookup
Default Server:  10.99.0.1
Address:  10.99.0.1

> set type=SRV
> _ldap._tcp.domain.example.com.
Server:  UnKnown
Address:  10.99.0.1

_ldap._tcp.domain.example.com   SRV service location:
          priority       = 0
          weight         = 100
          port           = 389
          svr hostname   = dc1.domain.example.com
domain.example.com      nameserver = dc1.domain.example.com
dc1.domain.example.com  internet address = 10.99.0.1

24.2.4 Configuración de Kerberos

Samba admite los back-ends Kerberos Heimdal y MIT. Para configurar Kerberos en el miembro de dominio, defina lo siguiente en el archivo /etc/krb5.conf:

[libdefaults]
	default_realm = DOMAIN.EXAMPLE.COM
	dns_lookup_realm = false
	dns_lookup_kdc = true

En el ejemplo anterior, Kerberos se configura para el reino DOMAIN.EXAMPLE.COM. No se recomienda definir ningún parámetro adicional en el archivo /etc/krb5.conf. Si /etc/krb5.conf contiene una línea include, no funcionará; debe eliminar esta línea.

24.2.5 Resolución del nombre del host local

Cuando se une un host al dominio, Samba intenta registrar el nombre de host en la zona DNS de AD. Para ello, la utilidad net debe ser capaz de resolver el nombre de host mediante DNS o con una entrada correcta en el archivo /etc/hosts.

Para verificar que el nombre de host se resuelve correctamente, utilice el comando getent hosts:

cephuser@adm > getent hosts example-host
10.99.0.5      example-host.domain.example.com    example-host

El nombre de host y el nombre completo no deben resolverse en la dirección IP 127.0.0.1 ni en ninguna dirección IP que no sea la utilizada en la interfaz LAN del miembro de dominio. Si no se muestra ningún resultado o el host se resuelve en la dirección IP incorrecta y no está utilizando DHCP, defina la entrada correcta en el archivo /etc/hosts:

127.0.0.1      localhost
10.99.0.5      example-host.samdom.example.com    example-host
Sugerencia
Sugerencia: DHCP y /etc/hosts

Si utiliza DHCP, compruebe que /etc/hosts solo contiene la línea "127.0.0.1". Si sigue teniendo problemas, póngase en contacto con el administrador del servidor DHCP.

Si necesita añadir alias al nombre de host del equipo, añádalos al final de la línea que comienza con la dirección IP del equipo, no a la línea "127.0.0.1".

24.2.6 Configuración de Samba

En esta sección se presenta información sobre las opciones de configuración específicas que debe incluir en la configuración de Samba.

La pertenencia al dominio de Active Directory se configura principalmente con el ajuste security = ADS junto con los parámetros de asignación de ID y del dominio de Kerberos adecuados en la sección [global] de /etc/samba/smb.conf.

[global]
  security = ADS
  workgroup = DOMAIN
  realm = DOMAIN.EXAMPLE.COM
  ...

24.2.6.1 Elección del procesador final para la asignación de ID en winbindd

Si necesita que los usuarios tengan diferentes shells de entrada a la sesión o vías de directorio de inicio de Unix, o si desea que tengan el mismo ID en todas partes, deberá usar el back-end winbind "ad" y añadir atributos RFC2307 a AD.

Importante
Importante: atributos RFC2307 y números de ID

Los atributos RFC2307 no se añaden automáticamente cuando se crean usuarios o grupos.

Los números de ID presentes en un controlador de dominio (números en el rango 3000000) no son atributos RFC2307 y no se utilizarán en los miembros de dominio de Unix. Si necesita tener los mismos números de ID en todas partes, añada los atributos uidNumber y gidNumber a AD y utilice el back-end winbind "ad" en los miembros de dominio de Unix. Si decide añadir los atributos uidNumber y gidNumber a AD, no utilice números en el rango 3000000.

Si los usuarios solo usarán el controlador de dominio de AD de Samba para la autenticación y no almacenarán datos ni entrarán a la sesión en él, puede usar el back-end winbind "rid". Esto calcula los ID de usuario y grupo del RID de Windows*. Si utiliza la misma sección [global] de smb.conf en cada miembro de dominio de Unix, obtendrá los mismos ID. Si utiliza el back-end "rid", no es necesario añadir nada a AD y los atributos RFC2307 se omitirán. Cuando utilice el back-end "rid", defina los parámetros template shell y template homedir en smb.conf. Este valor es global y todos los usuarios obtienen la misma shell de entrada a la sesión y la misma vía del directorio de inicio de Unix (a diferencia de los atributos RFC2307, donde es posible definir shells y vías del directorio de inicio de Unix individuales).

Hay otra forma de configurar Samba: si necesita que los usuarios y grupos tengan el mismo ID en todas partes, pero solo necesitan que los usuarios tengan la mismo shell de entrada a la sesión y usen la misma vía de directorio de inicio de Unix. Puede hacerlo utilizando el back-end winbind "ad" y las líneas de plantilla en smb.conf. De esta forma solo necesita añadir los atributos uidNumber y gidNumber a AD.

Sugerencia
Sugerencia: más información sobre back-ends para la asignación de ID

Encontrará información detallada sobre los back-end de asignación de ID disponibles en las páginas man relacionadas: man 8 idmap_ad, man 8 idmap_rid y man 8 idmap_autorid.

24.2.6.2 Configuración de rangos de ID de usuario y grupo

Después de decidir qué back-end winbind se va a utilizar, debe especificar los rangos que se deben usar con la opción idmap config en smb.conf. Por defecto, hay varios bloques de ID de usuarios y grupos en un miembro de dominio de Unix:

Tabla 24.1: Bloques de ID de usuarios y grupos por defecto
IDRango
0-999Usuarios y grupos del sistema local.
A partir de 1000Usuarios y grupos de Unix local.
A partir de 10000Usuarios y grupos del dominio

Como puede ver en los rangos anteriores, no debe definir que los rangos "*" ni "DOMAIN" comiencen en 999 o un valor más bajo, ya que interferirían con los usuarios y grupos del sistema local. También debe dejar un espacio para cualquier usuario y grupo local de Unix, por lo que una buena opción podría ser iniciar los rangos de idmap config en 3000.

Debe decidir cuánto podría crecer "DOMAIN" y si tiene previsto tener dominios de confianza. A continuación, puede definir los rangos de idmap config de la siguiente manera:

Tabla 24.2: Rangos de ID
DominioRango
*3000-7999
DOMINIO10000-999999
DE CONFIANZA1000000-9999999

24.2.6.3 Asignación de la cuenta de administrador de dominio al usuario root local

Samba permite asignar cuentas de dominio a una cuenta local. Utilice esta función para ejecutar operaciones de archivo en el sistema de archivos del miembro del dominio como un usuario diferente que el de la cuenta que pidió la operación en el cliente.

Sugerencia
Sugerencia: asignación del administrador de dominio (opcional)

La asignación del administrador de dominio a la cuenta raíz local es opcional. Configure solo la asignación si el administrador de dominio necesita ser capaz de ejecutar operaciones de archivo en el miembro de dominio con permisos de usuario root. Tenga en cuenta que asignar el administrador a la cuenta raíz no permite entrar a la sesión en los miembros del dominio Unix como "Administrador".

Para asignar el administrador del dominio a la cuenta raíz local, siga estos pasos:

  1. Añada el siguiente parámetro a la sección [global] del archivo smb.conf:

    username map = /etc/samba/user.map
  2. Cree el archivo /etc/samba/user.map con el siguiente contenido:

    !root = DOMAIN\Administrator
Importante
Importante

Si utiliza el back-end de asignación de ID "ad", no defina el atributo uidNumber para la cuenta de administrador de dominio. Si la cuenta tiene el atributo definido, el valor sustituye el UID local "0" del usuario root y, por lo tanto, se produce un error en la asignación.

Para obtener más información, consulte el parámetro username map en la página man de smb.conf (man 5 smb.conf).

24.2.7 Unión al dominio de Active Directory

Para unir el host a Active Directory, ejecute:

cephuser@smb > net ads join -U administrator
Enter administrator's password: PASSWORD
Using short domain name -- DOMAIN
Joined EXAMPLE-HOST to dns domain 'DOMAIN.example.com'

24.2.8 Configuración del conmutador de servicio de nombres

Para hacer que los usuarios y grupos de dominio estén disponibles en el sistema local, debe habilitar la biblioteca del conmutador de servicio de nombres (NSS). Añada la entrada winbind al final de las siguientes bases de datos en el archivo /etc/nsswitch.conf:

passwd: files winbind
group:  files winbind
Importante
Importante: puntos que se deben tener en cuenta
  • Conserve la entrada files como el primer origen para ambas bases de datos. Esto permite al NSS buscar usuarios y grupos de dominio desde los archivos /etc/passwd y /etc/group antes de consultar el servicio winbind.

  • No añada la entrada winbind a la base de datos shadow del NSS. Esto puede causar que la utilidad wbinfo falle.

  • No utilice los mismos nombres de usuario en el archivo /etc/passwd local que en el dominio.

24.2.9 Inicio de los servicios

Tras los cambios de configuración, reinicie los servicios de Samba según se explica en la Sección 24.1.2.1, “Inicio de los servicios de Samba” o en la Sección 24.1.3.1, “Reinicio de recursos de Samba de alta disponibilidad”.

24.2.10 Prueba de la conectividad de winbindd

24.2.10.1 Envío de un ping de winbindd

Para verificar si el servicio winbindd puede conectarse a los controladores de dominio de AD o a un controlador de dominio primario, escriba:

cephuser@smb > wbinfo --ping-dc
checking the NETLOGON for domain[DOMAIN] dc connection to "DC.DOMAIN.EXAMPLE.COM" succeeded

Si se produce un error en el comando anterior, verifique que el servicio winbindd se está ejecutando y que el archivo smb.conf está configurado correctamente.

24.2.10.2 Búsqueda de usuarios y grupos de dominios

La biblioteca libnss_winbind permite buscar usuarios y grupos de dominio. Por ejemplo, para buscar el usuario de dominio "DOMAIN\demo01":

cephuser@smb > getent passwd DOMAIN\\demo01
DOMAIN\demo01:*:10000:10000:demo01:/home/demo01:/bin/bash

Para buscar el grupo de dominio "Domain Users":

cephuser@smb > getent group "DOMAIN\\Domain Users"
DOMAIN\domain users:x:10000:

24.2.10.3 Asignación de permisos de archivos a usuarios y grupos de dominio

La biblioteca del conmutador del servicio de nombres (NSS) permite usar cuentas de usuario de dominio y grupos en los comandos. Por ejemplo, para definir como propietario de un archivo al usuario de dominio "demo01" y como grupo de dominio a "Domain Users", escriba:

cephuser@smb > chown "DOMAIN\\demo01:DOMAIN\\domain users" file.txt