4.2. Configuração de um host RHEL para usar o AD como um provedor de autenticação

Complete este procedimento para permitir que o usuário AD_user faça o login no sistema rhel8_host usando a senha definida no banco de dados de usuários do Active Directory AD no domínio example.com. Neste exemplo, o domínio EXAMPLE.COM Kerberos corresponde ao domínio example.com.

Pré-requisitos

  • Você tem acesso root a rhel8_host.
  • A conta de usuário AD_user existe no domínio example.com.
  • O reino de Kerberos é EXAMPLE.COM.
  • rhel8_host não foi unido ao AD usando o comando realm join.

Procedimento

  1. Criar a conta de usuário AD_user localmente sem atribuir uma senha a ela:

    # useradd AD_user
  2. Abra o arquivo /etc/nsswitch.conf para edição, e certifique-se de que ele contenha as seguintes linhas:

    passwd:     sss files systemd
    group:      sss files systemd
    shadow:     files sss
  3. Abra o arquivo /etc/krb5.conf para edição, e certifique-se de que ele contenha as seguintes seções e itens:

    # To opt out of the system crypto-policies configuration of krb5, remove the
    # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
    includedir /etc/krb5.conf.d/
    
    [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
        dns_lookup_realm = false
        ticket_lifetime = 24h
        renew_lifetime = 7d
        forwardable = true
        rdns = false
        pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
        spake_preauth_groups = edwards25519
        default_realm = EXAMPLE.COM
        default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
     EXAMPLE.COM = {
         kdc = ad.example.com
         admin_server = ad.example.com
     }
    
    [domain_realm]
     .example.com = EXAMPLE.COM
     example.com = EXAMPLE.COM
  4. Crie o arquivo /etc/sssd/sssd.conf e insira as seguintes seções e linhas nele:

    [sssd]
        services = nss, pam
        domains = EXAMPLE.COM
    
    [domain/EXAMPLE.COM]
        id_provider = files
        auth_provider = krb5
        krb5_realm = EXAMPLE.COM
        krb5_server = ad.example.com
  5. Alterar as permissões no arquivo /etc/sssd/sssd.conf:

    # chmod 600 /etc/sssd/sssd.conf
  6. Iniciar o Sistema de Serviços de Segurança Daemon (SSSD):

    # systemctl start sssd
  7. Habilitar o SSSD:

    # systemctl habilita sssd
  8. Abra o arquivo /etc/pam.d/system-auth, e modifique-o de modo que contenha as seguintes seções e linhas:

    # Generated by authselect on Wed May  8 08:55:04 2019
    # Do not modify this file manually.
    
    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
    auth        sufficient                                   pam_unix.so nullok try_first_pass
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_deny.so
    
    account     required                                     pam_unix.so
    account     sufficient                                   pam_localuser.so
    account     sufficient                                   pam_succeed_if.so uid < 1000 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
    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     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
    session     required                                     pam_unix.so
    session     optional                                     pam_sss.so
  9. Copie o conteúdo do arquivo /etc/pam.d/system-auth para o arquivo /etc/pam.d/password-auth. Digite yes para confirmar a sobregravação do conteúdo atual do arquivo:

    # cp /etc/pam.d/system-auth /etc/pam.d/password-auth
    cp: overwrite '/etc/pam.d/password-auth'? yes

Etapas de verificação

  1. Solicite um bilhete de passagem de Kerberos (TGT) para AD_user. Digite a senha de AD_user, conforme solicitado:

    # kinit AD_user
    Password for AD_user@EXAMPLE.COM:
  2. Mostrar o TGT obtido:

    # klist
    Ticket cache: KEYRING:persistent:0:0
    Default principal: AD_user@EXAMPLE.COM
    
    Valid starting     Expires            Service principal
    11/02/20 04:16:38  11/02/20 14:16:38  krbtgt/EXAMPLE.COM@EXAMPLE.COM
    	renew until 18/02/20 04:16:34

AD_user fez login com sucesso em rhel8_host usando as credenciais do domínio EXAMPLE.COM Kerberos.