

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 Linux de Amazon EC2 a su Active Directory administrado de AWS Microsoft AD mediante Winbind
<a name="join_linux_instance_winbind"></a>

Puede usar el servicio Winbind para vincular de forma manual las instancias de Amazon EC2 en Linux a un dominio de AWS Managed Microsoft AD Active Directory. Esto permite a los usuarios de Active Directory locales actuales utilizar sus credenciales de Active Directory al acceder a las instancias de Linux unidas 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)
+ AMI de Amazon Linux 2023
+ Red Hat Enterprise Linux 8 (HVM) (64 bits x86)
+ Ubuntu Server 18.04 LTS y Ubuntu Server 16.04 LTS
+ CentOS 7 x86-64
+ SUSE Linux Enterprise Server 15 SP1

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

## Unir una instancia de Linux a su Active Directory AWS administrado de Microsoft AD
<a name="join_linux_winbind_prereq"></a>

**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/CENTOS/REDHAT ]<a name="amazonlinux"></a>

1. Conéctese a la instancia con cualquier cliente SSH.

1. Configure la instancia de Linux para utilizar las direcciones IP de los servidores DNS proporcionados por Directory Service. Puede hacerlo configurándolo en el conjunto de opciones de DHCP asociado a la VPC o ajustándolo manualmente en la instancia. Si desea configurarlo manualmente, consulte [Cómo asignar un servidor DNS estático a una instancia privada de Amazon EC2](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/) en el AWS Knowledge Center para obtener orientación sobre cómo configurar el servidor DNS persistente para su distribución y versión de Linux en particular.

1. Asegúrese de que su instancia de Linux esté actualizada.

   ```
   sudo yum -y update
   ```

1. Instale los paquetes necesarios de Samba o Winbind en la instancia de Linux.

   ```
   sudo yum -y install authconfig samba samba-client samba-winbind samba-winbind-clients
   ```

1. Haga una copia de seguridad del archivo `smb.conf` principal para poder volver a él en caso de que se produzca un error: 

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. Abra el archivo de configuración original [`/etc/samba/smb.conf`] en un editor de texto.

   ```
   sudo vim /etc/samba/smb.conf
   ```

   Complete la información del entorno de dominio de Active Directory como se muestra en el siguiente ejemplo:

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. Abra el archivo de host [`/etc/hosts`] en un editor de texto.

   ```
   sudo vim /etc/hosts
   ```

   Agregue la dirección IP privada de su instancia de Linux de la siguiente manera:

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**nota**  
Si no especificó la dirección IP en el archivo `/etc/hosts`, es posible que reciba el siguiente error de DNS al unir la instancia al dominio:  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
Este error significa que la unión se hizo correctamente, pero el comando [net ads] no pudo registrar el registro DNS en DNS.

1. Una la instancia de Linux a Active Directory mediante la utilidad net. 

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account@example.com*  
Una cuenta del *example.com* dominio que tiene privilegios de unión a un dominio. 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 Microsoft AWS AD administrado](directory_join_privileges.md).  
*example.com*  
El nombre de DNS completo del directorio.

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. Modifique el archivo de configuración PAM. Utilice el siguiente comando para agregar las entradas necesarias para la autenticación de winbind:

   ```
   sudo authconfig --enablewinbind --enablewinbindauth  --enablemkhomedir   --update
   ```

1. Configure el servicio SSH para permitir autenticación de contraseñas al editar el archivo `/etc/ssh/sshd_config`.

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

      ```
      sudo vi /etc/ssh/sshd_config
      ```

   1. Establezca la opción `PasswordAuthentication` en `yes`.

      ```
      PasswordAuthentication yes
      ```

   1. Reinicie el servicio SSH.

      ```
      sudo systemctl restart sshd.service
      ```

      Otra opción:

      ```
      sudo service sshd restart
      ```

1. Una vez que la instancia se haya reiniciado, siga estos pasos para conectarse a ella con cualquier cliente SSH y agregue privilegios raíz para el grupo o usuario del dominio a la lista de sudoers:

   1. Abra el archivo `sudoers` con el siguiente comando:

      ```
      sudo visudo
      ```

   1. Agregue los grupos o usuarios necesarios de su dominio de confianza de la siguiente manera y, a continuación, guárdelos.

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------
#### [ SUSE ]<a name="suse"></a>

1. Conéctese a la instancia con cualquier cliente SSH.

1. Configure la instancia de Linux para utilizar las direcciones IP de los servidores DNS proporcionados por Directory Service. Puede hacerlo configurándolo en el conjunto de opciones de DHCP asociado a la VPC o ajustándolo manualmente en la instancia. Si desea configurarlo manualmente, consulte [Cómo asignar un servidor DNS estático a una instancia privada de Amazon EC2](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/) en el AWS Knowledge Center para obtener orientación sobre cómo configurar el servidor DNS persistente para su distribución y versión de Linux en particular.

1. Asegúrese de que su instancia de SUSE Linux 15 esté actualizada.

   1. Conecte el repositorio de paquetes.

      ```
      sudo SUSEConnect -p PackageHub/15.1/x86_64
      ```

   1. Actualice SUSE.

      ```
      sudo zypper update -y
      ```

1. Instale los paquetes necesarios de Samba o Winbind en la instancia de Linux.

   ```
   sudo zypper in -y samba samba-winbind
   ```

1. Haga una copia de seguridad del archivo `smb.conf` principal para poder volver a él en caso de que se produzca un error: 

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. Abra el archivo de configuración original [`/etc/samba/smb.conf`] en un editor de texto.

   ```
   sudo vim /etc/samba/smb.conf
   ```

   Complete la información del entorno de dominio de Active Directory como se muestra en el siguiente ejemplo:

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. Abra el archivo de host [`/etc/hosts`] en un editor de texto.

   ```
   sudo vim /etc/hosts
   ```

   Agregue la dirección IP privada de su instancia de Linux de la siguiente manera:

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**nota**  
Si no especificó la dirección IP en el archivo `/etc/hosts`, es posible que reciba el siguiente error de DNS al unir la instancia al dominio:  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
Este error significa que la unión se hizo correctamente, pero el comando [net ads] no pudo registrar el registro DNS en DNS.

1. Una la instancia de Linux al directorio con el siguiente comando. 

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account*  
El AMAccount nombre s del *example.com* dominio que tiene privilegios de unión a un dominio. 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 Microsoft AWS AD administrado](directory_join_privileges.md).  
*example.com*  
El nombre de DNS completo del directorio.

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. Modifique el archivo de configuración PAM. Utilice el siguiente comando para agregar las entradas necesarias para la autenticación de Winbind:

   ```
   sudo pam-config --add --winbind --mkhomedir
   ```

1. Abra el archivo de configuración de Name Service Switch [`/etc/nsswitch.conf`] en un editor de texto.

   ```
   vim /etc/nsswitch.conf
   ```

   Agregue la directiva de Winbind como se muestra a continuación.

   ```
   passwd: files winbind
   shadow: files winbind
   group:  files winbind
   ```

1. Configure el servicio SSH para permitir autenticación de contraseñas al editar el archivo `/etc/ssh/sshd_config`.

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

      ```
      sudo vim /etc/ssh/sshd_config
      ```

   1. Establezca la opción `PasswordAuthentication` en `yes`.

      ```
      PasswordAuthentication yes
      ```

   1. Reinicie el servicio SSH.

      ```
      sudo systemctl restart sshd.service
      ```

      Otra opción:

      ```
      sudo service sshd restart
      ```

1. Una vez que la instancia se haya reiniciado, siga estos pasos para conectarse a ella con cualquier cliente SSH y agregue privilegios raíz para el grupo o usuario del dominio a la lista de sudoers:

   1. Abra el archivo `sudoers` con el siguiente comando:

      ```
      sudo visudo
      ```

   1. Agregue los grupos o usuarios necesarios de su dominio de confianza de la siguiente manera y, a continuación, guárdelos.

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------
#### [ Ubuntu ]<a name="ubuntu"></a>

1. Conéctese a la instancia con cualquier cliente SSH.

1. Configure la instancia de Linux para utilizar las direcciones IP de los servidores DNS proporcionados por Directory Service. Puede hacerlo configurándolo en el conjunto de opciones de DHCP asociado a la VPC o ajustándolo manualmente en la instancia. Si desea configurarlo manualmente, consulte [Cómo asignar un servidor DNS estático a una instancia privada de Amazon EC2](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/) en el AWS Knowledge Center para obtener orientación sobre cómo configurar el servidor DNS persistente para su distribución y versión de Linux en particular.

1. Asegúrese de que su instancia de Linux esté actualizada.

   ```
   sudo apt-get -y upgrade
   ```

1. Instale los paquetes necesarios de Samba o Winbind en la instancia de Linux.

   ```
   sudo apt -y install samba winbind libnss-winbind libpam-winbind
   ```

1. Haga una copia de seguridad del archivo `smb.conf` principal para poder volver a él en caso de que se produzca un error. 

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. Abra el archivo de configuración original [`/etc/samba/smb.conf`] en un editor de texto.

   ```
   sudo vim /etc/samba/smb.conf
   ```

   Complete la información del entorno de dominio de Active Directory como se muestra en el siguiente ejemplo:

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. Abra el archivo de host [`/etc/hosts`] en un editor de texto.

   ```
   sudo vim /etc/hosts
   ```

   Agregue la dirección IP privada de su instancia de Linux de la siguiente manera:

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**nota**  
Si no especificó la dirección IP en el archivo `/etc/hosts`, es posible que reciba el siguiente error de DNS al unir la instancia al dominio:  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
Este error significa que la unión se hizo correctamente, pero el comando [net ads] no pudo registrar el registro DNS en DNS.

1. Una la instancia de Linux a Active Directory mediante la utilidad net. 

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account@example.com*  
Una cuenta del *example.com* dominio que tiene privilegios de unión a un dominio. 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 Microsoft AWS AD administrado](directory_join_privileges.md).  
*example.com*  
El nombre de DNS completo del directorio.

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. Modifique el archivo de configuración PAM. Utilice el siguiente comando para agregar las entradas necesarias para la autenticación de Winbind:

   ```
   sudo pam-auth-update --add --winbind --enable mkhomedir
   ```

1. Abra el archivo de configuración de Name Service Switch [`/etc/nsswitch.conf`] en un editor de texto.

   ```
   vim /etc/nsswitch.conf
   ```

   Agregue la directiva de Winbind como se muestra a continuación.

   ```
   passwd: compat winbind
   group:  compat winbind
   shadow: compat winbind
   ```

1. Configure el servicio SSH para permitir autenticación de contraseñas al editar el archivo `/etc/ssh/sshd_config`.

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

      ```
      sudo vim /etc/ssh/sshd_config
      ```

   1. Establezca la opción `PasswordAuthentication` en `yes`.

      ```
      PasswordAuthentication yes
      ```

   1. Reinicie el servicio SSH.

      ```
      sudo systemctl restart sshd.service
      ```

      Otra opción:

      ```
      sudo service sshd restart
      ```

1. Una vez que la instancia se haya reiniciado, siga estos pasos para conectarse a ella con cualquier cliente SSH y agregue privilegios raíz para el grupo o usuario del dominio a la lista de sudoers:

   1. Abra el archivo `sudoers` con el siguiente comando:

      ```
      sudo visudo
      ```

   1. Agregue los grupos o usuarios necesarios de su dominio de confianza de la siguiente manera y, a continuación, guárdelos.

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------

## Conexión a la instancia de Linux
<a name="linux_winbind_connect"></a>

Cuando un usuario se conecta a la instancia mediante un cliente SSH, se le solicita que indique su nombre de usuario. El usuario puede introducir el nombre de usuario en formato `username@example.com` o `EXAMPLE\username`. La respuesta será similar a la 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
```

**SUSE Linux**

```
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%
```