Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiungere manualmente un'istanza Amazon EC2 Linux al tuo AWS Managed Microsoft AD Active Directory
Oltre ad Amazon EC2 Windows istanze, puoi anche aggiungere determinate istanze Amazon EC2 Linux al tuo Managed AWS Microsoft AD Active Directory. Sono supportate le seguenti distribuzioni e versioni di istanze Linux:
-
AMI Amazon Linux 2018.03.0
-
Amazon Linux 2 (64-bit x86)
-
AMI Amazon Linux 2023
-
Red Hat Enterprise Linux 8 (HVM) (64-bit x86)
-
Ubuntu Server 18.04 LTS e Ubuntu Server 16.04 LTS
-
CentOS 7 x86-64
-
SUSE Linux Enterprise Server 15 SP1
Le altre distribuzioni e versioni di Linux potrebbero non funzionare, sebbene non siano state testate.
Unisci un'istanza Linux al tuo AWS Managed Microsoft AD
Prima di poter collegare un'istanza Amazon Linux, CentOS, Red Hat o Ubuntu alla tua directory, l'istanza deve essere avviata come specificato in Unisciti senza problemi alla tua istanza Linux.
Alcune delle procedure seguenti, se non eseguite correttamente, possono rendere l'istanza non raggiungibile o inutilizzabile. Pertanto, ti consigliamo vivamente di effettuare un backup o effettuare uno snapshot dell'istanza prima di eseguire queste procedure.
Per collegare un'istanza Linux alla tua directory
Segui i passaggi descritti per l'istanza Linux specifica utilizzando una delle seguenti schede:
- Amazon Linux
-
-
Connettiti all'istanza tramite qualsiasi client SSH.
-
Configura l'istanza Linux per utilizzare gli indirizzi IP dei server DNS dei server DNS AWS Directory Service forniti. A tale scopo, puoi configurare l'istanza nel set di opzioni DHCP collegato al VPC o effettuare la configurazione manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un server DNS statico a un' EC2 istanza Amazon privata nel AWS
Knowledge Center per indicazioni sull'impostazione del server DNS persistente per la tua particolare distribuzione e versione Linux.
-
Assicurati che l'istanza di Amazon Linux a 64 bit sia aggiornata.
sudo yum -y update
-
Installa i pacchetti Amazon Linux necessari sull'istanza Linux.
Alcuni di questi pacchetti potrebbero essere già installati.
Quando installi i pacchetti, potrebbero essere visualizzate diverse schermate popup di configurazione. In generale, puoi lasciare vuoti i campi di queste schermate.
- Amazon Linux
-
sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
-
Collega l'istanza alla directory tramite il comando seguente.
sudo realm join -U join_account@EXAMPLE.COM
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Imposta il servizio SSH per permettere l'autenticazione della password.
-
Apri il file /etc/ssh/sshd_config
in un editor di testo.
sudo vi /etc/ssh/sshd_config
-
Imposta PasswordAuthentication
su yes
.
PasswordAuthentication yes
-
Riavvia il servizio SSH.
sudo systemctl restart sshd.service
In alternativa:
sudo service sshd restart
-
Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi client SSH e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:
-
Apri il file sudoers
tramite il comando seguente:
sudo visudo
-
Aggiungi il codice seguente alla fine del file sudoers
e salva il file.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'esempio precedente utilizza "\<space>" per creare il carattere di spazio di Linux).
- CentOS
-
-
Connettiti all'istanza tramite qualsiasi client SSH.
-
Configurate l'istanza Linux per utilizzare gli indirizzi IP dei server DNS dei server DNS forniti. AWS Directory Service A tale scopo, puoi configurare l'istanza nel set di opzioni DHCP collegato al VPC o effettuare la configurazione manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un server DNS statico a un' EC2 istanza Amazon privata nel AWS
Knowledge Center per indicazioni sull'impostazione del server DNS persistente per la tua particolare distribuzione e versione Linux.
-
Assicurati che l'istanza di CentOS 7 sia aggiornata.
sudo yum -y update
-
Installa i pacchetti CentOS 7 necessari sull'istanza Linux.
Alcuni di questi pacchetti potrebbero essere già installati.
Quando installi i pacchetti, potrebbero essere visualizzate diverse schermate popup di configurazione. In generale, puoi lasciare vuoti i campi di queste schermate.
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
Collega l'istanza alla directory tramite il comando seguente.
sudo realm join -U join_account@example.com
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Imposta il servizio SSH per permettere l'autenticazione della password.
-
Apri il file /etc/ssh/sshd_config
in un editor di testo.
sudo vi /etc/ssh/sshd_config
-
Imposta PasswordAuthentication
su yes
.
PasswordAuthentication yes
-
Riavvia il servizio SSH.
sudo systemctl restart sshd.service
In alternativa:
sudo service sshd restart
-
Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi client SSH e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:
-
Apri il file sudoers
tramite il comando seguente:
sudo visudo
-
Aggiungi il codice seguente alla fine del file sudoers
e salva il file.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'esempio precedente utilizza "\<space>" per creare il carattere di spazio di Linux).
- Red Hat
-
-
Connettiti all'istanza tramite qualsiasi client SSH.
-
Configurate l'istanza Linux per utilizzare gli indirizzi IP dei server DNS dei server DNS forniti. AWS Directory Service A tale scopo, puoi configurare l'istanza nel set di opzioni DHCP collegato al VPC o effettuare la configurazione manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un server DNS statico a un' EC2 istanza Amazon privata nel AWS
Knowledge Center per indicazioni sull'impostazione del server DNS persistente per la tua particolare distribuzione e versione Linux.
-
Assicurati che l'istanza Red Hat - 64bit sia aggiornata.
sudo yum -y update
-
Installa i pacchetti Red Hat necessari nell'istanza Linux.
Alcuni di questi pacchetti potrebbero essere già installati.
Quando installi i pacchetti, potrebbero essere visualizzate diverse schermate popup di configurazione. In generale, puoi lasciare vuoti i campi di queste schermate.
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
Collega l'istanza alla directory tramite il comando seguente.
sudo realm join -v -U join_account
example.com
--install=/
...
* Successfully enrolled machine in realm
-
Imposta il servizio SSH per permettere l'autenticazione della password.
-
Apri il file /etc/ssh/sshd_config
in un editor di testo.
sudo vi /etc/ssh/sshd_config
-
Imposta PasswordAuthentication
su yes
.
PasswordAuthentication yes
-
Riavvia il servizio SSH.
sudo systemctl restart sshd.service
In alternativa:
sudo service sshd restart
-
Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi client SSH e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:
-
Apri il file sudoers
tramite il comando seguente:
sudo visudo
-
Aggiungi il codice seguente alla fine del file sudoers
e salva il file.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'esempio precedente utilizza "\<space>" per creare il carattere di spazio di Linux).
- SUSE
-
-
Connettiti all'istanza tramite qualsiasi client SSH.
-
Configura l'istanza Linux per utilizzare gli indirizzi IP del server DNS forniti dal AWS Directory Service. A tale scopo, puoi configurare l'istanza nel set di opzioni DHCP collegato al VPC o effettuare la configurazione manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un server DNS statico a un' EC2 istanza Amazon privata nel AWS Knowledge Center per indicazioni sull'impostazione del server DNS persistente per la tua particolare distribuzione e versione Linux.
-
Assicurati che l'istanza di SUSE Linux 15 sia aggiornata.
-
Collega il repository dei pacchetti.
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
Aggiorna SUSE.
sudo zypper update -y
-
Installa i pacchetti SUSE Linux 15 richiesti sulla propria istanza Linux.
Alcuni di questi pacchetti potrebbero essere già installati.
Quando installi i pacchetti, potrebbero essere visualizzate diverse schermate popup di configurazione. In generale, puoi lasciare vuoti i campi di queste schermate.
sudo zypper -n install realmd adcli sssd sssd-tools sssd-ad samba-client krb5-client
-
Collega l'istanza alla directory tramite il comando seguente.
sudo realm join -U join_account example.com --verbose
…
realm: Couldn't join realm: Enabling SSSD in nsswitch.conf and PAM failed.
Si noti che sono attesi entrambi i seguenti rendimenti.
! Couldn't authenticate with keytab while discovering which salt to use:
! Enabling SSSD in nsswitch.conf and PAM failed.
-
Abilitare manualmente SSSD in PAM.
sudo pam-config --add --sss
-
Modifica nsswitch.conf per abilitare SSSD in nsswitch.conf
sudo vi /etc/nsswitch.conf
passwd: compat sss
group: compat sss
shadow: compat sss
-
Aggiungi la seguente riga to /etc/pam.d/common -session per creare automaticamente una home directory al login iniziale
sudo vi /etc/pam.d/common-session
session optional pam_mkhomedir.so skel=/etc/skel umask=077
-
Riavviare l'istanza per completare il processo di aggiunta al dominio.
sudo reboot
-
Riconnettiti all'istanza utilizzando qualsiasi client SSH per verificare che l'aggiunta al dominio sia stata completata correttamente e finalizzare ulteriori passaggi.
-
Per confermare che l'istanza è stata registrata nel 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
-
Per verificare lo stato 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
-
Per consentire a un utente l'accesso tramite SSH e console
sudo realm permit join_account@example.com
Per consentire l'accesso a un gruppo di dominio tramite SSH e console
sudo realm permit -g 'AWS Delegated Administrators'
O per consentire a tutti gli utenti di accedere
sudo realm permit --all
-
Imposta il servizio SSH per permettere l'autenticazione della password.
-
Apri il file /etc/ssh/sshd_config
in un editor di testo.
sudo vi /etc/ssh/sshd_config
-
Imposta PasswordAuthentication
su yes
.
PasswordAuthentication yes
-
Riavvia il servizio SSH.
sudo systemctl restart sshd.service
In alternativa:
sudo service sshd restart
-
13. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi client SSH e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:
-
Aprire il file sudoers con il seguente comando:
sudo visudo
-
Aggiungi il codice seguente alla fine del file sudoers e salva il file.
## Add the "Domain Admins" group from the awsad.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL) NOPASSWD: ALL
- Ubuntu
-
-
Connettiti all'istanza tramite qualsiasi client SSH.
-
Configurate l'istanza Linux per utilizzare gli indirizzi IP dei server DNS dei server DNS forniti. AWS Directory Service A tale scopo, puoi configurare l'istanza nel set di opzioni DHCP collegato al VPC o effettuare la configurazione manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un server DNS statico a un' EC2 istanza Amazon privata nel AWS
Knowledge Center per indicazioni sull'impostazione del server DNS persistente per la tua particolare distribuzione e versione Linux.
-
Assicurati che l'istanza Ubuntu - 64bit sia aggiornata.
sudo apt-get update
sudo apt-get -y upgrade
-
Installa i pacchetti Ubuntu necessari nell'istanza Linux.
Alcuni di questi pacchetti potrebbero essere già installati.
Quando installi i pacchetti, potrebbero essere visualizzate diverse schermate popup di configurazione. In generale, puoi lasciare vuoti i campi di queste schermate.
sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
-
Disattivare la risoluzione DNS inversa e impostare l'area di autenticazione predefinita sul nome di dominio completo del dominio. Perché un realm possa funzionare, le istanze Ubuntu devono essere risolvibili in modo inverso nel DNS. Altrimenti, devi disabilitare reverse DNS in /etc/krb 5.conf come segue:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
Collega l'istanza alla directory tramite il comando seguente.
sudo realm join -U join_account example.com
--verbose
join_account@example.com
-
Il AMAccountnome s di un account nel example.com
dominio che dispone dei privilegi di accesso al dominio. Inserisci la password dell'account quando richiesta. Per ulteriori informazioni sulla delega di questi privilegi, consulta Delega dei privilegi di accesso alle directory per Managed AWS Microsoft AD.
example.com
-
Il nome completo del DNS della directory.
...
* Successfully enrolled machine in realm
-
Imposta il servizio SSH per permettere l'autenticazione della password.
-
Apri il file /etc/ssh/sshd_config
in un editor di testo.
sudo vi /etc/ssh/sshd_config
-
Imposta PasswordAuthentication
su yes
.
PasswordAuthentication yes
-
Riavvia il servizio SSH.
sudo systemctl restart sshd.service
In alternativa:
sudo service sshd restart
-
Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi client SSH e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:
-
Apri il file sudoers
tramite il comando seguente:
sudo visudo
-
Aggiungi il codice seguente alla fine del file sudoers
e salva il file.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'esempio precedente utilizza "\<space>" per creare il carattere di spazio di Linux).
Limitazioni di accesso all'account
Poiché tutti gli account vengono definiti in Active Directory, per impostazione predefinita tutti gli utenti nella directory possono accedere all'istanza. Puoi permettere solo a utenti specifici di accedere all'istanza con ad_access_filter in sssd.conf. Per esempio:
ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf
-
Indica che agli utenti è consentito solo l'accesso all'istanza se membri di un determinato gruppo.
cn
-
Il nome canonico del gruppo a cui è consentito l'accesso. In questo esempio, il nome del gruppo è. admins
ou
-
È l'unità organizzativa in cui si trova il gruppo di cui sopra. In questo esempio, l'unità organizzativa èTestou
.
dc
-
È il componente di dominio del tuo dominio. In questo esempio, example
.
dc
-
È un componente di dominio aggiuntivo. In questo esempio, com
.
È necessario aggiungere manualmente ad_access_filter a /etc/sssd/sssd.conf.
Apri il file /etc/sssd/sssd.conf in un editor di testo.
sudo vi /etc/sssd/sssd.conf
A questo punto, il tuo sssd.conf potrebbe avere questo aspetto:
[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)
Perché la configurazione diventi effettiva, devi riavviare il servizio sssd:
sudo systemctl restart sssd.service
In alternativa, puoi usare:
sudo service sssd restart
Poiché tutti gli account vengono definiti in Active Directory, per impostazione predefinita tutti gli utenti nella directory possono accedere all'istanza. Puoi permettere solo a utenti specifici di accedere all'istanza con ad_access_filter in sssd.conf.
Per esempio:
ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf
-
Indica che agli utenti è consentito solo l'accesso all'istanza se membri di un determinato gruppo.
cn
-
Il nome canonico del gruppo a cui è consentito l'accesso. In questo esempio, il nome del gruppo èadmins
.
ou
-
È l'unità organizzativa in cui si trova il gruppo di cui sopra. In questo esempio, l'unità organizzativa èTestou
.
dc
-
È il componente di dominio del tuo dominio. In questo esempio, example
.
dc
-
È un componente di dominio aggiuntivo. In questo esempio, com
.
È necessario aggiungere manualmente ad_access_filter a /etc/sssd/sssd.conf.
-
Apri il file /etc/sssd/sssd.conf in un editor di testo.
sudo vi /etc/sssd/sssd.conf
-
A questo punto, il tuo sssd.conf potrebbe avere questo aspetto:
[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)
-
Perché la configurazione diventi effettiva, devi riavviare il servizio sssd:
sudo systemctl restart sssd.service
In alternativa, puoi usare:
sudo service sssd restart
Mappatura degli ID
La mappatura degli ID può essere eseguita con due metodi per mantenere un'esperienza unificata tra UNIX/Linux User Identifier (UID) e Group Identifier (GID) e Windows e Active Directory Identità SID (Security Identifier). Questi metodi sono:
Mappatura centralizzata delle identità degli utenti in Active Directory richiede Portable Operating System Interface o POSIX.
Mappatura centralizzata dell'identità degli utenti
Active Directory o un altro servizio LDAP (Lightweight Directory Access Protocol) fornisce UID e GID agli utenti Linux. In Active Directory, questi identificatori vengono memorizzati negli attributi degli utenti se l'estensione POSIX è configurata:
UID - Il nome utente Linux (String)
Numero UID: il numero ID utente Linux (numero intero)
Numero GID: il numero ID del gruppo Linux (numero intero)
Per configurare un'istanza Linux in cui utilizzare l'UID e il GID di Active Directory, impostato ldap_id_mapping = False
nel file sssd.conf. Prima di impostare questo valore, verifica di aver aggiunto un UID, un numero UID e un numero GID agli utenti e ai gruppi in Active Directory.
Mappatura distribuita delle identità degli utenti
Se Active Directory non ha l'estensione POSIX o se scegli di non gestire centralmente la mappatura delle identità, Linux può calcolare i valori UID e GID. Linux utilizza l'identificatore di sicurezza (SID) univoco dell'utente per mantenere la coerenza.
Per configurare la mappatura distribuita degli ID utente, impostala ldap_id_mapping = True
nel file sssd.conf.
Problemi comuni
Se lo impostildap_id_mapping = False
, a volte l'avvio del servizio SSSD fallirà. Il motivo di questo errore è dovuto al fatto che le modifiche UIDs non sono supportate. Ti consigliamo di eliminare la cache SSSD ogni volta che passi dalla mappatura degli ID agli attributi POSIX o dagli attributi POSIX alla mappatura degli ID. Per ulteriori dettagli sulla mappatura degli ID e sui parametri ldap_id_mapping, consultate la pagina man sssd-ldap (8) nella riga di comando di Linux.
Connect all'istanza Linux
Quando un utente effettua la connessione all'istanza tramite un client SSH, gli verrà richiesto di inserire il proprio nome utente. L'utente può immettere il nome utente nei formati username@example.com
o EXAMPLE\username
. La risposta apparirà simile alla seguente, a seconda della distribuzione Linux utilizzata:
Amazon Linux, Red Hat Enterprise Linux e 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%