Linux インスタンスを手動で結合する - AWS Directory Service

Linux インスタンスを手動で結合する

Amazon EC2 Windows インスタンスに加え、特定の Amazon EC2 Linux インスタンスを Simple AD ディレクトリに結合することもできます。以下の Linux インスタンスのディストリビューションおよびバージョンがサポートされています。

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 ビット x86)

  • 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 ディストリビューションとバージョンも動作する可能性がありますが、まだテストされていません。

ディレクトリへのインスタンスの結合

Amazon Linux、CentOS、Red Hat、または Ubuntu インスタンスをディレクトリに結合するときは、先に、Windows EC2 インスタンスをシームレスに結合する で指定したとおりにインスタンスを起動する必要があります。

重要

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

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

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

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

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

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

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

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    Amazon Linux 1
    sudo yum -y install sssd realmd krb5-workstation
    Amazon Linux 2
    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
    注記

    使用している Amazon Linux のバージョンを確認する方法については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の 「Identifying Amazon Linux images」(Amazon Linux イメージの特定) を参照してください。

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

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

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

    example.com

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

    ... * Successfully enrolled machine in realm
  6. 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
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

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

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

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

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

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

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

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

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 次のコマンドを使用してディレクトリにインスタンスを結合します。

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

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

    example.com

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

    ... * Successfully enrolled machine in realm
  6. 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
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

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

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

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

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

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

  3. Red Hat - 64 bit インスタンスが最新であることを確認します。

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

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 次のコマンドを使用してディレクトリにインスタンスを結合します。

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

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

    example.com

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

    ... * Successfully enrolled machine in realm
  6. 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
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

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

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com 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. Ubuntu - 64 bit インスタンスが最新であることを確認します。

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

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
  5. 逆引き DNS 解決を無効にし、デフォルトのレルムをドメインの FQDN に設定します。Ubuntu インスタンスは、レルムが稼働する前に DNS で逆引き解決可能になっている必要があります。なっていない場合、次のように /etc/krb5.conf で逆引き DNS を無効にする必要があります。

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. 次のコマンドを使用してディレクトリにインスタンスを結合します。

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

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

    example.com

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

    ... * Successfully enrolled machine in realm
  7. 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
  8. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

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

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

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

注記

Simple AD の使用において、「最初のログイン時にユーザーにパスワードの変更を強制する」オプションを指定して Linux インスタンスのユーザーアカウントを作成する場合、そのユーザーは kpasswd を使用して初期のパスワード変更ができません。初めてパスワードを変更する場合、ドメイン管理者が Active Directory 管理ツールを使用してユーザーのパスワードを更新する必要があります。

Linux インスタンスからアカウントを管理する

Linux インスタンスから Simple AD のアカウントを管理するには、次に示すように、Linux インスタンスで特定の設定ファイルを更新する必要があります。

  1. /etc/sssd/sssd.conf ファイルで、krb5_use_kdcinfo を 「False 」に設定します。例:

    [domain/example.com] krb5_use_kdcinfo = False
  2. 設定を有効にするには、sssd サービスを再起動する必要があります。

    $ sudo systemctl restart sssd.service

    または、次のコマンドを使用できます。

    $ sudo service sssd start
  3. CentOS Linux インスタンスからユーザーを管理する場合は、次を含めるためにファイル /etc/smb.conf も編集する必要があります。

    [global] workgroup = EXAMPLE.COM realm = EXAMPLE.COM netbios name = EXAMPLE security = ads

アカウントのログインアクセスの制限

デフォルトでは、すべてのアカウントは Active Directory で定義されているため、ディレクトリのすべてのユーザーがインスタンスにログインできます。sssd.confad_access_filter を使用して、特定のユーザーのみにインスタンスへのログインを許可できます。例:

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

ユーザーは、特定のグループのメンバーである場合にのみ、インスタンスへのアクセスを許可されることを示しています。

cn

アクセス権限のあるグループの共通名。この例では、グループ名は、admins です。

ou

これは、上記のグループが配置される組織単位です。この例では、OU は、Testou です。

dc

これは、ドメインのドメインコンポーネントです。この例では、example です。

dc

これは、追加のドメインコンポーネントです。この例では、com です。

ad_access_filter を手動で /etc/sssd/sssd.conf に追加する必要があります。

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

sudo vi /etc/sssd/sssd.conf

この操作を行った後、sssd.conf は次のようになります。

[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)

設定を有効にするには、sssd サービスを次のように再起動する必要があります。

sudo systemctl restart sssd.service

または、次のコマンドを使用できます。

sudo service sssd restart

インスタンスに接続する

ユーザーが 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%