Configurar o cliente LDAP usando o SSSD para autenticação no Linux
Colaboração: Anderson P. Almeida
Data de Publicação: 19 de junho de 2018
Objetivo
Configurar a autenticação com o SSSD (System Security Services Daemon) e LDAP (Testado no Ubuntu 16.04)
Definições
- SSSD (System Security Services Daemon) - Daemon de Serviços de Segurança do Sistema - Funciona como um agregado de daemons que gerenciam mecanismos de autenticação remota, assim como serviços de diretórios que manipula diretamente o PAM e o NSS.
- LDAP (Lightweight Directory Access Protocol - Protocolo de acesso aos diretórios leves) - É um protocolo padrão que permite gerenciar diretórios, ou seja, acessar bancos de informações sobre os usuários de uma rede por meio de protocolos TCP/IP.
Requisitos
- Criar na base LDAP o grupo para identificar usuários que terão privilégios
administrativos. Neste exemplo utilizaremos o grupo
srv-adm
. - Criar cópias de backup dos arquivos antes de alterá-los.
Instruções
Instalação dos pacotes do sssd
$ sudo apt-get install sssd libpam-sss libnss-sss
Verifique o arquivo /etc/nsswitch.conf
Para usar o sssd o arquivo deve estar conforme este exemplo a seguir:
passwd: compat sss
group: compat sss
shadow: compat sss
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis sss
sudoers: files sss
Crie o arquivo "/etc/sssd/sssd.conf"
[nss] filter_groups = root filter_users = root reconnection_retries = 3 [pam] reconnection_retries = 3 offline_credentials_expiration = 3 [sssd] config_file_version = 2 reconnection_retries = 3 sbus_timeout = 30 services = nss, pam domains = ldap debug_level = 5 [domain/ldap] chpass_provider = ldap auth_provider = ldap ldap_schema = rfc2307 id_provider = ldap enumerate = true cache_credentials = true offline_credentials_expiration = 3 ldap_uri = ldaps://ldap.exemplo.com
OBS: Pode-se adicionar filtros em ldap_user_search_base
e em
ldap_group_search_base
afim de restringir a lista entradas do LDAP.
Ex: Listar somente contas com determinado valor no atributo host
ldap_user_search_base = ou=usuarios,dc=exemplo,dc=com?one?(host=valor) ldap_user_search_base = ou=usuarios,dc=exemplo,dc=com ldap_group_search_base = ou=grupos,dc=exemplo,dc=com #Cert ldap_tls_cacert = /etc/ssl/certs/seucertificado.cer ldap_id_use_start_tls = true ldap_tls_reqcert = demand #Bind credentials ldap_default_bind_dn = uid=user,dc=exemplo,dc=com ldap_default_authtok_type = password ldap_default_authtok = suasenha #Grupos ldap_group_object_class = posixGroup ldap_group_name = cn ldap_group_number = gidNumber ldap_group_member = memberUid
Altere a permissão do arquivo /etc/sssd/sssd.conf
$ sudo chown root:root /etc/sssd/sssd.conf $ sudo chmod 600 /etc/sssd/sssd.conf
Crie o arquivo /usr/share/pam-configs/mkhomedir_ldap
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Adicione a linha abaixo no final do arquivo /etc/security/group.conf
Lembrando que neste exemplo estamos utilizando o grupo srv-adm
*;*;%srv-adm;Al0000-2400;adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare
Crie o arquivo /usr/share/pam-configs/groups_ldap
Name: Assign local groups Default: yes Priority: 900 Auth-Type: Primary Auth: required pam_group.so use_first_pass
Ativação
Para ativar a configuração execute pam-auth-update
e, se necessário, marque
as opções conforme abaixo:
│ PAM profiles to enable: │ │ │ │ [*] Pwquality password strength checking │ │ [*] activate mkhomedir │ │ [*] Assign local groups │ │ [*] Unix authentication │ │ [*] SSS authentication │ │ [*] Register user sessions in the systemd control group hierarchy │ │ [*] Create home directory on login │
Reinicie o sssd
sudo service sssd restart
Testes
Execute os comandos abaixo e verifique se as entradas do LDAP são listadas
$getent passwd $getent shadow $getent group