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.
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 #
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-winbind24.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.
- Asegúrese de que ya existe una instancia de CephFS en funcionamiento en el clúster. 
- 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 >- cephauth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring- cephuser@adm >- scpceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/- Sustituya SAMBA_NODE con el nombre del nodo de pasarela de Samba. 
- 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
- Sustituya el contenido por defecto del archivo - /etc/samba/smb.confpor 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_cephtambié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: 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 - oplocksse puede habilitar de forma segura.- Actualmente, - kernel share modesdebe 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: 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: - #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,- chowno- setfaclen la vía del recurso compartido. Por ejemplo, para permitir el acceso a todos los usuarios, ejecute:- #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:
#systemctl restart smb.service#systemctl restart nmb.service#systemctl restart winbind.service
Para garantizar que los servicios de Samba se inician al arrancar, habilítelos mediante:
#systemctl enable smb.service#systemctl enable nmb.service#systemctl enable winbind.service
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 #
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 llaman 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-SP1/single-html/SLE-HA-install-quick/.
- 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 >- cephauth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring- cephuser@adm >- scpceph.client.samba.gw.keyring- earth:/etc/ceph/- cephuser@adm >- scpceph.client.samba.gw.keyring- mars:/etc/ceph/
- 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-SP1/single-html/SLE-HA-guide/#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
- Prepare - earthy- marspara que alojen el servicio de Samba:- Asegúrese de que los paquetes siguientes están instalados antes de continuar: ctdb, tdb-tools y samba. - #- zypperin ctdb tdb-tools samba samba-ceph
- Asegúrese de que los servicios Samba y CTDB están detenidos e inhabilitados: - #systemctl disable ctdb- #systemctl disable smb- #systemctl disable nmb- #systemctl disable winbind- #systemctl stop ctdb- #systemctl stop smb- #systemctl stop nmb- #systemctl stop winbind
- Abra el puerto - 4379del cortafuegos en todos los nodos. Esto es necesario para que CTDB pueda comunicarse con los demás nodos del clúster.
 
- En - earth, cree los archivos de configuración de Samba. Más adelante, se sincronizarán automáticamente con- mars.- 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 
- 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/nodesy- /etc/samba/smb.confdeben coincidir en todos los nodos de pasarela Samba.
 
- Instale y cargue el clúster de SUSE Linux Enterprise High Availability. - Registre SUSE Linux Enterprise High Availability Extension en - earthy- mars:- root@earth #- SUSEConnect-r ACTIVATION_CODE -e E_MAIL- root@mars #- SUSEConnect-r ACTIVATION_CODE -e E_MAIL
- Instale ha-cluster-bootstrap en ambos nodos: - root@earth #- zypperin ha-cluster-bootstrap- root@mars #- zypperin ha-cluster-bootstrap
- Asigne la imagen RBD - sbd01en ambas pasarelas Samba mediante- rbdmap.service.- Edite - /etc/ceph/rbdmapy 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/sbd01debe estar disponible en ambas pasarelas Samba.
- Inicialice el clúster en - earthy deje que- marsse una a él.- root@earth #- ha-cluster-init- root@mars #- ha-cluster-join-c earthImportante- Durante el proceso de inicialización y unión al clúster, se le preguntará de forma interactiva si desea utilizar SBD. Confirme con - yy, a continuación, especifique- /dev/rbd/rbd/sbd01como vía al dispositivo de almacenamiento.
 
- Compruebe el estado del clúster. Debería observar que se han añadido dos nodos al clúster: - root@earth #- crmstatus 2 nodes configured 1 resource configured Online: [ earth mars ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started earth
- Ejecute los comandos siguientes en - earthpara configurar el recurso CTDB:- root@earth #- crmconfigure- crm(live)configure#- primitivectdb 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#- primitivesmb systemd:smb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"- crm(live)configure#- primitivenmb systemd:nmb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"- crm(live)configure#- primitivewinbind systemd:winbind \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"- crm(live)configure#- groupg-ctdb ctdb winbind nmb smb- crm(live)configure#- clonecl-ctdb g-ctdb meta interleave="true"- crm(live)configure#- commitSugerencia: primitivos- nmby- winbindopcionales- Si no necesita examinar el recurso compartido de red, no es necesario añadir el primitivo - nmb.- El primitivo - winbindsolo 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_helperde la opción de configuración- ctdb_recovery_locktiene 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. 
- Añada una dirección IP agrupada en clúster: - crm(live)configure#- primitiveip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \ unique_clone_address="true" \ op monitor interval="60" \ meta resource-stickiness="0"- crm(live)configure#- clonecl-ip ip \ meta interleave="true" clone-node-max="2" globally-unique="true"- crm(live)configure#- colocationcol-with-ctdb 0: cl-ip cl-ctdb- crm(live)configure#- ordero-with-ctdb 0: cl-ip cl-ctdb- crm(live)configure#- commit- Si - unique_clone_addressse 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-SP1/single-html/SLE-HA-guide/#cha-ha-lb.
- Compruebe el resultado: - root@earth #- crmstatus 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
- 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: - #- 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í:
#crmresource 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.
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.1cephuser@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.124.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
/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.
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.
    
      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:
    
| ID | Rango | 
|---|---|
| 0-999 | Usuarios y grupos del sistema local. | 
| A partir de 1000 | Usuarios y grupos de Unix local. | 
| A partir de 10000 | Usuarios 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:
    
| Dominio | Rango | 
|---|---|
| * | 3000-7999 | 
| DOMINIO | 10000-999999 | 
| DE CONFIANZA | 1000000-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.
      La asignación del administrador de dominio a la cuenta root 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 root no permite entrar a la sesión en los miembros del dominio Unix como "Administrador".
     
     Para asignar el administrador del dominio a la cuenta root local, siga estos pasos:
    
- Añada el siguiente parámetro a la sección - [global]del archivo- smb.conf:- username map = /etc/samba/user.map 
- Cree el archivo - /etc/samba/user.mapcon el siguiente contenido:- !root = DOMAIN\Administrator 
      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
- Conserve la entrada - filescomo el primer origen para ambas bases de datos. Esto permite al NSS buscar usuarios y grupos de dominio desde los archivos- /etc/passwdy- /etc/groupantes de consultar el servicio- winbind.
- No añada la entrada - winbinda la base de datos- shadowdel NSS. Esto puede causar que la utilidad- wbinfofalle.
- No utilice los mismos nombres de usuario en el archivo - /etc/passwdlocal 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/bashPara 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