Apéndice D: Workarounds para Windows 11

El objetivo principal de este artículo es proporcionar un workaround que permita unir un equipo Windows 11 al controlador de dominio Zentyal 7.0, ya que actualmente no es posible debido al bug reportado en Samba, el cual puede ser encontrado aquí [1]

Advertencia

Finalmente Samba ha solucionado el bug en la versión actual como indica este [2] enlace. Por lo tanto, ya no es necesario aplicar ninguno de los workarounds propuestos, simplemente hay que tener el sistema actualizado.

Se disponen de dos workarounds, a elección por parte del administrador de sistemas que gestiona el servidor. Dichos workarounds son:

  1. Actualizar Samba a la versión 4.16 desde un repositorio de terceros.
  2. Configurar un servidor adicional Ubuntu Server 22.10 que actue como controlador de dominio adicional.
[1]Bug de Samba: https://bugzilla.samba.org/show_bug.cgi?id=15197
[2]Fix de Samba: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1993934

Workaround 1 - Actualización de Samba

Está opción actualizará Samba de la versión 4.13.16 a 4.16.6 desde un repositorio de terceros. Para obtener más información sobre el workaround, visitad este [3] enlace.

[3]Información del workaround: https://lists.samba.org/archive/samba/2022-October/242377.html

Consideraciones

A continuación algunas consideraciones que deberemos tener presentes antes de decidir si elegimos esta opción.

  1. El repositorio es de terceros, por lo que carecemos de control sobre el mismo, con los riesgos que eso entraña.
  2. Si bien es cierto que se han realizado múltiples pruebas sobre el módulo Controlador de Dominio y todos los que dependen de él para confirmar su estabilidad, siendo todas exitosas, no podemos garantizar al 100% la estabilidad del módulo y de los que dependan de él.

Recomendaciones

Antes de implementar este workaround, os recomendamos encarecidamente lo siguiente:

  1. Tener los paquetes del servidor actualizados.
  2. Que el servidor sea estable.
  3. Implementar el workaround en un entorno de testing, en caso de que disponga de el.
  4. Realizar una copia de seguridad del servidor como una snapshot en caso de que esté virtualizado antes de proceder a implementar el workaround.
  5. Realizar múltiples pruebas para confirmar la estabilidad de los módulos tras la implementación del workaround.

Actualización de Samba

Las acciones a realizar para implementar este workaround son las siguientes:

  1. Descargamos la clave GPG del repositorio:

    sudo gpg --keyserver keyring.debian.org --recv-key 6EE195D1886E8FFB810D4324457CE0A0804465C5
    sudo gpg --export 6EE195D1886E8FFB810D4324457CE0A0804465C5 | sudo tee /etc/apt/trusted.gpg.d/samba-mjt.key
    
  2. Creamos la configuración del repositorio, para ello, creamos el archivo /etc/apt/sources.list.d/samba.list con el siguiente contenido:

    ## Third party repository
    ## http://www.corpit.ru/mjt/packages/samba
    ## https://lists.samba.org/archive/samba/2022-October/242377.html
    
    deb [signed-by=/etc/apt/trusted.gpg.d/samba-mjt.key] http://www.corpit.ru/mjt/packages/samba ubuntu-20.04-focal/samba-4.16/
    deb-src [signed-by=/etc/apt/trusted.gpg.d/samba-mjt.key] http://www.corpit.ru/mjt/packages/samba ubuntu-20.04-focal/samba-4.16/
    
  3. Comprobamos que podemos obtener la información del nuevo repositorio:

    sudo apt update
    
  4. Incrementamos la prioridad del nuevo repositorio configurado, para ello, creamos el archivo /etc/apt/preferences.d/samba-repository con el siguiente contenido:

    Package: *
    Pin: release o=mjt
    Pin-Priority: 900
    
  5. Comprobamos que los paquetes de Samba están disponibles para actualizarse:

    sudo apt policy samba
    
       ## Ejemplo del resultado
       samba:
          Instalados: 2:4.13.17~dfsg-0ubuntu1.20.04.1
          Candidato:  2:4.16.6+dfsg-3~focal
          Tabla de versión:
             2:4.16.6+dfsg-3~focal 900
                900 http://www.corpit.ru/mjt/packages/samba ubuntu-20.04-focal/samba-4.16/ Packages
          *** 2:4.13.17~dfsg-0ubuntu1.20.04.1 500
                500 http://es.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
                500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
                100 /var/lib/dpkg/status
             2:4.11.6+dfsg-0ubuntu1 500
                500 http://es.archive.ubuntu.com/ubuntu focal/main amd64 Packages
    
  6. Desde la interfaz de administración de Zentyal, vamos a Gestión de software -> Actualizaciones del sistema, actualizamos la lista de paquetes y los actualizamos.

    Actualización de los paquetes de Samba

    Actualización de los paquetes de Samba

  7. Eliminamos el parámetro –debug-stderr del archivo /usr/share/perl5/EBox/LDAP.pm:

    sudo sed -i 's#--debug-stderr##g' /usr/share/perl5/EBox/Ldap.pm
    
  8. Reiniciamos el módulo del controlador de dominio:

    sudo zs samba restart
    
  9. Una vez actualizado Samba, comprobamos que los módulos estén en funcionamiento y que no hay errores en los siguientes archivos de log:

  • /var/log/zentyal/zentyal.log
  • /var/log/syslog
  1. Realizamos múltiples pruebas para confirmar la estabilidad del módulo de Controlador de dominio.
  2. Finalmente, tratamos de unir un Windows 11 al dominio para confirmar que el bug ha sido solucionado.

Workaround 2 - Servidor adicional

Está opción require de instalar un servidor adicional Ubuntu Server 22.10, configurarlo como controlador de dominio adicional y posteriormente adecuar la configuración de red de los equipos Windows 11.

Si bien es cierto que esta opción es más segura que la anterior, también es más compleja de implementar, además que requiere que el administrador de sistemas tenga conocimientos mínimos sobre de sistemas Linux y Ubuntu en particular para la implementación de esta opción.

Consideraciones

Tened presentes las siguientes consideraciones antes de realizar cualquier acción:

  • Todos los equipos Windows 11 deben conectarne únicamente a este servidor Ubuntu 22.10, de lo contrario se verán afectados por el bug.

  • La sincronización de las GPOs deben ser configuradas manualmente entre los controladores de dominio, aquí [4] tenemos el workaround disponible por Samba.

  • Un usuario del dominio en un Windows 11 puede acceder a su directorio personal o recursos compartidos, no obstante, tendrá que usar el FQDN del servidor Zentyal, a continuación dos ejemplos:

    ## Directorio personal
    \\zentyal.zentyal-domain.lan\maria
    
    ## Recurso compartido
    \\zentyal.zentyal-domain.lan\devops
    
  • Por defecto, los equipos del dominio que usen Ubuntu como un servidor DNS no podrán alcanzar internet, el motivo es que el cortafuegos no está configurado. Este [5] enlace explica como solucionar este comportamiento.

  • Se debe establecer la opción ACL en los discos duros del servidor Ubuntu 22.10. A continuación un ejemplo para el disco principal en /etc/fstab:

    /dev/disk/by-id/dm-uuid-LVM-WN6CO4cWWNIvzQffRXzBcyzSxkwcIiNJi3AaagcZkKMyz0SNwdIisJ65vFdIQFeT / ext4 defaults,usrquota,grpquota,acl 0 1
    
[4]Workaround para las GPOs: https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaround
[5]Ubuntu como router: https://kifarunix.com/configure-ubuntu-20-04-as-linux-router/

Recomendaciones

Nuestra recomendaciones para este entorno son:

  • Usar Zentyal para gestionar los objetos del dominio como usuarios, grupos o GPOs.
  • Usar el servidor Ubuntu 22.10 sólo para los equipos Windows 11.

Requisitos

A continuación se indican los requisitos que deben cumplirse antes de proceder a configurar el entorno:

  1. El módulo de controlador de dominio debe estar instalado y configurado en Zentyal.
  2. The dominio DNS debe tener los siguientes registros para el servidor Ubuntu:
  • Un registro de tipo A para el hostname de Ubuntu.
  • Un registro de tipo A para la IP de Ubuntu en el dominio.
  • Un registro de tipo NS para el dominio que apunte al hostname de Ubuntu.

Enlaces

A continuación los enlaces que hemos seguido para hacer este documento.

  • Como configurar Samba como un controlador de dominio adicional [6]
  • Requisitos de Samba [7]
  • Instalación de Samba [8]
  • Paquetes adicionales de Samba [9]
  • Configuración principal de Samba [10]
  • Instalación del DNS [11]
  • Configuración de la DLZ [12]
  • Instalación de un servicio de tiempo [13]
  • Verificación de los registros DNS especiales [14]
  • Systemd para Samba [15]
[6]Como configurar Samba como un controlador de dominio adicional: https://wiki.samba.org/index.php/Joining_a_Samba_DC_to_an_Existing_Active_Directory
[7]Requisitos de Samba: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller#Fresh_Installation
[8]Instalación de Samba: https://wiki.samba.org/index.php/Distribution-specific_Package_Installation#Debian.2FUbuntu
[9]Paquetes adicionales de Samba: https://github.com/zentyal/zentyal/blob/master/main/samba/debian/control#L16
[10]Configuración principal de Samba: https://github.com/zentyal/zentyal/blob/master/main/samba/stubs/smb.conf.mas#L21
[11]Instalación del DNS: https://wiki.samba.org/index.php/Setting_up_a_BIND_DNS_Server#Installing_.26_Configuring_BIND_on_Debian_based_distros
[12]Configuración de la DLZ: https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End
[13]Instalación de un servicio de tiempo: https://wiki.samba.org/index.php/Time_Synchronisation
[14]Verificación de los registros DNS especiales: https://wiki.samba.org/index.php/Verifying_and_Creating_a_DC_DNS_Record
[15]Systemd para Samba: https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd

Entorno

A continuación se muestra la información del entorno que hemos usado para redactar este documento.

  • Ubuntu hostname: adc
  • Ubuntu IP: 192.168.170.200
  • Zentyal hostname: zentyal
  • Zentyal IP: 192.168.170.1
  • Dominio: entyal-domain.lan
  • Administrador del dominio: admindc
  • Usuario de prueba para el dominio: maria

Configuración de Ubuntu 22.10

  1. Descargamos la ISO de Ubuntu Server 22.10 desde aquí [16] .

  2. Instalamos Ubuntu Server 22.10.

  3. Establecemos el nombre del servidor:

    sudo hostnamectl set-hostname adc.zentyal-domain.lan

  4. Modificamos el archivo de configuración /etc/hosts:

    127.0.0.1 localhost
    192.168.170.200 adc.zentyal-domain.lan adc
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
  5. Nos aseguramos de que Samba no esté instalado, además, también tendremos que revisar que el archivo de configuración de Kerberos no existe, aquí [17] tenemos más detalles:

    sudo dpkg -l | egrep -i samba
    sudo rm -f /etc/krb5.conf
    
  6. Instalamos los paquetes requeridos por Samba:

    sudo apt update
    sudo apt install \
      acl \
      attr \
      samba \
      samba-dsdb-modules \
      samba-vfs-modules \
      winbind \
      libpam-winbind \
      libnss-winbind \
      dnsutils \
      ldb-tools \
      libgssapi3-heimdal \
      libsasl2-modules-gssapi-heimdal \
      heimdal-clients
    

Las contestaciones a las preguntas son:

  • Default Kerberos version 5 realm: ZENTYAL-DOMAIN.LAN
  • Kerberos servers for your realm: adc.zentyal-domain.lan
  • Administrative server for your Kerberos realm: adc
  1. Instalamos Bind9 como servidor backend DNS como este [18] enlace explica:

    sudo apt install bind9 bind9utils
    
  2. Modificamos el archivo de configuración /etc/default/named para que el servicio DNS sólo escuche por IPv4:

    OPTIONS="-u bind -4"
    
  3. Modificamos el archivo de configuración global de Bind9 ubicado en /etc/bind/named.conf.options:

    // Managing acls
    acl internals {
      127.0.0.0/8;
      192.168.170.0/24;
    };
    
    options {
      directory "/var/cache/bind";
      version "Go Away 0.0.7";
    
      notify no;
      empty-zones-enable no;
      auth-nxdomain yes;
    
      forwarders {
        8.8.8.8;
        8.8.4.4;
      };
    
      // If you only use IPv4.
      listen-on-v6 { none; };
      // listen on these ipnumbers.
      listen-on port 53 {
        192.168.170.200;
        127.0.0.1;
      };
    
      // Added Per Debian buster Bind9.
      // Due to : resolutionr: info: resolutionr priming query complete messages in the logs.
      // See: https://gitlab.isc.org/isc-projects/bind9/commit/4a827494618e776a78b413d863bc23badd14ea42
      minimal-responses yes;
    
      //  Add any subnets or hosts you want to allow to use this DNS server
      allow-query { "internals";  };
      allow-query-cache { "internals"; };
    
      allow-transfer { none; };
    
      //  Add any subnets or hosts you want to allow to use recursive queries
      recursion yes;
      allow-recursion {
        "internals";
      };
    
      // https://wiki.samba.org/index.php/Dns-backend_bind
      // DNS dynamic updates via Kerberos (optional, but recommended)
      tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
    };
    
  4. Comprobamos la sintáxis del archivo de configuración:

    sudo named-checkconf

  5. Habilitamos el servicio y lo iniciamos:

    sudo systemctl enable named
    sudo systemctl start named
    
  6. Hacemos una consulta DNS a la zona localhost para confirmar que el servicio DNS está funcionando:

    ## Forward zone
    host -t A localhost 127.0.0.1
    
      ## An example of its output:
      Using domain server:
      Name: 127.0.0.1
      Address: 127.0.0.1#53
      Aliases:
    
      localhost has address 127.0.0.1
    
    ## Reverse zone
    host -t PTR 127.0.0.1 127.0.0.1
    
      ## An example of its output:
      Using domain server:
      Name: 127.0.0.1
      Address: 127.0.0.1#53
      Aliases:
    
      1.0.0.127.in-addr.arpa domain name pointer localhost.
    
  7. Añadimos la siguiente configuración al archivo /etc/bind/named.conf.local just al final:

    // Custom configuration for Samba DC
    //dlz "AD DNS Zone" {
    //  database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_18.so";
    //};
    
  8. Comprobamos la sintáxis de nuevo:

    sudo named-checkconf
    
  9. Modificamos el contenido del archivo de configuración /etc/krb5.conf como se indica a continuación:

    [libdefaults]
      default_realm = ZENTYAL-DOMAIN.LAN
      dns_lookup_kdc = true
      dns_lookup_realm = false
      rdns = no
    
  10. Verificamos que podemos obtener un ticket de Kerberos:

    ## Get the ticket
    sudo kinit admindc
    
    ## List the ticket
    sudo klist
    
      ## An example of its output:
      Credentials cache: FILE:/tmp/krb5cc_0
            Principal: admindc@ZENTYAL-DOMAIN.LAN
    
      Issued                Expires               Principal
      Oct 26 10:24:51 2022  Oct 26 20:24:51 2022  krbtgt/ZENTYAL-DOMAIN.LAN@ZENTYAL-DOMAIN.LAN
    
  11. Instalamos el servicio de tiempo NTP:

    sudo apt install ntp ntpdate
    
  12. Configuramos el servicio de NTP modificando el archivo de configuración /etc/ntp.conf:

    # Local clock. Note that is not the "localhost" address!
    server 127.127.1.0
    fudge  127.127.1.0 stratum 10
    
    # Where to retrieve the time from
    server zentyal.zentyal-domain.lan     iburst prefer
    server adc.zentyal-domain.lan     iburst
    
    driftfile /var/lib/ntp/ntp.drift
    logfile   /var/log/ntp
    
    # Access control
    # Default restriction: Disallow everything
    restrict default ignore
    
    # No restrictions for "localhost"
    restrict 127.0.0.1
    
    # Enable the time sources only to only provide time to this host
    restrict zentyal.zentyal-domain.lan   mask 255.255.255.255    nomodify notrap nopeer noquery
    restrict adc.zentyal-domain.lan   mask 255.255.255.255    nomodify notrap nopeer noquery
    
    ## NOTE: This parameter is only for virtual machines only
    tinker panic 0
    
  13. Reiniciamos el servicio NTP para aplicar los cambios:

    sudo systemctl restart ntp
    
  14. Establecemos la zona horaria:

    sudo timedatectl set-timezone Europe/Madrid
    
  15. En el archivo de configuración principal de Samba /etc/samba/smb.conf modificamos su contenido por el siguiente:

    [global]
       workgroup = zentyal-domain
       realm = ZENTYAL-DOMAIN.LAN
       netbios name = adc
       server string = Ubuntu 22
       server role = dc
       server role check:inhibit = yes
       server services = -dns
       server signing = auto
       dsdb:schema update allowed = yes
       ldap server require strong auth = no
       drs:max object sync = 1200
    
       idmap_ldb:use rfc2307 = yes
    
       winbind enum users = yes
       winbind enum groups = yes
       template shell = /usr/bin/bash
       template homedir = /home/%U
    
       rpc server dynamic port range = 49152-65535
    
       interfaces = lo,enp0s9
       bind interfaces only = yes
    
       map to guest = Bad User
    
       log level = 3
       log file = /var/log/samba/samba.log
       max log size = 100000
    
    [netlogon]
       path = /var/lib/samba/sysvol/zentyal-domain.lan/scripts
       browseable = no
       read only = yes
    
    [sysvol]
       path = /var/lib/samba/sysvol
       read only = no
    
  16. Antes de unir el servidor, nos aseguramos de que podemos resolver a Zentyal:

    ping zentyal.zentyal-domain.lan
    
  17. También, debemos asegurarnos que el cortafuegos de Zentyal permite a Ubuntu usar el servicio de Samba. A continuaciín un ejemplo:

Objecto en Zentyal para Ubuntu Server 22.10

Objecto en Zentyal para Ubuntu Server 22.10

Regla del cortafuegos en Zentyal para Ubuntu Server 22.10

Regla del cortafuegos en Zentyal para Ubuntu Server 22.10

  1. Ahora, podemos unir el servidor al dominio de Zentyal:

    sudo samba-tool domain \
            join \
            zentyal-domain.lan \
            DC \
            --username='admindc' \
            --dns-backend=BIND9_DLZ \
            --workgroup='zentyal-domain' \
            --server='192.168.170.1'
    
    ## The latest message of the join process in case everything was successful
    
    INFO 2022-10-27 10:59:06,310 pid:1046 /usr/lib/python3/dist-packages/samba/join.py #1544: Joined domain ZENTYAL-DOMAIN (SID S-1-5-21-3507753539-3088741907-912681098) as a DC
    

Advertencia

En caso de error, deberemos de leer detenidamente el mensaje de error.

  1. Después de unir el servidor Ubuntu Server 22.10, necesitaremos realizar las siguientes comprobaciones explicadas aquí [19]

    ## FQDN
    host -t A adc.zentyal-domain.lan
    
    ## An example of its output:
    adc.zentyal-domain.lan has address 192.168.170.200
    
    ## Get the objectGUID
    sudo ldbsearch -H /var/lib/samba/private/sam.ldb '(invocationId=*)' --cross-ncs objectguid
    
    ## An example of its output:
    # record 1
    dn: CN=NTDS Settings,CN=ZENTYAL,CN=Servers,CN=Default-First-Site-Name,  CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan
    objectGUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
    
    # record 2
    dn: CN=NTDS Settings,CN=ADC,CN=Servers,CN=Default-First-Site-Name,CN=Sites, CN=Configuration,DC=zentyal-domain,DC=lan
    objectGUID: 1593056e-3ded-469b-bcca-2358da389bb2
    
    # returned 2 records
    # 2 entries
    # 0 referrals
    
    ## Verify each objectGUID
    host -t CNAME 1593056e-3ded-469b-bcca-2358da389bb2._msdcs.zentyal-domain.lan
    
    ## An example of its output:
    1593056e-3ded-469b-bcca-2358da389bb2._msdcs.zentyal-domain.lan is an alias for ADC.zentyal-domain.lan.
    
    host -t CNAME f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607._msdcs.zentyal-domain.lan
    
    ## An example of its output:
    f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607._msdcs.zentyal-domain.lan is an alias for zentyal.zentyal-domain.lan.
    

Advertencia

El subdominio _msdcs es requerido en la verificación de objectGUID .

  1. Descomentamos las siguientes líneas del archivo de configuración /etc/bind/named.conf.local:

    // Custom configuration for Samba DC
    dlz "AD DNS Zone" {
       database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_18.so";
    };
    
  2. Reiniciamos el servicio de DNS:

    sudo systemctl restart named
    sudo systemctl status named
    
  3. Una vez que el servicio de DNS esté iniciado y funcionando, necesitamos deshabilitar ciertos servicios de Samba y activar el correcto:

    sudo systemctl stop smbd nmbd winbind
    sudo systemctl mask smbd nmbd winbind
    sudo systemctl disable smbd nmbd winbind
    
    sudo systemctl unmask samba-ad-dc
    sudo systemctl start samba-ad-dc
    sudo systemctl status samba-ad-dc
    
  4. Finalmente, es recomendable realizar ciertas comprobaciones respecto a la replicación para confirmar la estabilidad del nuevo controlador de dominio:

  • Obtenemos los usuarios y grupos del dominio:

    sudo samba-tool user list
    sudo samba-tool group list
    
  • Obtenemos el estado de la replicación tal y como este [20] enlace explica:

    sudo samba-tool drs showrepl
    
       ## An example of its output:
       ==== INBOUND NEIGHBORS ====
    
       DC=DomainDnsZones,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:35 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:35 2022 CEST
    
       CN=Schema,CN=Configuration,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:35 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:35 2022 CEST
    
       DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:35 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:35 2022 CEST
    
       CN=Configuration,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:35 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:35 2022 CEST
    
       DC=ForestDnsZones,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:35 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:35 2022 CEST
    
       ==== OUTBOUND NEIGHBORS ====
    
       CN=Schema,CN=Configuration,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ NTTIME(0) was successful
          0 consecutive failure(s).
          Last success @ NTTIME(0)
    
       DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ NTTIME(0) was successful
          0 consecutive failure(s).
          Last success @ NTTIME(0)
    
       CN=Configuration,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ NTTIME(0) was successful
          0 consecutive failure(s).
          Last success @ NTTIME(0)
    
       DC=ForestDnsZones,DC=zentyal-domain,DC=lan
       Default-First-Site-Name\ZENTYAL via RPC
          DSA object GUID: f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607
          Last attempt @ Thu Oct 27 11:07:25 2022 CEST was successful
          0 consecutive failure(s).
          Last success @ Thu Oct 27 11:07:25 2022 CEST
    
       ==== KCC CONNECTION OBJECTS ====
    
       Connection --
       Connection name: 79849241-81e9-4e1b-bad3-741533dcd6f1
       Enabled        : TRUE
       Server DNS name : zentyal.zentyal-domain.lan
       Server DN name  : CN=NTDS Settings,CN=ZENTYAL,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=zentyal-domain,DC=lan
          TransportType: RPC
          options: 0x00000001
       Warning: No NC replicated for Connection!
    
  • Creamos un objecto de prueba como un usuario de dominio en Zentyal, esperar un minuto y ver si fue replicado. A continuación un ejemplo de los registros cruciales del archivo de log /var/log/samba/samba.log relacionados con la sincronización desde Zentyal:

    ## Log file: /var/log/samba/samba.log
    [2022/10/27 11:12:44.473403,  3] ../../source4/dsdb/repl/drepl_service.c:207(_drepl_schedule_replication)
    _drepl_schedule_replication: forcing sync of partition (063be8a2-398b-498d-99d9-112be2bace60, DC=zentyal-domain,DC=lan, f57dbf3e-c50c-45ff-8c1b-9bfe1c0c7607._msdcs.zentyal-domain.lan)
    
    [2022/10/27 11:12:44.527349,  2] ../../source4/dsdb/repl/replicated_objects.c:1058(dsdb_replicated_objects_commit)
    Replicated 1 objects (0 linked attributes) for DC=zentyal-domain,DC=lan
    
  • Nos aseguramos que en el archivo de log /var/log/syslog no hay errores relacionados con Samba o el servicio de DNS en ambos servidores.

[16]ISO de Ubuntu Server 22.10: https://releases.ubuntu.com/22.10/ubuntu-22.10-live-server-amd64.iso
[17]Requisitos de Samba: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller#Only_Applicable_if_Samba_was_Previously_Installed
[18]Configuración del servicio DNS: https://wiki.samba.org/index.php/Setting_up_a_BIND_DNS_Server#Installing_.26_Configuring_BIND_on_Debian_based_distros
[19]Verificación de los registros DNS críticos: https://wiki.samba.org/index.php/Verifying_and_Creating_a_DC_DNS_Record
[20]Estado de la replicación: https://wiki.samba.org/index.php/Verifying_the_Directory_Replication_Statuses

Configuración de Windows 11

Esta sección mostrará un ejemplo de como unir un Windows 11 al dominio así de como acceder a los recursos compartidos.

  1. Lo primero y más importante es asegurarnos que la configuración de red es correcta.
Configuración de red de Windows 11

Configuración de red de Windows 11

Advertencia

Recordad que el servidor DNS principal debe ser Ubuntu Server 22.10, de esta forma el equipo podrá obtener el ticket de Kerberos, ya que de lo contrario fallará debido a la versión de Samba instalada en Zentyal, la cual no puede obtener un ticket de Kerberos debido al bug.

  1. Nos aseguramos de que el dominio sea resuelto por el servidor Ubuntu.
Resolución del dominio en Windows 11

Resolución del dominio en Windows 11

  1. Unicamos el equipo al dominio:
Unión de Windows 11

Unión de Windows 11

  1. Una vez que el equipo se haya unido al dominio, nos logearemos con un usuario del dominio. Recordad que el servidor DNS principal deberá ser Ubuntu.
Login en Windows 11

Login en Windows 11

  1. En caso de querer acceder a cualquier recurso compartido como el directorio personal del usuario o una carpeta compartida, tendremos que usar el FQDN del servidor Zentyal. A continuación un ejemplo:
Acceso a los recursos compartidos

Acceso a los recursos compartidos

Troubleshooting

A continuación se indican algunos enlaces que nos ayudarán en caso de indicancia en cualquiera de los pasos descritos en este documento:

  • Artículo principal de troubleshooting [21].
  • DNS [22].
  • DNS DLZ [23].
  • Objectos ObjectGUID [24].
[21]Artículo principal de troubleshooting: https://wiki.samba.org/index.php/Samba_AD_DC_Troubleshooting
[22]DNS: https://wiki.samba.org/index.php/Linux_and_Unix_DNS_Configuration
[23]DNS DLZ: https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End#Troubleshooting
[24]Objectos ObjectGUID: https://wiki.samba.org/index.php/Verifying_and_Creating_a_DC_DNS_Record