Unir manualmente una instancia de Amazon EC2 Linux a su Active Directory AWS administrado de Microsoft AD - AWS Directory Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Unir manualmente una instancia de Amazon EC2 Linux a su Active Directory AWS administrado de Microsoft AD

Además de las instancias de Amazon EC2 Windows, también puede unir determinadas instancias de Amazon EC2 Linux a su Active Directory AWS administrado de Microsoft AD. Son compatibles las siguientes distribuciones y versiones de instancias de Linux:

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 bits x86)

  • Amazon Linux 2023 AMI

  • Red Hat Enterprise Linux 8 (HVM) (x86 de 64 bits)

  • Ubuntu Server 18.04 LTS y Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSEServidor Linux Enterprise 15 SP1

nota

Puede que funcionen otras versiones y distribuciones de Linux, pero no se han probado.

Unir una instancia de Linux a su Microsoft AD AWS administrado

Antes de poder unir una instancia de Amazon Linux, CentOS, Red Hat o Ubuntu a su directorio, la instancia debe lanzarse primero como se especifica en Únase a su instancia de Linux sin problemas.

importante

Algunos de los siguientes procedimientos, si no se siguen correctamente, pueden hacer que la instancia resulte inaccesible o inservible. Por lo tanto, recomendamos encarecidamente que realice una copia de seguridad o una instantánea de la instancia antes de realizar estos procedimientos.

Para unir una instancia de Linux al directorio

Siga los pasos para su instancia de Linux específica mediante una de las siguientes pestañas:

Amazon Linux
  1. Conéctese a la instancia mediante cualquier SSH cliente.

  2. Configura la instancia de Linux para que use las DNS direcciones IP AWS Directory Service de los DNS servidores proporcionados. Puede hacerlo configurándola en el conjunto de DHCP opciones adjunto a la instancia VPC o configurándola manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un DNS servidor estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el DNS servidor persistente para tu distribución y versión de Linux en particular.

  3. Asegúrese de que la instancia de 64 bits de Amazon Linux esté actualizada.

    sudo yum -y update
  4. Instale los paquetes necesarios de Amazon Linux en la instancia de Linux.

    nota

    Algunos de estos paquetes pueden estar ya instalados.

    Al instalar los paquetes, es posible que aparezcan varias pantallas de configuración emergentes. Por lo general, puede dejar vacíos los campos de estas pantallas.

    Amazon Linux
    sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
    nota

    Para obtener ayuda para determinar la versión de Amazon Linux que está utilizando, consulte Identificación de imágenes de Amazon Linux en la Guía del EC2 usuario de Amazon para instancias de Linux.

  5. Una la instancia al directorio con el siguiente comando.

    sudo realm join -U join_account@EXAMPLE.COM example.com --verbose
    join_account@EXAMPLE.COM

    Una cuenta en example.com dominio que tiene privilegios de unión a dominios. Introduzca la contraseña de la cuenta cuando se le solicite. Para obtener más información sobre cómo delegar estos privilegios, consulte Delegación de privilegios de unión a directorios para AWS Managed Microsoft AD.

    example.com

    El DNS nombre completo de su directorio.

    ... * Successfully enrolled machine in realm
  6. Configure el SSH servicio para permitir la autenticación con contraseña.

    1. Abra el archivo /etc/ssh/sshd_config en un editor de texto.

      sudo vi /etc/ssh/sshd_config
    2. Establezca la opción PasswordAuthentication en yes.

      PasswordAuthentication yes
    3. Reinicie el servicio SSH.

      sudo systemctl restart sshd.service

      Otra opción:

      sudo service sshd restart
  7. Una vez reiniciada la instancia, conéctese a ella con cualquier SSH cliente y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:

    1. Abra el archivo sudoers con el siguiente comando:

      sudo visudo
    2. Agregue lo siguiente a la parte inferior del archivo sudoers y guárdelo.

      ## Add the "AWS Delegated Administrators" group from the example.com domain. %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL

      (En el ejemplo anterior, se utiliza“\<espacio>” para crear el carácter de espacio en Linux).

CentOS
  1. Conéctese a la instancia mediante cualquier SSH cliente.

  2. Configura la instancia de Linux para que use las DNS direcciones IP AWS Directory Service de los DNS servidores proporcionados. Puede hacerlo configurándola en el conjunto de DHCP opciones adjunto a la instancia VPC o configurándola manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un DNS servidor estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el DNS servidor persistente para tu distribución y versión de Linux en particular.

  3. Asegúrese de que la instancia de CentOS 7 esté actualizada.

    sudo yum -y update
  4. Instale los paquetes necesarios de CentOS 7 en la instancia de Linux.

    nota

    Algunos de estos paquetes pueden estar ya instalados.

    Al instalar los paquetes, es posible que aparezcan varias pantallas de configuración emergentes. Por lo general, puede dejar vacíos los campos de estas pantallas.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. Una la instancia al directorio con el siguiente comando.

    sudo realm join -U join_account@example.com example.com --verbose
    join_account@example.com

    Una cuenta en example.com dominio que tiene privilegios de unión a dominios. Introduzca la contraseña de la cuenta cuando se le solicite. Para obtener más información sobre cómo delegar estos privilegios, consulte Delegación de privilegios de unión a directorios para AWS Managed Microsoft AD.

    example.com

    El DNS nombre completo de su directorio.

    ... * Successfully enrolled machine in realm
  6. Configure el SSH servicio para permitir la autenticación con contraseña.

    1. Abra el archivo /etc/ssh/sshd_config en un editor de texto.

      sudo vi /etc/ssh/sshd_config
    2. Establezca la opción PasswordAuthentication en yes.

      PasswordAuthentication yes
    3. Reinicie el servicio SSH.

      sudo systemctl restart sshd.service

      Otra opción:

      sudo service sshd restart
  7. Una vez reiniciada la instancia, conéctese a ella con cualquier SSH cliente y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:

    1. Abra el archivo sudoers con el siguiente comando:

      sudo visudo
    2. Agregue lo siguiente a la parte inferior del archivo sudoers y guárdelo.

      ## Add the "AWS Delegated Administrators" group from the example.com domain. %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL

      (En el ejemplo anterior, se utiliza“\<espacio>” para crear el carácter de espacio en Linux).

Red Hat
  1. Conéctese a la instancia mediante cualquier SSH cliente.

  2. Configura la instancia de Linux para que use las DNS direcciones IP AWS Directory Service de los DNS servidores proporcionados. Puede hacerlo configurándola en el conjunto de DHCP opciones adjunto a la instancia VPC o configurándola manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un DNS servidor estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el DNS servidor persistente para tu distribución y versión de Linux en particular.

  3. Asegúrese de que la instancia de 64 bits de Red Hat esté actualizada.

    sudo yum -y update
  4. Instale los paquetes necesarios de Red Hat en la instancia de Linux.

    nota

    Algunos de estos paquetes pueden estar ya instalados.

    Al instalar los paquetes, es posible que aparezcan varias pantallas de configuración emergentes. Por lo general, puede dejar vacíos los campos de estas pantallas.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. Una la instancia al directorio con el siguiente comando.

    sudo realm join -v -U join_account example.com --install=/
    join_account

    El sAMAccountnombre de una cuenta en example.com dominio que tiene privilegios de unión a dominios. Introduzca la contraseña de la cuenta cuando se le solicite. Para obtener más información sobre cómo delegar estos privilegios, consulte Delegación de privilegios de unión a directorios para AWS Managed Microsoft AD.

    example.com

    El DNS nombre completo de su directorio.

    ... * Successfully enrolled machine in realm
  6. Configure el SSH servicio para permitir la autenticación con contraseña.

    1. Abra el archivo /etc/ssh/sshd_config en un editor de texto.

      sudo vi /etc/ssh/sshd_config
    2. Establezca la opción PasswordAuthentication en yes.

      PasswordAuthentication yes
    3. Reinicie el servicio SSH.

      sudo systemctl restart sshd.service

      Otra opción:

      sudo service sshd restart
  7. Una vez reiniciada la instancia, conéctese a ella con cualquier SSH cliente y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:

    1. Abra el archivo sudoers con el siguiente comando:

      sudo visudo
    2. Agregue lo siguiente a la parte inferior del archivo sudoers y guárdelo.

      ## Add the "AWS Delegated Administrators" group from the example.com domain. %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL

      (En el ejemplo anterior, se utiliza“\<espacio>” para crear el carácter de espacio en Linux).

SUSE
  1. Conéctese a la instancia mediante cualquier SSH cliente.

  2. Configura la instancia de Linux para que use las DNS direcciones IP AWS Directory Service de los DNS servidores proporcionados. Puede hacerlo configurándola en el conjunto de DHCP opciones adjunto a la instancia VPC o configurándola manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un DNS servidor estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el DNS servidor persistente para tu distribución y versión de Linux en particular.

  3. Asegúrate de que tu instancia de SUSE Linux 15 esté actualizada.

    1. Conecte el repositorio de paquetes.

      sudo SUSEConnect -p PackageHub/15.1/x86_64
    2. ActualizaciónSUSE.

      sudo zypper update -y
  4. Instale los paquetes de SUSE Linux 15 necesarios en su instancia de Linux.

    nota

    Algunos de estos paquetes pueden estar ya instalados.

    Al instalar los paquetes, es posible que aparezcan varias pantallas de configuración emergentes. Por lo general, puede dejar vacíos los campos de estas pantallas.

    sudo zypper -n install realmd adcli sssd sssd-tools sssd-ad samba-client krb5-client
  5. Una la instancia al directorio con el siguiente comando.

    sudo realm join -U join_account example.com --verbose
    join_account

    El sAMAccount nombre que aparece en example.com dominio que tiene privilegios de unión a dominios. Introduzca la contraseña de la cuenta cuando se le solicite. Para obtener más información sobre cómo delegar estos privilegios, consulte Delegación de privilegios de unión a directorios para AWS Managed Microsoft AD.

    example.com

    El DNS nombre completo de su directorio.

    … realm: Couldn't join realm: Enabling SSSD in nsswitch.conf and PAM failed.

    Tenga en cuenta que se esperan las dos devoluciones siguientes.

    ! Couldn't authenticate with keytab while discovering which salt to use: ! Enabling SSSD in nsswitch.conf and PAM failed.
  6. Actívela SSSDmanualmente. PAM

    sudo pam-config --add --sss
  7. Edite nsswitch.conf para habilitarlo en nsswitch.conf SSSD

    sudo vi /etc/nsswitch.conf
    passwd: compat sss group: compat sss shadow: compat sss
  8. Agregue la siguiente línea a /etc/pam.d/common-session para crear automáticamente un directorio de inicio en el inicio de sesión inicial

    sudo vi /etc/pam.d/common-session
    session optional pam_mkhomedir.so skel=/etc/skel umask=077
  9. Reinicie la instancia para completar el proceso unido al dominio.

    sudo reboot
  10. Vuelva a conectarse a la instancia mediante cualquier SSH cliente para comprobar que la unión al dominio se ha realizado correctamente y finalizar los pasos adicionales.

    1. Para confirmar que la instancia se ha inscrito en el dominio

      sudo realm list
      example.com type: kerberos realm-name: EXAMPLE.COM domain-name: example.com configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: adcli required-package: samba-client login-formats: %U@example.com login-policy: allow-realm-logins
    2. Para verificar el estado del daemon SSSD

      systemctl status sssd
      sssd.service - System Security Services Daemon Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-04-15 16:22:32 UTC; 3min 49s ago Main PID: 479 (sssd) Tasks: 4 CGroup: /system.slice/sssd.service ├─479 /usr/sbin/sssd -i --logger=files ├─505 /usr/lib/sssd/sssd_be --domain example.com --uid 0 --gid 0 --logger=files ├─548 /usr/lib/sssd/sssd_nss --uid 0 --gid 0 --logger=files └─549 /usr/lib/sssd/sssd_pam --uid 0 --gid 0 --logger=files
  11. Para permitir el acceso de un usuario a través de una SSH consola

    sudo realm permit join_account@example.com

    Para permitir el acceso de un grupo de dominios a través SSH de una consola

    sudo realm permit -g 'AWS Delegated Administrators'

    O para permitir el acceso de todos los usuarios

    sudo realm permit --all
  12. Configure el SSH servicio para permitir la autenticación con contraseña.

    1. Abra el archivo /etc/ssh/sshd_config en un editor de texto.

      sudo vi /etc/ssh/sshd_config
    2. Establezca la opción PasswordAuthentication en yes.

      PasswordAuthentication yes
    3. Reinicie el servicio SSH.

      sudo systemctl restart sshd.service

      Otra opción:

      sudo service sshd restart
  13. 13. Una vez reiniciada la instancia, conéctese a ella con cualquier SSH cliente y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:

    1. Abra el archivo sudoers con el siguiente comando:

      sudo visudo
    2. Agregue lo siguiente a la parte inferior del archivo sudoers y guárdelo.

      ## Add the "Domain Admins" group from the awsad.com domain. %AWS\ Delegated\ Administrators@example.com ALL=(ALL) NOPASSWD: ALL
Ubuntu
  1. Conéctese a la instancia mediante cualquier SSH cliente.

  2. Configura la instancia de Linux para que use las DNS direcciones IP AWS Directory Service de los DNS servidores proporcionados. Puede hacerlo configurándola en el conjunto de DHCP opciones adjunto a la instancia VPC o configurándola manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un DNS servidor estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el DNS servidor persistente para tu distribución y versión de Linux en particular.

  3. Asegúrese de que la instancia de 64 bits de Ubuntu esté actualizada.

    sudo apt-get update sudo apt-get -y upgrade
  4. Instale los paquetes necesarios de Ubuntu en la instancia de Linux.

    nota

    Algunos de estos paquetes pueden estar ya instalados.

    Al instalar los paquetes, es posible que aparezcan varias pantallas de configuración emergentes. Por lo general, puede dejar vacíos los campos de estas pantallas.

    sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
  5. Desactiva DNS la resolución inversa y establece el dominio predeterminado como el de tu dominioFQDN. Las instancias de Ubuntu deben poder resolverse de forma inversa para que el dominio DNS funcione. De lo contrario, debe deshabilitar la función inversa en /etc/krb5.conf de la siguiente DNS manera:

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. Una la instancia al directorio con el siguiente comando.

    sudo realm join -U join_account example.com --verbose
    join_account@example.com

    El nombre de una cuenta en sAMAccount example.com dominio que tiene privilegios de unión a dominios. Introduzca la contraseña de la cuenta cuando se le solicite. Para obtener más información sobre cómo delegar estos privilegios, consulte Delegación de privilegios de unión a directorios para AWS Managed Microsoft AD.

    example.com

    El DNS nombre completo de su directorio.

    ... * Successfully enrolled machine in realm
  7. Configure el SSH servicio para permitir la autenticación con contraseña.

    1. Abra el archivo /etc/ssh/sshd_config en un editor de texto.

      sudo vi /etc/ssh/sshd_config
    2. Establezca la opción PasswordAuthentication en yes.

      PasswordAuthentication yes
    3. Reinicie el servicio SSH.

      sudo systemctl restart sshd.service

      Otra opción:

      sudo service sshd restart
  8. Una vez reiniciada la instancia, conéctese a ella con cualquier SSH cliente y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:

    1. Abra el archivo sudoers con el siguiente comando:

      sudo visudo
    2. Agregue lo siguiente a la parte inferior del archivo sudoers y guárdelo.

      ## Add the "AWS Delegated Administrators" group from the example.com domain. %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL

      (En el ejemplo anterior, se utiliza“\<espacio>” para crear el carácter de espacio en Linux).

Restricción de acceso de inicio de sesión de cuenta

Como todas las cuentas están definidas en Active Directory, todos los usuarios del directorio pueden iniciar sesión en la instancia de forma predeterminada. Puede permitir que solo unos usuarios específicos inicien sesión en la instancia con ad_access_filter en sssd.conf. Por ejemplo:

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

Indica que solo debe permitirse el acceso a la instancia a los usuarios si son miembros de un grupo específico.

cn

El nombre común del grupo que debería tener acceso. En este ejemplo, el nombre del grupo es admins.

ou

Esta es la unidad organizativa en la que se encuentra el grupo anterior. En este ejemplo, la OU es Testou.

dc

Este es el componente de dominio de su dominio. En este ejemplo, example.

dc

Este es un componente de dominio adicional. En este ejemplo, com.

Debe agregar manualmente ad_access_filter a su /etc/sssd/sssd.conf.

Abra el archivo /etc/sssd/sssd.conf en un editor de texto.

sudo vi /etc/sssd/sssd.conf

Después de hacerlo, su sssd.conf podrá tener este aspecto:

[sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)

Para que se aplique la configuración, debe reiniciar el servicio sssd:

sudo systemctl restart sssd.service

También puede usar:

sudo service sssd restart

Como todas las cuentas están definidas en Active Directory, todos los usuarios del directorio pueden iniciar sesión en la instancia de forma predeterminada. Puede permitir que solo unos usuarios específicos inicien sesión en la instancia con ad_access_filter en sssd.conf.

Por ejemplo:

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

Indica que solo debe permitirse el acceso a la instancia a los usuarios si son miembros de un grupo específico.

cn

El nombre común del grupo que debería tener acceso. En este ejemplo, el nombre del grupo es admins.

ou

Esta es la unidad organizativa en la que se encuentra el grupo anterior. En este ejemplo, la OU es Testou.

dc

Este es el componente de dominio de su dominio. En este ejemplo, example.

dc

Este es un componente de dominio adicional. En este ejemplo, com.

Debe agregar manualmente ad_access_filter a su /etc/sssd/sssd.conf.

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

    sudo vi /etc/sssd/sssd.conf
  2. Después de hacerlo, su sssd.conf podrá tener este aspecto:

    [sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
  3. Para que se aplique la configuración, debe reiniciar el servicio sssd:

    sudo systemctl restart sssd.service

    También puede usar:

    sudo service sssd restart

Mapeo de ID

El mapeo de ID se puede realizar mediante dos métodos para mantener una experiencia unificada entre las identidades UNIX /Linux User Identifier (UID) e Group Identifier (GID) y Windows y Active Directory Security Identifier (SID).

  1. Centralizado

  2. Distribuido

nota

El mapeo centralizado de la identidad de los usuarios Active Directory requiere una interfaz de sistema operativo portátil oPOSIX.

Mapeo de identidad de usuario centralizado

Active Directoryu otro servicio del Protocolo Ligero de Acceso a LDAP Directorios () que proporcione UID y GID para los usuarios de Linux. EnActive Directory, estos identificadores se almacenan en los atributos de los usuarios:

  • UID- El nombre de usuario de Linux (String)

  • UIDNúmero: el número de identificación de usuario de Linux (entero)

  • GIDNúmero: el número de ID del grupo de Linux (entero)

Para configurar una instancia de Linux para que utilice el UID y GID desdeActive Directory, configúrelo ldap_id_mapping = False en el archivo sssd.conf. Antes de establecer este valor, compruebe que ha agregado aUID, UID número y GID número a los usuarios y grupos que contiene. Active Directory

Mapeo distribuido de identidades de usuarios

Si Active Directory no tiene la POSIX extensión o si decide no gestionar de forma centralizada el mapeo de identidades, Linux puede calcular los GID valores UID y. Linux utiliza el identificador de seguridad único del usuario (SID) para mantener la coherencia.

Para configurar el mapeo de ID de usuario distribuido, configúrelo ldap_id_mapping = True en el archivo sssd.conf.

Conéctese a la instancia de Linux

Cuando un usuario se conecta a la instancia mediante un SSH cliente, se le solicita su nombre de usuario. El usuario puede introducir el nombre de usuario en formato username@example.com o EXAMPLE\username. La respuesta tendrá un aspecto similar al siguiente, en función de la distribución de Linux que utilice:

Amazon Linux, Red Hat Enterprise Linux y CentOS Linux

login as: johndoe@example.com johndoe@example.com's password: Last login: Thu Jun 25 16:26:28 2015 from XX.XX.XX.XX

SUSELinux

SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit) As "root" (sudo or sudo -i) use the: - zypper command for package management - yast command for configuration management Management and Config: https://www.suse.com/suse-in-the-cloud-basics Documentation: https://www.suse.com/documentation/sles-15/ Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud Have a lot of fun...

Ubuntu Linux

login as: admin@example.com admin@example.com@10.24.34.0's password: Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1057-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Apr 18 22:03:35 UTC 2020 System load: 0.01 Processes: 102 Usage of /: 18.6% of 7.69GB Users logged in: 2 Memory usage: 16% IP address for eth0: 10.24.34.1 Swap usage: 0%