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
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Amazon Linux - 64 bit インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な 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
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account@example.com
example.com
--verbose
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
次の内容を sudoers
ファイルの下部に追加して保存します。
## Add the "Domain Admins" group from the example.com
domain.
%Domain\ Admins@example.com
ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- CentOS
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
CentOS 7 インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な CentOS 7 パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account@example.com
example.com
--verbose
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
次の内容を sudoers
ファイルの下部に追加して保存します。
## Add the "Domain Admins" group from the example.com
domain.
%Domain\ Admins@example.com
ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- Red hat
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Red Hat - 64 bit インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な Red Hat パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -v -U join_account
example.com
--install=/
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
次の内容を sudoers
ファイルの下部に追加して保存します。
## Add the "Domain Admins" group from the example.com
domain.
%Domain\ Admins@example.com
ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- Ubuntu
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Ubuntu - 64 bit インスタンスが最新であることを確認します。
sudo apt-get update
sudo apt-get -y upgrade
-
必要な Ubuntu パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
-
逆引き DNS 解決を無効にし、デフォルトのレルムをドメインの FQDN に設定します。Ubuntu インスタンスは、レルムが稼働する前に DNS で逆引き解決可能になっている必要があります。なっていない場合、次のように /etc/krb5.conf で逆引き DNS を無効にする必要があります。
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
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
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
次の内容を 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 インスタンスで特定の設定ファイルを更新する必要があります。
/etc/sssd/sssd.conf ファイルで、krb5_use_kdcinfo を 「False 」に設定します。例:
[domain/example.com]
krb5_use_kdcinfo = False
設定を有効にするには、sssd サービスを再起動する必要があります。
$ sudo systemctl restart sssd.service
または、次のコマンドを使用できます。
$ sudo service sssd start
CentOS Linux インスタンスからユーザーを管理する場合は、次を含めるためにファイル /etc/smb.conf も編集する必要があります。
[global]
workgroup = EXAMPLE.COM
realm = EXAMPLE.COM
netbios name = EXAMPLE
security = ads
アカウントのログインアクセスの制限
デフォルトでは、すべてのアカウントは Active Directory で定義されているため、ディレクトリのすべてのユーザーがインスタンスにログインできます。sssd.conf の ad_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%