Amazon EC2 Linux インスタンスドメインの結合エラー
以下は、Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD ディレクトリに結合する時に表示されることがあるエラーメッセージのトラブルシューティングに役立ちます。
Linux インスタンスはドメインに結合したり、認証を行ったりすることができません
Ubuntu の領域を Microsoft Active Directory で使用する際は、その Ubuntu の (14.04、16.04、および 18.04 の) インスタンスでは、DNS での逆引き解決ができる必要があります。それ以外の場合は、以下の 2 つのシナリオのいずれかが発生する可能性があります。
シナリオ 1: まだ領域に結合されていない Ubuntu インスタンス
領域への結合を試行中の Ubuntu インスタンスの場合、ドメインに結合するために必要なアクセス許可が sudo realm
join
コマンドにより提供されず、次のようなエラーが表示されることがあります。
! Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) adcli: couldn't connect to EXAMPLE.COM domain: Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) ! (! Active Directory への認証に失敗しました: SASL(-1): 一般エラー: GSSAPI エラー: 無効な名前が入力されました (成功) adcli: EXAMPLE.COM ドメインに接続できませんでした: Active Directory への認証に失敗しました: SASL(-1): 一般エラー: GSSAPI エラー: 無効な名前が入力されました (成功) !) Insufficient permissions to join the domain realm: Couldn't join realm: Insufficient permissions to join the domain
(ドメイン領域に結合するための権限が不十分です: 領域に結合できませんでした: ドメインに結合するための権限が不十分です)
シナリオ 2: 領域に結合済みの Ubuntu インスタンス
既に Microsoft Active Directory ドメインに結合されている Ubuntu インスタンスの場合、ドメイン認証情報を使用してインスタンスに SSH 接続を試みると、次のエラーで失敗することがあります。
$ ssh admin@EXAMPLE.COM@198.51.100
no such identity: /Users/username/.ssh/id_ed25519: No such file or directory
admin@EXAMPLE.COM@198.51.100's password:
(admin@EXAMPLE.COM@198.51.100 のパスワード:)
Permission denied, please try again.
admin@EXAMPLE.COM@198.51.100's password:
(admin@EXAMPLE.COM@198.51.100 のパスワード:)
公開キーを使用してインスタンスにログインし /var/log/auth.log
を参照すると、次のような、ユーザーが見つからないことを知らせるエラーが表示されることがあります。
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0 user=admin@EXAMPLE.COM
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): received for user admin@EXAMPLE.COM: 10 (User not known to the underlying authentication module)
May 12 01:02:14 ip-192-0-2-0 sshd[2251]: Failed password for invalid user admin@EXAMPLE.COM from 203.0.113.0 port 13344 ssh2
May 12 01:02:15 ip-192-0-2-0 sshd[2251]: Connection closed by 203.0.113.0 [preauth]
ただし、このユーザーの kinit
は引き続き使用可能です。以下に例を示します。
ubuntu@ip-192-0-2-0:~$ kinit admin@EXAMPLE.COM Password for admin@EXAMPLE.COM: ubuntu@ip-192-0-2-0:~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: admin@EXAMPLE.COM
回避方法
これらの両方のシナリオで現在推奨されている回避策は、次に示すように [libdefaults] セクションの /etc/krb5.conf
でリバース DNS を無効にすることです。
[libdefaults] default_realm = EXAMPLE.COM rdns = false
シームレスなドメイン結合での一方向の信頼認証の問題
AWS Managed Microsoft Active Directory とオンプレミス AD との間で一方向の送信の信頼が確立されている場合、Winbind で信頼された Active Directory 認証情報を使用して、ドメインに結合している Linux インスタンスに対し認証を試みた際に、認証に失敗することがあります。
エラー
Jul 31 00:00:00 EC2AMAZ-LSMWqT sshd[23832]: Failed password for user@corp.example.com from xxx.xxx.xxx.xxx port 18309 ssh2
(7月31日 00:00:00 EC2AMAZ-LSMWqT sshd[23832]: xxx.xxx.xxx.xxx ポート 18309 ssh2 からの user@corp.example.com のパスワードが失敗しました)
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): getting password (0x00000390)
(7月31日 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): パスワードの取得 (0x00000390))
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): pam_get_item returned a password
(7 月31日 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): pam_get_item がパスワードを返しました)
7月31日 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): リクエスト wbcLogonUser が失敗しました: WBC_ERR_AUTH_ERROR: PAM エラー: PAM_SYSTEM_ERR (4)、NTSTATUS: **NT_STATUS_OBJECT_NAME_NOT_FOUND**、エラーメッセージ: オブジェクト名が見つかりません。
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): internal module error (retval = PAM_SYSTEM_ERR(4), user = 'CORP\user')
(7月31日 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): 内部モジュールエラー (retval = PAM_SYSTEM_ERR (4)、ユーザー = 'CORP\user'))
回避方法
この問題を解決するには、次の手順に従って、PAM モジュール設定ファイル (/etc/security/pam_winbind.conf
) 内のディレクティブをコメントアウトするか、それを削除する必要があります。
-
テキストエディタで
/etc/security/pam_winbind.conf
ファイルを開きます。sudo vim /etc/security/pam_winbind.conf
-
ディレクティブ 「krb5_auth = yes」 をコメントアウトするか、削除してください。
[global] cached_login = yes krb5_ccache_type = FILE #krb5_auth = yes
-
Winbind サービスを停止した後に再起動します。
service winbind stop or systemctl stop winbind net cache flush service winbind start or systemctl start winbind