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
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Linux インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。
sudo yum -y install authconfig samba samba-client samba-winbind samba-winbind-clients
-
障害が発生した場合に元に戻せるよう、メインの smb.conf
ファイルのバックアップを作成します。
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
元の設定ファイル [/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
-
テキストエディタでホストファイル [/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 に登録できなかったことを意味します。
-
net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
PAM 設定ファイルを変更します。以下のコマンドを使用して、winbind 認証に必要なエントリを追加します。
sudo authconfig --enablewinbind --enablewinbindauth --enablemkhomedir --update
-
/etc/ssh/sshd_config
ファイルを編集して、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
-
信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。
## 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
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
SUSE Linux 15 インスタンスが最新であることを確認します。
-
パッケージリポジトリを接続します。
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
SUSE を更新します。
sudo zypper update -y
-
必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。
sudo zypper in -y samba samba-winbind
-
障害が発生した場合に元に戻せるよう、メインの smb.conf
ファイルのバックアップを作成します。
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
元の設定ファイル [/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
-
テキストエディタでホストファイル [/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 に登録できなかったことを意味します。
-
次のコマンドを使用して Linux インスタンスをディレクトリに結合します。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。
sudo pam-config --add --winbind --mkhomedir
-
Name Service Switch 設定ファイル [/etc/nsswitch.conf
] をテキストエディタで開きます。
vim /etc/nsswitch.conf
以下に示すように Winbind ディレクティブを追加します。
passwd: files winbind
shadow: files winbind
group: files winbind
-
/etc/ssh/sshd_config
ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vim /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。
## 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
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
AWS Directory Service が提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Linux インスタンスが最新であることを確認します。
sudo apt-get -y upgrade
-
必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。
sudo apt -y install samba winbind libnss-winbind libpam-winbind
-
障害が発生した場合に元に戻せるよう、メインの smb.conf
ファイルのバックアップを作成します。
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
元の設定ファイル [/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
-
テキストエディタでホストファイル [/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 に登録できなかったことを意味します。
-
net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。
sudo pam-auth-update --add --winbind --enable mkhomedir
-
Name Service Switch 設定ファイル [/etc/nsswitch.conf
] をテキストエディタで開きます。
vim /etc/nsswitch.conf
以下に示すように Winbind ディレクティブを追加します。
passwd: compat winbind
group: compat winbind
shadow: compat winbind
-
/etc/ssh/sshd_config
ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config
ファイルを開きます。
sudo vim /etc/ssh/sshd_config
-
PasswordAuthentication
設定を「yes
」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。
-
次のコマンドを使用して sudoers
ファイルを開きます。
sudo visudo
-
信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。
## 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%