AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 746157
Accepted
2rs2ts
2rs2ts
Asked: 2016-01-01 08:32:45 +0800 CST2016-01-01 08:32:45 +0800 CST 2016-01-01 08:32:45 +0800 CST

AWS Simple AD:“KDC 不支持加密类型”用于使用 adtool 创建的用户,但不使用 MS 管理控制台

  • 772

背景

我正在尝试以sssd我在 AWS Directory Services Simple AD 中创建的用户身份登录(通过 SSH,登录到正在运行的 Amazon Linux EC2 实例)。我正在使用 kerberos 进行身份验证并使用 LDAP 识别用户(全部通过sssd.)

问题

我无法以我创建的用户身份登录adtool,这意味着我很难自动将新用户添加到我的 Simple AD。当我尝试时,KDC 说它不支持加密类型(我假设这是用户密码?)请参阅下面的“错误消息”部分。

但是,我既可以作为内置管理员用户登录,也可以作为我通过 Microsoft 管理控制台在加入域的 Windows Server 2008 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.

建筑学

以下是我围绕 Simple AD 的架构:

架构图

此设置使我能够使用 LDAPS,即使 AWS 的 Simple AD 不支持它。

ELB 的 route53 记录是directory.myteam.mycompany.com,但我用于 Simple AD 的域是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

除了这两个文件之外,我还确保sshd_config在 pam 模块中启用密码身份验证并启用 sssd sudo authconfig --updateall --enablesssd --enablesssdauth。

/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 -a:Linux 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
  • sssd1.12.2
  • adtool1.3.3
  • openldap-clients2.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
openldap
  • 2 2 个回答
  • 2163 Views

2 个回答

  • Voted
  1. Best Answer
    2rs2ts
    2016-01-01T10:05:46+08:002016-01-01T10:05:46+08:00

    我使用 MMC 和 MMC 的区别在于adtoolMMC 鼓励我初始化用户密码,但我忘记对使用adtool. 以下步骤解决了它,并且可重现:

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

    在我最初的问题中,今天早上我在同事完成上述步骤设置密码后重新查询了原件test-user,所以输出显示密码已设置但昨晚我尝试登录时没有已设置,因此问题。当我今天再次尝试登录时,它成功了,经过一番调查,我发现这就是原因。

    现在,我只能推测为什么会出现“KDC不支持加密类型”的消息:因为没有密码,所以没有加密类型。如果我错了,我很想得到纠正。

    TL; DR必须记住在使用adtool而不是 MMC 时解锁用户并设置他们的密码。

    • 1
  2. Clayton
    2016-01-01T09:18:29+08:002016-01-01T09:18:29+08:00

    我之前看到过由设置的帐户选项之一(在非 AWS 环境中)引起的类似错误,但我不记得是哪个确切的属性。ADTool与使用 MMC 创建的用户相比,使用创建的用户是否设置了任何额外的“选项” ?我不确定如何用LDAPSearch. 我确实知道如何使用显示的两种方法。您还可以使用-prop *withGet-Aduser来显示所有属性。

    账户选项

    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

相关问题

  • OpenLDAP 无效凭证

  • 从 OpenLDAP 检索操作属性

  • 为 Mac 网络使用 Linux 和 Open LDAP

  • 使用LDAP服务器身份验证的Linux中单个用户的多个登录名

  • 将 OpenLDAP 实现为目录而不是控制网络访问的指南?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve