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 EC2 Windows instancias de Amazon, también puede unir determinadas instancias de Amazon EC2 Linux a su Microsoft AD AWS administradoActive Directory. 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
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 Cómo vincular de manera fluida una instancia de Linux.
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
-
-
Conéctese a la instancia con cualquier cliente SSH.
-
Configure la instancia de Linux para que utilice las direcciones IP del servidor DNS AWS Directory Service de los servidores DNS proporcionados. Puede hacerlo configurándolo en el conjunto de opciones de DHCP asociado a la VPC o ajustándolo manualmente en la instancia. Si quieres configurarlo manualmente, consulta Cómo asignar un servidor DNS estático a una EC2 instancia privada de Amazon en el AWS
Knowledge Center para obtener instrucciones sobre cómo configurar el servidor DNS persistente para tu distribución y versión de Linux en particular.
-
Asegúrese de que la instancia de 64 bits de Amazon Linux esté actualizada.
sudo yum -y update
-
Instale los paquetes necesarios de Amazon Linux en la instancia de Linux.
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
-
Una la instancia al directorio con el siguiente comando.
sudo realm join -U join_account@EXAMPLE.COM
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Configure el servicio SSH para permitir autenticación de contraseñas.
-
Abra el archivo /etc/ssh/sshd_config
en un editor de texto.
sudo vi /etc/ssh/sshd_config
-
Establezca la opción PasswordAuthentication
en yes
.
PasswordAuthentication yes
-
Reinicie el servicio SSH.
sudo systemctl restart sshd.service
Otra opción:
sudo service sshd restart
-
Una vez que la instancia se haya reiniciado, conéctese a ella con cualquier cliente SSH y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:
-
Abra el archivo sudoers
con el siguiente comando:
sudo visudo
-
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
-
-
Conéctese a la instancia con cualquier cliente SSH.
-
Configura la instancia de Linux para que utilice las direcciones IP del servidor DNS de los servidores DNS proporcionados. AWS 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 quieres configurarlo manualmente, consulta Cómo asignar un servidor DNS estático a una EC2 instancia privada de Amazon en el AWS
Knowledge Center para obtener instrucciones sobre cómo configurar el servidor DNS persistente para tu distribución y versión de Linux en particular.
-
Asegúrese de que la instancia de CentOS 7 esté actualizada.
sudo yum -y update
-
Instale los paquetes necesarios de CentOS 7 en la instancia de Linux.
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
-
Una la instancia al directorio con el siguiente comando.
sudo realm join -U join_account@example.com
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Configure el servicio SSH para permitir autenticación de contraseñas.
-
Abra el archivo /etc/ssh/sshd_config
en un editor de texto.
sudo vi /etc/ssh/sshd_config
-
Establezca la opción PasswordAuthentication
en yes
.
PasswordAuthentication yes
-
Reinicie el servicio SSH.
sudo systemctl restart sshd.service
Otra opción:
sudo service sshd restart
-
Una vez que la instancia se haya reiniciado, conéctese a ella con cualquier cliente SSH y añada el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:
-
Abra el archivo sudoers
con el siguiente comando:
sudo visudo
-
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
-
-
Conéctese a la instancia con cualquier cliente SSH.
-
Configura la instancia de Linux para que utilice las direcciones IP del servidor DNS de los servidores DNS proporcionados. AWS 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 quieres configurarlo manualmente, consulta Cómo asignar un servidor DNS estático a una EC2 instancia privada de Amazon en el AWS
Knowledge Center para obtener instrucciones sobre cómo configurar el servidor DNS persistente para tu distribución y versión de Linux en particular.
-
Asegúrese de que la instancia de 64 bits de Red Hat esté actualizada.
sudo yum -y update
-
Instale los paquetes necesarios de Red Hat en la instancia de Linux.
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
-
Una la instancia al directorio con el siguiente comando.
sudo realm join -v -U join_account
example.com
--install=/
...
* Successfully enrolled machine in realm
-
Configure el servicio SSH para permitir autenticación de contraseñas.
-
Abra el archivo /etc/ssh/sshd_config
en un editor de texto.
sudo vi /etc/ssh/sshd_config
-
Establezca la opción PasswordAuthentication
en yes
.
PasswordAuthentication yes
-
Reinicie el servicio SSH.
sudo systemctl restart sshd.service
Otra opción:
sudo service sshd restart
-
Una vez reiniciada la instancia, conéctate a ella con cualquier cliente SSH y añade el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:
-
Abra el archivo sudoers
con el siguiente comando:
sudo visudo
-
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
-
-
Conéctese a la instancia con cualquier cliente SSH.
-
Configure la instancia de Linux para utilizar las direcciones IP de los servidores DNS proporcionados por AWS 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 quieres configurarlo manualmente, consulta Cómo asignar un servidor DNS estático a una EC2 instancia privada de Amazon en el AWS Knowledge Center para obtener instrucciones sobre cómo configurar el servidor DNS persistente para tu distribución y versión de Linux en particular.
-
Asegúrese de que su instancia de SUSE Linux 15 esté actualizada.
-
Conecte el repositorio de paquetes.
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
Actualice SUSE.
sudo zypper update -y
-
Instale los paquetes SUSE Linux 15 necesarios en su instancia de Linux.
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
-
Una la instancia al directorio con el siguiente comando.
sudo realm join -U join_account example.com --verbose
…
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.
-
Habilite manualmente SSSD en PAM.
sudo pam-config --add --sss
-
Edite nsswitch.conf para habilitar SSSD en nsswitch.conf
sudo vi /etc/nsswitch.conf
passwd: compat sss
group: compat sss
shadow: compat sss
-
Agregue la siguiente línea a/etc/pam.d/common-session para crear automáticamente un directorio principal en el inicio de sesión inicial
sudo vi /etc/pam.d/common-session
session optional pam_mkhomedir.so skel=/etc/skel umask=077
-
Reinicie la instancia para completar el proceso unido al dominio.
sudo reboot
-
Vuelva a conectarse a la instancia mediante cualquier cliente SSH para verificar que la unión al dominio se ha completado correctamente y finalice los pasos adicionales.
-
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
-
Visualización del estado del daemon de 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
-
Para permitir el acceso de un usuario a través de SSH y la consola
sudo realm permit join_account@example.com
Para permitir el acceso de un grupo de dominio a través de SSH y la consola
sudo realm permit -g 'AWS Delegated Administrators'
O para permitir el acceso de todos los usuarios
sudo realm permit --all
-
Configure el servicio SSH para permitir autenticación de contraseñas.
-
Abra el archivo /etc/ssh/sshd_config
en un editor de texto.
sudo vi /etc/ssh/sshd_config
-
Establezca la opción PasswordAuthentication
en yes
.
PasswordAuthentication yes
-
Reinicie el servicio SSH.
sudo systemctl restart sshd.service
Otra opción:
sudo service sshd restart
-
13. Una vez reiniciada la instancia, conéctate a ella con cualquier cliente SSH y añade el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:
-
Abra el archivo sudoers con el siguiente comando:
sudo visudo
-
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
-
-
Conéctese a la instancia con cualquier cliente SSH.
-
Configura la instancia de Linux para que utilice las direcciones IP del servidor DNS de los servidores DNS proporcionados. AWS 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 quieres configurarlo manualmente, consulta Cómo asignar un servidor DNS estático a una EC2 instancia privada de Amazon en el AWS
Knowledge Center para obtener instrucciones sobre cómo configurar el servidor DNS persistente para tu distribución y versión de Linux en particular.
-
Asegúrese de que la instancia de 64 bits de Ubuntu esté actualizada.
sudo apt-get update
sudo apt-get -y upgrade
-
Instale los paquetes necesarios de Ubuntu en la instancia de Linux.
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
-
Deshabilite la resolución inversa de DNS y establezca el dominio predeterminado en el FQDN de su dominio. Las instancias de Ubuntu deben poder resolverse de forma inversa en el DNS para que el dominio funcione. De lo contrario, tiene que deshabilitar el DNS inverso en /etc/krb5.conf de la manera siguiente:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
Una la instancia al directorio con el siguiente comando.
sudo realm join -U join_account example.com
--verbose
...
* Successfully enrolled machine in realm
-
Configure el servicio SSH para permitir autenticación de contraseñas.
-
Abra el archivo /etc/ssh/sshd_config
en un editor de texto.
sudo vi /etc/ssh/sshd_config
-
Establezca la opción PasswordAuthentication
en yes
.
PasswordAuthentication yes
-
Reinicie el servicio SSH.
sudo systemctl restart sshd.service
Otra opción:
sudo service sshd restart
-
Una vez reiniciada la instancia, conéctate a ella con cualquier cliente SSH y añade el grupo de administradores AWS delegados a la lista de sudoers siguiendo estos pasos:
-
Abra el archivo sudoers
con el siguiente comando:
sudo visudo
-
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 esTestou
.
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 esadmins
.
ou
-
Esta es la unidad organizativa en la que se encuentra el grupo anterior. En este ejemplo, la OU esTestou
.
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
Asignación de ID
La asignación de ID se puede realizar mediante dos métodos para mantener una experiencia unificada entre las identidades del identificador de usuario (UID) y el identificador de grupo (GID) de UNIX/Linux y las identidades del identificador de seguridad (SID) de Active Directory. Estos métodos son:
La asignación centralizada de identidad de usuario en Active Directory requiere una interfaz de sistema operativo portátil o POSIX.
Asignación centralizada de identidad de usuario
Active Directory u otro servicio del protocolo ligero de acceso a directorios (LDAP) proporciona UID y GID a los usuarios de Linux. EnActive Directory, estos identificadores se almacenan en los atributos de los usuarios si la extensión POSIX está configurada:
UID: el nombre de usuario de Linux (cadena)
Número de UID: el número de ID de usuario de Linux (entero)
Número de GID: el número de ID del grupo de Linux (entero)
Para configurar una instancia de Linux para usar el UID y GID desde Active Directory, configure ldap_id_mapping = False
en el archivo sssd.conf. Antes de establecer este valor, compruebe que ha agregado un UID, un número UID y un número GID para los usuarios y grupos en Active Directory.
Asignación distribuida de identidades de usuarios
Si Active Directory no tiene la extensión POSIX o si decide no administrar de forma centralizada la asignación de identidades, Linux puede calcular los valores de UID y GID. Linux utiliza el identificador de seguridad (SID) único del usuario para mantener la consistencia.
Para configurar la asignación distribuida de ID de usuario, configure ldap_id_mapping = True
en el archivo sssd.conf.
Problemas comunes
Si lo configurasldap_id_mapping = False
, a veces se producirá un error al iniciar el servicio SSSD. El motivo de este error se debe a que UIDs no se admiten cambios. Te recomendamos que elimines la caché SSSD siempre que cambies de una asignación de ID a atributos POSIX o de atributos POSIX a una asignación de ID. Para obtener más información sobre la asignación de ID y los parámetros ldap_id_mapping, consulte la página de manual sssd-ldap (8) en la línea de comandos de Linux.
Conexión a la instancia de Linux
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%