Winbind を使用して、Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合します - AWS Directory Service

Winbind を使用して、Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合します

Winbind サービスを使用して、Amazon EC2Linux インスタンスを ‭AWS‬ Managed Microsoft AD ドメインに手動で結合できます。これにより、既存のオンプレミスの Active Directory ユーザーは、AWS Managed Microsoft AD Active Directory に結合している Linux インスタンスにアクセスする際に自分の Active Directory 認証情報を使用できます。以下の Linux インスタンスのディストリビューションおよびバージョンがサポートされています。

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 ビット x86)

  • Amazon Linux 2023 AMI

  • Red Hat Enterprise Linux 8 (HVM) (64 ビット x86)

  • Ubuntu Server 18.04 LTS および Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

注記

他の Linux ディストリビューションとバージョンも動作する可能性がありますが、まだテストされていません。

Linux インスタンスを AWS Managed Microsoft AD Active Directoryにシームレスに結合します

重要

次の手順は、正しく実行しないと、インスタンスに到達不可能になったり、インスタンスが使用できなくなったりする可能性があります。したがって、これらの手順を実行する前に、バックアップを作成するか、インスタンスのスナップショットを作成することを強くお勧めします。

Linux インスタンスをディレクトリに結合するには

個々の Linux インスタンスについて、次のいずれかのタブの手順に従います。

Amazon Linux/CENTOS/REDHAT
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. Linux インスタンスが最新であることを確認します。

    sudo yum -y update
  4. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

    sudo yum -y install authconfig samba samba-client samba-winbind samba-winbind-clients
  5. 障害が発生した場合に元に戻せるよう、メインの smb.conf ファイルのバックアップを作成します。

    sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
  6. 元の設定ファイル [/etc/samba/smb.conf] をテキストエディタで開きます。

    sudo vim /etc/samba/smb.conf

    次の例に示すように、Active Directory ドメイン環境情報を入力します。

    [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
  7. テキストエディタでホストファイル [/etc/hosts] を開きます。

    sudo vim /etc/hosts

    Linux インスタンスのプライベート IP アドレスを次のように追加します。

    10.x.x.x Linux_hostname.example.com Linux_hostname
    注記

    /etc/hosts ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。

    No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER

    このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

  8. net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。

    sudo net ads join -U join_account@example.com
    join_account@example.com

    ドメイン結合権限を持つ example.com ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    Enter join_account@example.com's password: Using short domain name -- example Joined 'IP-10-x-x-x' to dns domain 'example.com'
  9. PAM 設定ファイルを変更します。以下のコマンドを使用して、winbind 認証に必要なエントリを追加します。

    sudo authconfig --enablewinbind --enablewinbindauth --enablemkhomedir --update
  10. /etc/ssh/sshd_config ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  11. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ## 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

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

SUSE
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. SUSE Linux 15 インスタンスが最新であることを確認します。

    1. パッケージリポジトリを接続します。

      sudo SUSEConnect -p PackageHub/15.1/x86_64
    2. SUSE を更新します。

      sudo zypper update -y
  4. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

    sudo zypper in -y samba samba-winbind
  5. 障害が発生した場合に元に戻せるよう、メインの smb.conf ファイルのバックアップを作成します。

    sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
  6. 元の設定ファイル [/etc/samba/smb.conf] をテキストエディタで開きます。

    sudo vim /etc/samba/smb.conf

    次の例に示すように、Active Directory ドメイン環境情報を入力します。

    [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
  7. テキストエディタでホストファイル [/etc/hosts] を開きます。

    sudo vim /etc/hosts

    Linux インスタンスのプライベート IP アドレスを次のように追加します。

    10.x.x.x Linux_hostname.example.com Linux_hostname
    注記

    /etc/hosts ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。

    No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER

    このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

  8. 次のコマンドを使用して Linux インスタンスをディレクトリに結合します。

    sudo net ads join -U join_account@example.com
    join_account

    ドメイン結合権限を持つ example.com ドメインの sAMAccountName。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    Enter join_account@example.com's password: Using short domain name -- example Joined 'IP-10-x-x-x' to dns domain 'example.com'
  9. PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。

    sudo pam-config --add --winbind --mkhomedir
  10. Name Service Switch 設定ファイル [/etc/nsswitch.conf] をテキストエディタで開きます。

    vim /etc/nsswitch.conf

    以下に示すように Winbind ディレクティブを追加します。

    passwd: files winbind shadow: files winbind group: files winbind
  11. /etc/ssh/sshd_config ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vim /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  12. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ## 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

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

Ubuntu
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. Linux インスタンスが最新であることを確認します。

    sudo apt-get -y upgrade
  4. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

    sudo apt -y install samba winbind libnss-winbind libpam-winbind
  5. 障害が発生した場合に元に戻せるよう、メインの smb.conf ファイルのバックアップを作成します。

    sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
  6. 元の設定ファイル [/etc/samba/smb.conf] をテキストエディタで開きます。

    sudo vim /etc/samba/smb.conf

    次の例に示すように、Active Directory ドメイン環境情報を入力します。

    [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
  7. テキストエディタでホストファイル [/etc/hosts] を開きます。

    sudo vim /etc/hosts

    Linux インスタンスのプライベート IP アドレスを次のように追加します。

    10.x.x.x Linux_hostname.example.com Linux_hostname
    注記

    /etc/hosts ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。

    No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER

    このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

  8. net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。

    sudo net ads join -U join_account@example.com
    join_account@example.com

    ドメイン結合権限を持つ example.com ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    Enter join_account@example.com's password: Using short domain name -- example Joined 'IP-10-x-x-x' to dns domain 'example.com'
  9. PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。

    sudo pam-auth-update --add --winbind --enable mkhomedir
  10. Name Service Switch 設定ファイル [/etc/nsswitch.conf] をテキストエディタで開きます。

    vim /etc/nsswitch.conf

    以下に示すように Winbind ディレクティブを追加します。

    passwd: compat winbind group: compat winbind shadow: compat winbind
  11. /etc/ssh/sshd_config ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vim /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  12. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ## 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

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

Linux インスタンスへの接続

ユーザーの SSH クライアントを使用してインスタンスに接続し、ユーザー名の入力が求められます。ユーザーは、username@example.com または EXAMPLE\username のいずれかの形式でユーザー名を入力することができます。使用している Linux ディストリビューションに応じて、レスポンスは次のように表示されます。

Amazon Linux、Red Hat Enterprise Linux、および 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%