Aqui falaremos sobre os procedimentos para configurar o SSSD. Este procedimento foi realizado sobre uma Instalação padrão do CentOS 7 que fazemos de servidores CentOS, caso queira realizar a mesma instalação, consulte aqui, ou nas referências abaixo.
Para executar os passos é necessário que se saiba Como obter o Distinguished Name (DN) no Active Directory, verifique aqui ou nas referências, abaixo.
Em nosso exemplo, configuraremos a pasta home de todos os usuários LDAP como a mesma pasta e deixaremos um script de logon para auditoria de quem logou quando.
Existem algumas formas de realizar esse procedimento, caso queira explorar outras possibilidades consulte neste link, ou nas referências abaixo.
Antes de executar a configuração, verifique suas configurações de rede, de resolução de nomes (incluindo o arquivo /etc/resolv.conf e o arquivo /etc/hosts configurado com o nome e o IP do próprio servidor) e de horário.
Para configurarmos corretamente, usaremos uma conta de serviço para leitura no AD e um grupo de Acesso (para restringirmos quem poderá acessar o servidor).
Criando um usuário para consulta LDAP
Crie uma conta com o padrão de nomes de contas de serviço que sua empresa utiliza, essa conta pode ser membro de um grupo genérico e retirado o grupo Domain Users (defina o grupo novo grupo como padrão primeiro para poder retirar o grupo Domain Users). Desta forma está conta não poderá ser usado para logon em computadores;
Criando um grupo de acesso ao servidor
Crie um grupo e adicione os membros que poderão fazer logon no servidor, sugerimos um grupo para cada servidor linux, pois mesmo que muitos acessos sejam comuns (por exemplo, todos de uma equipe), com o tempo podem surgir necessidades específicas e se for um único grupo essas “exceções” começam a ter acesso a vários sistemas que não deveriam;
Instalando e configurando o SSSD
Para instalar e configurar, execute os comandos abaixo (altere as partes em cinza conforme sua realidade).
yum install autofs krb5-workstation nss-pam-ldapd openldap openldap-clients pam_ldap rpcbind samba-winbind-clients samba-client samba-winbind sssd sssd-ldap sssd-ad sssd-client sssd-krb5 -y
yum install adcli authselect-compat krb5-workstation oddjob oddjob-mkhomedir realmd samba-common samba-common-tools -y
systemctl enable sssd
vim /etc/sssd/sssd.conf
Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:
[domain/SEUDOMINIO.COM.BR] id_provider = ad auth_provider = ad chpass_provider = ad access_provider = ad ad_server = servidor_dc.seudominio.com.br ad_hostname = servidor_dc.seudominio.com.br ldap_uri = ldap://IP_SEU_DC:3268/ ldap_search_base = dc=seudominio,dc=com,dc=br ldap_group_search_base = DC=seudominio,DC=com,DC=br ldap_default_bind_dn = seu_usuario@seudominio.com.br ldap_default_authtok = senha_dessa_conta ldap_schema = ad ldap_user_object_class = person ldap_group_object_class = group ldap_user_name = sAMAccountName ldap_access_order = expire ldap_account_expire_policy = ad enumerate = true ldap_tls_reqcert = never ldap_tls_cacertdir = /etc/openldap/cacerts ldap_id_mapping = true fallback_homedir = /home/%u ldap_id_use_start_tls = False krb5_realm = SEUDOMINIO.COM.BR krb5_canonicalize = False krb5_server = servidor_dc.seudominio.com.br:88 krb5_kpasswd = servidor_dc.seudominio.com.br:88 case_sensitive = True #Se for CentOS8, descomente a linha abaixo #ad_gpo_access_control = disabled #Se tiver problemas, altere o debug_level para 10, reinicie o sssd e verifique os logs (mais detalhados) debug_level = 1 ad_access_filter = (memberOf=CN=Nome do Grupo,OU=Nome da OU,DC=seudominio,DC=com,DC=br) ldap_sasl_mech = GSSAPI ldap_sasl_authid = host/nome_do_servidor.seudominio.com.br@SEUDOMINIO.COM.BR ldap_sasl_realm = SEUDOMINIO.COM.BR [sssd] services = nss, pam, sudo config_file_version = 2 domains = SEUDOMINIO.COM.BR [nss] filter_users = root,named,avahi,nscd [sudo] |
Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, execute:
chmod 600 /etc/sssd/sssd.conf
vim /etc/krb5.conf
Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:
includedir /etc/krb5.conf.d/ includedir /var/lib/sss/pubconf/krb5.include.d/ [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = SEUDOMINIO.COM.BR dns_lookup_realm = false #dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt default_ccache_name = KEYRING:persistent:%{uid} [realms] SEUDOMINIO.COM.BR = { #kdc = servidor_dc.seudominio.com.br:88 #admin_server = servidor_dc.seudominio.com.br:88 } [domain_realm] seudominio.com.br = SEUDOMINIO.COM.BR .seudominio.com.br = SEUDOMINIO.COM.BR |
Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, execute:
vim /etc/samba/smb.conf
Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:
[global] workgroup = SEUDOMINIO client signing = yes client use spnego = yes kerberos method = secrets and keytab log file = /var/log/samba/samba.log realm = SEUDOMINIO.COM.BR security = ads |
Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, execute:
rm -rf /etc/krb5.keytab
kinit login_admin (SEM o domínio)
net ads join -k
systemctl restart sssd
realm permit --all
authconfig --enablesssd --enablesssdauth --enablemkhomedir --update
authselect select sssd --force
authselect select sssd with-mkhomedir --force
Agora, basta fazer logon com o usuário do AD
Opcional: Definir contas para terem permissões de root
Caso precise definir que alguma conta LDAP deve acessar o linux com permissões de root, execute:
vim /etc/sudoers.d/seu_dominio
Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:
login_do_ad ALL=(ALL) ALL |
Adicione quantas linhas como essa precisar. Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar.
Fontes/Referências
NVLAN – Como obter o Distinguished Name (DN) no Active Directory
NVLAN – Instalação padrão do CentOS7
NVLAN – Métodos para integrar o CentOS com LDAP (Active Directory)
https://computingforgeeks.com/join-centos-rhel-system-to-active-directory-domain
https://serverfault.com/questions/633802/ldap-authentication-on-centos-7
https://serverfault.com/questions/851864/get-sid-by-its-objectsid-using-ldapsearch/852338#852338
https://tylersguides.com/guides/configure-sssd-for-ldap-on-centos-7/
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.