Aggiungere manualmente un'istanza Amazon EC2 Linux al tuo AWS Managed Microsoft AD Active Directory - AWS Directory Service

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:

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64-bit x86)

  • Amazon Linux 2023 AMI

  • Red Hat Enterprise Linux 8 (x86 a 64 bitHVM)

  • Ubuntu Server 18.04 LTS e Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSELinux Enterprise Server 15 SP1

Nota

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.

Importante

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
  1. Connect all'istanza utilizzando qualsiasi SSH client.

  2. Configura l'istanza Linux per utilizzare gli DNS indirizzi IP dei AWS Directory Service DNS server forniti. È possibile eseguire questa operazione configurandola nel set di DHCP opzioni allegato a VPC o impostandola manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un DNS server statico a un'EC2istanza Amazon privata nel AWS Knowledge Center per indicazioni su come impostare il DNS server persistente per la tua particolare distribuzione e versione di Linux.

  3. Assicurati che l'istanza di Amazon Linux a 64 bit sia aggiornata.

    sudo yum -y update
  4. Installa i pacchetti Amazon Linux necessari sull'istanza Linux.

    Nota

    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
    Nota

    Per assistenza nella determinazione della versione di Amazon Linux che stai utilizzando, consulta Identificazione delle immagini Amazon Linux nella Amazon EC2 User Guide for Linux Instances.

  5. Collega l'istanza alla directory tramite il comando seguente.

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

    Un account in example.com dominio con 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 DNS nome completo della tua directory.

    ... * Successfully enrolled machine in realm
  6. Imposta il SSH servizio per consentire l'autenticazione tramite password.

    1. Apri il file /etc/ssh/sshd_config in un editor di testo.

      sudo vi /etc/ssh/sshd_config
    2. Imposta PasswordAuthentication su yes.

      PasswordAuthentication yes
    3. Riavvia il servizio SSH.

      sudo systemctl restart sshd.service

      In alternativa:

      sudo service sshd restart
  7. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi SSH client e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:

    1. Apri il file sudoers tramite il comando seguente:

      sudo visudo
    2. 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
  1. Connect all'istanza utilizzando qualsiasi SSH client.

  2. Configura l'istanza Linux per utilizzare gli DNS indirizzi IP dei AWS Directory Service DNS server forniti. È possibile eseguire questa operazione configurandola nel set di DHCP opzioni allegato a VPC o impostandola manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un DNS server statico a un'EC2istanza Amazon privata nel AWS Knowledge Center per indicazioni su come impostare il DNS server persistente per la tua particolare distribuzione e versione di Linux.

  3. Assicurati che l'istanza di CentOS 7 sia aggiornata.

    sudo yum -y update
  4. Installa i pacchetti CentOS 7 necessari sull'istanza Linux.

    Nota

    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
  5. Collega l'istanza alla directory tramite il comando seguente.

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

    Un account in example.com dominio con 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 DNS nome completo della tua directory.

    ... * Successfully enrolled machine in realm
  6. Imposta il SSH servizio per consentire l'autenticazione tramite password.

    1. Apri il file /etc/ssh/sshd_config in un editor di testo.

      sudo vi /etc/ssh/sshd_config
    2. Imposta PasswordAuthentication su yes.

      PasswordAuthentication yes
    3. Riavvia il servizio SSH.

      sudo systemctl restart sshd.service

      In alternativa:

      sudo service sshd restart
  7. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi SSH client e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:

    1. Apri il file sudoers tramite il comando seguente:

      sudo visudo
    2. 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
  1. Connect all'istanza utilizzando qualsiasi SSH client.

  2. Configura l'istanza Linux per utilizzare gli DNS indirizzi IP dei AWS Directory Service DNS server forniti. È possibile eseguire questa operazione configurandola nel set di DHCP opzioni allegato a VPC o impostandola manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un DNS server statico a un'EC2istanza Amazon privata nel AWS Knowledge Center per indicazioni su come impostare il DNS server persistente per la tua particolare distribuzione e versione di Linux.

  3. Assicurati che l'istanza Red Hat - 64bit sia aggiornata.

    sudo yum -y update
  4. Installa i pacchetti Red Hat necessari nell'istanza Linux.

    Nota

    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
  5. Collega l'istanza alla directory tramite il comando seguente.

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

    Il sAMAccountnome di un account in example.com dominio con 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 DNS nome completo della tua directory.

    ... * Successfully enrolled machine in realm
  6. Imposta il SSH servizio per consentire l'autenticazione tramite password.

    1. Apri il file /etc/ssh/sshd_config in un editor di testo.

      sudo vi /etc/ssh/sshd_config
    2. Imposta PasswordAuthentication su yes.

      PasswordAuthentication yes
    3. Riavvia il servizio SSH.

      sudo systemctl restart sshd.service

      In alternativa:

      sudo service sshd restart
  7. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi SSH client e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:

    1. Apri il file sudoers tramite il comando seguente:

      sudo visudo
    2. 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
  1. Connect all'istanza utilizzando qualsiasi SSH client.

  2. Configura l'istanza Linux per utilizzare gli DNS indirizzi IP dei AWS Directory Service DNS server forniti. È possibile eseguire questa operazione configurandola nel set di DHCP opzioni allegato a VPC o impostandola manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un DNS server statico a un'EC2istanza Amazon privata nel AWS Knowledge Center per indicazioni sull'impostazione del DNS server persistente per la tua particolare distribuzione e versione di Linux.

  3. Assicurati che la tua istanza di SUSE Linux 15 sia aggiornata.

    1. Collega il repository dei pacchetti.

      sudo SUSEConnect -p PackageHub/15.1/x86_64
    2. AggiornaSUSE.

      sudo zypper update -y
  4. Installa i pacchetti SUSE Linux 15 richiesti sulla tua istanza Linux.

    Nota

    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
  5. Collega l'istanza alla directory tramite il comando seguente.

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

    Il sAMAccount nome nel example.com dominio con 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 DNS nome completo della tua directory.

    … 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.
  6. Abilita manualmente. SSSDPAM

    sudo pam-config --add --sss
  7. Modifica nsswitch.conf per abilitarlo in nsswitch.conf SSSD

    sudo vi /etc/nsswitch.conf
    passwd: compat sss group: compat sss shadow: compat sss
  8. 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
  9. Riavviare l'istanza per completare il processo di aggiunta al dominio.

    sudo reboot
  10. Riconnettiti all'istanza utilizzando qualsiasi SSH client per verificare che l'aggiunta al dominio sia stata completata correttamente e completare i passaggi aggiuntivi.

    1. 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
    2. Per verificare lo stato del demone 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. Per consentire a un utente di accedere tramite SSH una console

    sudo realm permit join_account@example.com

    Per consentire l'accesso a un gruppo di dominio tramite SSH una console

    sudo realm permit -g 'AWS Delegated Administrators'

    O per consentire a tutti gli utenti di accedere

    sudo realm permit --all
  12. Imposta il SSH servizio per consentire l'autenticazione tramite password.

    1. Apri il file /etc/ssh/sshd_config in un editor di testo.

      sudo vi /etc/ssh/sshd_config
    2. Imposta PasswordAuthentication su yes.

      PasswordAuthentication yes
    3. Riavvia il servizio SSH.

      sudo systemctl restart sshd.service

      In alternativa:

      sudo service sshd restart
  13. 13. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi SSH client e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:

    1. Aprire il file sudoers con il seguente comando:

      sudo visudo
    2. 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
  1. Connect all'istanza utilizzando qualsiasi SSH client.

  2. Configura l'istanza Linux per utilizzare gli DNS indirizzi IP dei AWS Directory Service DNS server forniti. È possibile eseguire questa operazione configurandola nel set di DHCP opzioni allegato a VPC o impostandola manualmente sull'istanza. Se desideri impostarlo manualmente, consulta Come posso assegnare un DNS server statico a un'EC2istanza Amazon privata nel AWS Knowledge Center per indicazioni su come impostare il DNS server persistente per la tua particolare distribuzione e versione di Linux.

  3. Assicurati che l'istanza Ubuntu - 64bit sia aggiornata.

    sudo apt-get update sudo apt-get -y upgrade
  4. Installa i pacchetti Ubuntu necessari nell'istanza Linux.

    Nota

    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
  5. Disattiva la DNS risoluzione inversa e imposta l'area di autenticazione predefinita su quella del tuo dominio. FQDN Le istanze di Ubuntu devono essere risolvibili al contrario prima che il realm funzioni. DNS Altrimenti, devi disabilitare reverse 5.conf come segue: DNS in /etc/krb

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. Collega l'istanza alla directory tramite il comando seguente.

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

    Il sAMAccountnome di un account in example.com dominio con 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 DNS nome completo della tua directory.

    ... * Successfully enrolled machine in realm
  7. Imposta il SSH servizio per consentire l'autenticazione tramite password.

    1. Apri il file /etc/ssh/sshd_config in un editor di testo.

      sudo vi /etc/ssh/sshd_config
    2. Imposta PasswordAuthentication su yes.

      PasswordAuthentication yes
    3. Riavvia il servizio SSH.

      sudo systemctl restart sshd.service

      In alternativa:

      sudo service sshd restart
  8. Dopo il riavvio dell'istanza, connettiti ad essa con qualsiasi SSH client e aggiungi il gruppo AWS Delegated Administrators all'elenco sudoers eseguendo i seguenti passaggi:

    1. Apri il file sudoers tramite il comando seguente:

      sudo visudo
    2. 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.

  1. Apri il file /etc/sssd/sssd.conf in un editor di testo.

    sudo vi /etc/sssd/sssd.conf
  2. 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)
  3. 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 () e Windows e GID Active Directory Identità Security Identifier (). SID

  1. Centralizzato

  2. Distribuito

Nota

Mappatura centralizzata delle identità degli utenti in Active Directory richiede un'interfaccia del sistema operativo portatile o. POSIX

Mappatura centralizzata dell'identità degli utenti

Active Directory o un altro servizio Lightweight Directory Access Protocol (LDAP) che fornisce UID e GID agli utenti Linux. In Active Directory, questi identificatori sono memorizzati negli attributi degli utenti:

  • UID- Il nome utente Linux (String)

  • UIDNumero: il numero ID utente Linux (numero intero)

  • GIDNumero: il numero ID del gruppo Linux (numero intero)

Per configurare un'istanza Linux per utilizzare UID e GID da Active Directory, impostato ldap_id_mapping = False nel file sssd.conf. Prima di impostare questo valore, verifica di aver aggiunto un UID numeroUID, e un numero agli utenti e GID ai gruppi in Active Directory.

Mappatura distribuita delle identità degli utenti

Se Active Directory non ha l'POSIXestensione o se scegli di non gestire centralmente la mappatura delle identità, Linux può calcolare i valori UID ANDGID. Linux utilizza il Security Identifier (SID) univoco dell'utente per mantenere la coerenza.

Per configurare la mappatura distribuita degli ID utente, impostatela ldap_id_mapping = True nel file sssd.conf.

Connect all'istanza Linux

Quando un utente si connette all'istanza utilizzando un SSH client, gli viene richiesto il 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

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%