Como limpar a senha do Active Directory armazenada em cache do usuário no CentOS 7?

2

Eu construí uma instalação do CentOS 7 no laptop da minha empresa e a configurei para autenticar os servidores AD da empresa da seguinte forma:

  • Instalar pacotes:

    yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
    
  • Adicione servidores AD a /etc/hosts .

  • Participe do reino:

    realm join --user=tech adserver.example.com
    realm permit -g activedirectorygroup@domain
    
  • Altere use_fully_qualified_names para False e fallback_homedir para /home/%u em /etc/sssd/sssd.conf .

  • Reinicie os daemons:

    systemctl restart sssd && systemctl daemon-reload
    
  • Configure o ITGROUP para poder usar o sudo:

    echo "%ITGROUP  ALL=(ALL)  ALL" > /etc/sudoers.d/ITGROUP
    

Tudo está funcionando bem. ... até que eu mudei minha senha no meu PC Windows 10. Na verdade, a caixa do CentOS está me deixando, mas apenas com a senha antiga . Eu fiz um monte de pesquisando e tentei um monte de coisas (por exemplo, sss_cache -E , kdestroy -A ), mas eu não consigo liberar o cache para que eu possa usar minha nova senha .

Então, como limpar a senha do Active Directory armazenada em cache do usuário no CentOS 7? Existe uma maneira de um usuário "regular" fazer isso sozinho (no caso de querermos implementá-lo em outros sistemas)?

Atualização:

Eu tentei algumas das sugestões, mas o laptop não esqueceria as credenciais antigas. Acabei removendo o PC do reino e adicionando novamente. Eu adicionei isso ao meu sssd.conf:

[sssd]
...
account_cache_expiration = 2
cached_auth_timeout = 3600
refresh_expired_interval = 4050

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2

O login parece estar armazenando em cache o material do AD, mas ele me diz Authenticated with cached credentials, your cached password will expire at: quando eu faço login ou sudo. Espero que, da próxima vez que minha senha expirar e eu a alterar, esse sistema a reconheça. FYI, minha configuração inteira é:

[sssd]
domains = adserver.example.com
config_file_version = 2
services = nss, pam

[domain/adserver.example.com]
ad_domain = adserver.example.com
krb5_realm = adserver.example.com
realmd_tags = manages-system joined-with-samba 
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = simple
simple_allow_groups = [email protected]
account_cache_expiration = 2
cached_auth_timeout = 3600
refresh_expired_interval = 4050

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2

Atualização 2:

Eu tenho usado essa configuração já há algum tempo. Eu aumentei o account_cache_expiration e o offline_credentials_expiration de 2 para 4 , mas ele está funcionando tão bem que começamos a usar essa configuração em nossos servidores.

    
por DirkNiblick 20.05.2018 / 16:23

1 resposta

1

So, how do I clear a user's cached Active Directory password on CentOS 7?

Geralmente sss_cache deve ser o caminho certo para dizer ao sssd para recuperar novamente os objetos que ele já tenha armazenado em cache. Mas afaik sssd realmente usa os objetos em cache novamente se nada puder ser recuperado do AD.

Você sempre deve ser capaz de redefinir credenciais armazenadas em cache, definindo

[domain/your-domain.tld]
...
cache_credentials = False

no /etc/sssd/sssd.conf, reiniciando o serviço sssd e autenticando-se novamente com seu usuário. Desta forma você deve ser capaz de determinar se a autenticação sobre o SSSD / AD funciona. Para verificar se a configuração completa está funcionando com as configurações atuais (sem usar caches), é sempre bom excluir todos os caches. Veja as informações na parte inferior de como fazer isso de maneira mais eficaz.

Is there a way for a "regular" user to do that themselves (in case we wanted to roll this out to other systems)?

Não sei como isso pode ser implementado com segurança. Isso não é nada do que você quer. Mas isso não deveria ser necessário de qualquer maneira. O SSSD deve sempre reavaliar suas credenciais em cache com base em algumas condições.

Na maioria das vezes, é uma boa idéia definir o seguinte para forçar a reavaliação após alguns dias e realmente notar se algo com o ambiente está errado

[pam]
...
offline_credentials_expiration

como padrão offline_credentials_expiration está definido como 0 (sem limite)

Na maior parte do tempo, quando quero ter certeza, não há mais caches em uso, eu faço o seguinte

systemctl stop sssd
rm /var/lib/sssd/db/*
systemctl start sssd

Isso pode levar a uma configuração sssd não funcional (mas somente se algo estiver errado com sua configuração, já que todos os dados sssd são simplesmente recuperáveis a partir do AD).

    
por 20.05.2018 / 20:22