web-dev-qa-db-ja.com

AWS Simple AD:adtoolで作成されたが、MS管理コンソールでは作成されなかったユーザー向けの「KDCは暗号化タイプをサポートしていません」

バックグラウンド

AWS Directory Services Simple ADで作成したユーザーとして(SSH経由でsssdを実行しているAmazonLinux EC2インスタンスに)ログインしようとしています。私はKerberosで認証し、LDAPでユーザーを識別しています(すべてsssdを介して)。

問題

adtoolで作成したユーザーとしてログインできません。つまり、SimpleADへの新しいユーザーの追加を自動化するのがはるかに困難です。試してみると、KDCは暗号化タイプをサポートできないと言っています(これはユーザーのパスワード用だと思いますか?)以下の「エラーメッセージ」セクションを参照してください。

ただし、canは、組み込みのAdministratorユーザーとして、およびWindows Server2008のMicrosoft管理コンソールから作成したユーザーの両方としてログインできます。 EC2インスタンスがドメインに参加しました。だから私のセットアップは機能するか、少なくとも部分的には機能します。

TL; DRソリューションが必要

adtoolで間違っていることが何であるかを知る必要があります。これにより、ユーザーが作成したときにログインできなくなります。私が何を間違っているのかは明らかではなく、これは私と同じようなことをしようとしている人々にとって一般的に役立つと思います。詳細は以下をご覧ください。


エラーメッセージ

これは、sssdで作成されたユーザーとしてログインしようとしたときのadtoolの出力です。

(Thu Dec 31 15:35:35 2015) [[sssd[krb5_child[5459]]]] [sss_child_krb5_trace_cb] (0x4000): [5459] 1451576135.446649: Response was from master KDC

(Thu Dec 31 15:35:35 2015) [[sssd[krb5_child[5459]]]] [sss_child_krb5_trace_cb] (0x4000): [5459] 1451576135.446788: Received error from KDC: -1765328370/KDC has no support for encryption type

(Thu Dec 31 15:35:35 2015) [[sssd[krb5_child[5459]]]] [get_and_save_tgt] (0x0020): 996: [-1765328370][KDC has no support for encryption type]
(Thu Dec 31 15:35:35 2015) [[sssd[krb5_child[5459]]]] [map_krb5_error] (0x0020): 1065: [-1765328370][KDC has no support for encryption type]
(Thu Dec 31 15:35:35 2015) [[sssd[krb5_child[5459]]]] [k5c_send_data] (0x0200): Received error code 1432158209

クライアント側からはPermission denied, please try again.と表示されます

建築

SimpleADを中心とした私のアーキテクチャは次のようになります。

Architecture diagram

この設定により、AWSのSimple ADがLDAPSをサポートしていなくても、LDAPSを使用できるようになります。

ELBのroute53レコードはdirectory.myteam.mycompany.comですが、SimpleADに使用したドメインはmyteam.mycompany.internalです。

Sssdを実行しているマシンでの構成

/etc/sssd/sssd.conf

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = myteam

[nss]
default_Shell = /bin/bash
fallback_homedir = /home/%u
ldap_user_home_directory = unixHomeDirectory

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2
offline_failed_login_attempts = 3
offline_failed_login_delay = 5

[domain/myteam]
enumerate = true
cache_credentials = TRUE

id_provider = ldap

ldap_uri = ldaps://directory.myteam.mycompany.com
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt
ldap_default_bind_dn = CN=test-user,CN=users,DC=myteam,DC=mycompany,DC=internal
ldap_default_authtok = REDACTED_PASSWORD
ldap_id_use_start_tls = true
ldap_schema = AD
ldap_force_upper_case_realm = true
ldap_id_mapping = true
ldap_search_base = CN=users,DC=myteam,DC=mycompany,DC=internal

ldap_user_uuid = none
ldap_group_uuid = none

chpass_provider = krb5
auth_provider = krb5
krb5_server = directory.myteam.mycompany.com
krb5_realm = MYTEAM.MYCOMPANY.INTERNAL
krb5_changepw_principal = kadmin/changepw
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U_XXXXXX
krb5_auth_timeout = 15
krb5_canonicalize = True

/etc/sysconfig/authconfig

IPADOMAINJOINED=no
USEMKHOMEDIR=yes
USEPAMACCESS=no
CACHECREDENTIALS=yes
USESSSDAUTH=yes
USESHADOW=yes
USEWINBIND=no
PASSWDALGORITHM=sha512
FORCELEGACY=yes
USEFPRINTD=no
FORCESMARTCARD=no
USEDB=no
USELDAPAUTH=no
USEPASSWDQC=no
IPAV2NONTP=no
WINBINDKRB5=no
USELOCAUTHORIZE=yes
USEECRYPTFS=no
USECRACKLIB=yes
USEIPAV2=no
USEWINBINDAUTH=no
USESMARTCARD=no
USELDAP=yes
USENIS=no
USEKERBEROS=no
USESYSNETAUTH=no
USESSSD=yes
USEPWQUALITY=yes
USEHESIOD=no

これらの2つのファイルに加えて、sshd_configでパスワード認証を有効にし、Sudo authconfig --updateall --enablesssd --enablesssdauthを使用してpamモジュールでsssdを有効にしました。

/etc/pam.d/system-auth

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet_success
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so

ソフトウェアバージョン

  • uname -aLinux ip-172-31-31-2 4.1.10-17.31.amzn1.x86_64 #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  • sssd 1.12.2
  • adtool 1.3.3
  • openldap-clients 2.4.23-34.25.amzn1

ユーザー間の違い

これらのユーザーが私のディレクトリでどのように異なるかを示すために、ldapsearchを実行しているインスタンスからsssdを使用してユーザーにクエリを実行した結果を次に示します。

adtoolで作成されたユーザー(編集:pwdLastSet値が存在することが以下に表示されます。これは以前は存在しなかったと思います。その存在が、私の答えの鍵です):

$ ldapsearch -LLL  -H ldaps://directory.myteam.mycompany.com -D CN=Administrator,CN=users,DC=myteam,DC=mycompany,DC=internal -x -W '(cn=test-user)'
Enter LDAP Password:
dn: CN=test-user,CN=Users,DC=myteam,DC=mycompany,DC=internal
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: test-user
instanceType: 4
whenCreated: 20151230204358.0Z
displayName: Test user
uSNCreated: 3532
name: test-user
objectGUID:: ZhfGzcqLd06x2UBU3UNiZQ==
codePage: 0
countryCode: 0
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAHWfr9xoaXwKvEcuoUwQAAA==
accountExpires: 9223372036854775807
sAMAccountName: test-user
sAMAccountType: 805306368
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=myteam,DC=mycompany,DC
 =internal
userAccountControl: 512
lockoutTime: 0
whenChanged: 20151231150317.0Z
uSNChanged: 3619
pwdLastSet: 130960477970000000
distinguishedName: CN=test-user,CN=Users,DC=myteam,DC=mycompany,DC=internal

Microsoft管理コンソールを介して作成されたユーザー:

$ ldapsearch -LLL  -H ldaps://directory.myteam.mycompany.com -D CN=Administrator,CN=users,DC=myteam,DC=mycompany,DC=internal -x -W '(sAMAccountName=test-windows-2008)'
Enter LDAP Password:
dn: CN=Test User,CN=Users,DC=myteam,DC=mycompany,DC=internal
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Test User
sn: User
givenName: Test
instanceType: 4
whenCreated: 20151230223533.0Z
whenChanged: 20151230223534.0Z
displayName: Test User
uSNCreated: 3563
uSNChanged: 3563
name: Test User
objectGUID:: 2cuynP3/9EeRIm1fCUJ9jA==
userAccountControl: 512
codePage: 0
countryCode: 0
pwdLastSet: 130959885340000000
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAHWfr9xoaXwKvEcuoVwQAAA==
accountExpires: 9223372036854775807
sAMAccountName: test-windows-2008
sAMAccountType: 805306368
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=myteam,DC=mycompany,DC
 =internal
distinguishedName: CN=Test User,CN=Users,DC=myteam,DC=mycompany,DC=internal
4
2rs2ts

adtoolとMMC)の使用の違いは、MMCがユーザーのパスワードを初期化するように促したが、それを忘れていたということでした。 adtoolで作成したユーザーでも同じです。次の手順で解決し、再現性よく解決しました。

$ adtool userunlock -w REDACTED_PASSWORD 'test-user'
$ adtool setpass -w REDACTED_PASSWORD  test-user REDACTED_PASSWORD

最初の質問では、同僚が上記の手順を実行してパスワードを設定した後、今朝元のtest-userを再クエリしたため、出力にはパスワードが設定されたことが示されますが、昨夜ログに記録しようとしました設定されていなかったので、問題が発生しました。今日、もう一度ログインしようとするとうまくいきました。調査の結果、これが理由であることがわかりました。

さて、「KDCは暗号化タイプをサポートしていません」というメッセージが表示された理由についてのみ推測できます。パスワードがなかったため、暗号化タイプがありませんでした。私が間違っているなら、私は訂正されたいです。

TL; DR MMCの代わりにadtoolを使用する場合は、ユーザーのロックを解除し、パスワードを設定することを忘れないでください。

1
2rs2ts

アカウントオプションの1つが(AWS以外の環境で)設定されていることが原因で、以前にそのようなエラーが発生したことがありますが、正確なプロパティを思い出せません。 ADToolで作成されたユーザーには、MMCで作成されたユーザーと比較して、追加の「オプション」が設定されていますか? LDAPSearchでこれらのオプションを表示する方法がわかりません。私が知っている2つの方法が示されています。 -prop *Get-Aduserを使用して、すべてのプロパティを表示することもできます。

acctOptions

PS C:\temp> get-aduser mbe998 -prop DoesNotRequirePreAuth,UseDESKeyOnly

DistinguishedName     : CN=Mary Brown,OU=Junk,DC=acme,DC=com
DoesNotRequirePreAuth : True
Enabled               : False
GivenName             : Mary
Name                  : Mary Brown
ObjectClass           : user
ObjectGUID            : f7f30ebe-f91d-41de-b38e-ae29853b7291
SamAccountName        : mbe998
SID                   : S-1-5-21-3362165994-992225803-2260058754-129428
Surname               : Brown
UseDESKeyOnly         : True
UserPrincipalName     : [email protected]
0
Clayton