AWS Simple AD: “O KDC não tem suporte para o tipo de criptografia” para usuários criados com o adtool, mas não com o MS Management Console

4

Antecedentes

Estou tentando efetuar login (via SSH, em uma instância do Amazon Linux EC2 executando sssd ) como usuários que criei no AD simples do AWS Directory Services. Estou autenticando com kerberos e identificando o usuário com LDAP (em todo sssd .)

Problema

Não consigo fazer login como usuários que criei com adtool , o que significa que é muito mais difícil automatizar a adição de novos usuários ao meu Simple AD. Quando tento, o KDC diz que não pode suportar o tipo de criptografia (suponho que isso seja para a senha do usuário?) Consulte a seção "Mensagem de erro" abaixo.

No entanto, eu posso efetuar login como usuário Administrador interno e como usuários que criei por meio do Console de Gerenciamento Microsoft em uma instância do Windows Server 2008 EC2 associada ao domínio. Então minha configuração funciona, ou pelo menos funciona parcialmente.

TL; solução DR necessária

Eu preciso saber o que estou fazendo de errado com adtool que me impede de fazer login como usuários criados com eles. Não é aparente o que estou fazendo de errado e acho que isso pode ser útil para pessoas que estão tentando fazer algo parecido comigo. Detalhes abaixo.

Mensagem de erro

Esta é a saída de sssd ao tentar efetuar login como o usuário criado com 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

Do lado do cliente, diz Permission denied, please try again.

Arquitetura

Veja como minha arquitetura em torno do Simple AD se parece:

Essa configuração permite que eu use LDAPS, embora o Simple AD da AWS não ofereça suporte a ele.

O registro route53 para o ELB é directory.myteam.mycompany.com , mas o domínio que eu usei para o Simple AD é myteam.mycompany.internal .

Configuração na máquina executando o 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

Além desses dois arquivos, certifiquei-me de ativar a autenticação por senha em sshd_config e ativar o sssd nos módulos pam com 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

Versões de software

  • 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
  • sssd 1.12.2
  • adtool 1.3.3
  • openldap-clients 2.4.23-34.25.amzn1

Diferenças entre os usuários

Para mostrar como esses usuários diferem em meu diretório, aqui está a saída de consultá-los com ldapsearch da instância que está executando sssd .

Usuário criado com adtool (editar: você verá abaixo que o valor pwdLastSet está presente, acredito que isso não estava presente antes e sua presença é a chave da minha resposta):

$ 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

Utilizador criado através da Consola de gestão da 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
    
por 2rs2ts 31.12.2015 / 17:32

2 respostas

1

A diferença entre meu uso de adtool e o MMC foi que o MMC me incentivou a iniciar a senha do usuário, mas eu tinha esquecido de fazer o mesmo com meu usuário criado com adtool . As etapas a seguir resolveram isso e de forma reproduzível:

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

Em minha pergunta inicial, revisei o original test-user esta manhã depois que um colega de trabalho fez as etapas acima para definir a senha, então a saída mostra que a senha foi definida, mas ontem à noite quando eu estava tentando log in não tinha sido definido, daí a questão. Quando tentei logar novamente hoje funcionou, e depois de alguma investigação eu descobri que é por isso.

Agora, posso apenas especular por que a mensagem "KDC não tem suporte para o tipo de criptografia" apareceu: como não havia senha, não havia um tipo de criptografia. Se eu estiver errado, eu adoraria ser corrigido.

TL; DR é preciso lembrar de desbloquear o usuário e definir sua senha ao usar adtool em vez do MMC.

    
por 31.12.2015 / 19:05
0

Eu já vi erros como esse causados por uma das opções de conta que estão sendo configuradas (em um ambiente que não é da AWS), mas não me lembro de qual propriedade exata. Os usuários criados com ADTool possuem algum conjunto de "opções" adicionais em comparação com os usuários criados com o MMC? Não sei como mostrar essas opções com LDAPSearch . Dois métodos que eu sei como usar mostrado. Você também pode usar -prop * com Get-Aduser para mostrar TODAS as propriedades.

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]
    
por 31.12.2015 / 18:18