Errores de vinculación al dominio de la instancia de Amazon EC2 en Linux - AWS Directory Service

Errores de vinculación al dominio de la instancia de Amazon EC2 en Linux

La siguiente información puede ayudarlo a solucionar algunos mensajes de error que pueden aparecer al asociar una instancia de Amazon EC2 en Linux a su directorio de AWS Managed Microsoft AD.

Instancias de Linux que no pueden unirse a dominio o autenticar

Las instancias de Ubuntu 14.04, 16.04 y 18.04 deben ser resolubles de forma inversa en el DNS antes de que un ámbito pueda funcionar con el Microsoft Active Directory. De lo contrario, se podría encontrar con uno de estos dos escenarios:

Escenario 1: Instancias de Ubuntu que aún no se han unido a un dominio

Para las instancias de Ubuntu que intentan unirse a un dominio, el comando sudo realm join no puede proporcionar los permisos necesarios para unirse al dominio y podría aparecer el siguiente error:

! Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) adcli: couldn't connect to EXAMPLE.COM domain: Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) ! Insufficient permissions to join the domain realm: Couldn't join realm: Insufficient permissions to join the domain

Escenario 2: Instancias de Ubuntu que se han unido a un dominio

Para las instancias de Ubuntu que ya se han unido a un dominio de Microsoft Active Directory, el intento de establecer una conexión SSH con la instancia con la credenciales del dominio podría producir uno de los siguientes errores:

$ ssh admin@EJEMPLO.COM@198.51.100

no existe esa identidad: /Users/username/.ssh/id_ed25519: No existe ese archivo o directorio

Contraseña de admin@EJEMPLO.COM@198.51.100:

Permiso denegado. Inténtelo de nuevo más tarde.

Contraseña de admin@EJEMPLO.COM@198.51.100:

Si inicia sesión en la instancia con una clave pública y comprueba /var/log/auth.log, es posible que aparezcan los siguientes errores sobre la imposibilidad de encontrar al usuario:

May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0

May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0 user=admin@EXAMPLE.COM

May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): received for user admin@EXAMPLE.COM: 10 (User not known to the underlying authentication module)

May 12 01:02:14 ip-192-0-2-0 sshd[2251]: Failed password for invalid user admin@EXAMPLE.COM from 203.0.113.0 port 13344 ssh2

May 12 01:02:15 ip-192-0-2-0 sshd[2251]: Connection closed by 203.0.113.0 [preauth]

Sin embargo, el kinit del usuario sigue funcionando. Consulte este ejemplo:

ubuntu@ip-192-0-2-0:~$ kinit admin@EXAMPLE.COM Password for admin@EXAMPLE.COM: ubuntu@ip-192-0-2-0:~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: admin@EXAMPLE.COM

Solución

La solución que se recomienda actualmente para estos dos escenarios es desactivar DNS inverso en /etc/krb5.conf en la sección [libdefaults], tal y como se muestra a continuación:

[libdefaults] default_realm = EXAMPLE.COM rdns = false

Problema de autenticación de relación de confianza unidireccional con la unión de dominios fluida

Si ha establecido una relación de confianza de salida unidireccional entre el AWS Managed Microsoft AD y el Active Directory en las instalaciones, es posible que se produzca un problema de autenticación al intentar autenticarse en la instancia en Linux vinculada al dominio mediante las credenciales del Active Directory de confianza con Winbind.

Errores

Jul 31 00:00:00 EC2AMAZ-LSMWqT sshd[23832]: Failed password for user@corp.example.com from xxx.xxx.xxx.xxx port 18309 ssh2

Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): getting password (0x00000390)

Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): pam_get_item returned a password

Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_SYSTEM_ERR (4), NTSTATUS: **NT_STATUS_OBJECT_NAME_NOT_FOUND**, Error message was: The object name is not found.

Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): internal module error (retval = PAM_SYSTEM_ERR(4), user = 'CORP\user')

Solución

Para resolver este problema, tendrá que comentar o eliminar una directiva del archivo de configuración del módulo PAM (/etc/security/pam_winbind.conf) siguiendo estos pasos.

  1. Abra el archivo /etc/security/pam_winbind.conf en un editor de texto.

    sudo vim /etc/security/pam_winbind.conf
  2. Comente o elimine la siguiente directiva krb5_auth = yes.

    [global] cached_login = yes krb5_ccache_type = FILE #krb5_auth = yes
  3. Detenga el servicio Winbind y vuelva a iniciarlo.

    service winbind stop or systemctl stop winbind net cache flush service winbind start or systemctl start winbind