CentOS 7 autenticando em domínio Active Directory/Samba4 pelo Realmd com Winbind


INTRODUÇÃO

Se você já tem um domínio Active Directory, preferencialmente com Samba4, pode utilizar suas contas de usuários para autenticar sua equipe de administradores em vários servidores linux.  No nosso caso, estamos utilizando a última versão do CentOS que possui um daemon chamado realmd.

O realmd é um sistema de serviços on demand DBus que permite configurar a autenticação de rede e participação no domínio de uma forma padrão. Ele descobre informações sobre o domínio automaticamente e não necessita de configuração complicada, a fim de participar de um domínio.

Antes de tudo, criei pelo snap-in “Usuários e Computadores do Active Directory” as contas dos administradores como também criei um grupo chamado “LINUXADMINS”, mas você pode criar quantos grupos quiser e nomeá-los da forma que desejar.

INSTALAÇÃO

O realmd utiliza por padrão o SSSD (System Security Services Daemon) mas eu tive alguns problemas com ele. Em alguns momentos ele perdia conexão com o domínio. Por isso resolvi utilizar o Winbind e até mesmo pelo motivo de manter compatibilidade com alguns outros serviços que utilizam NTLM2. Então, pelo YUM eu instalei os pacotes necessários:

# yum install -y realmd samba-common oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind

Feito isso, vamos configurar algumas coisinhas.

CONFIGURAÇÕES

Supondo que o nome do domínio seja “dominio.local”, utilizamos a conta “administrador” para ingressar no domínio:

# realm join --client-software=winbind -U administrador dominio.local

Fiz alguns ajustes para que o usuário logue-se apenas com seu SAMAccountName, isto é, dispensando o uso de digitar DOMINIO\usuario1.  Assim, basta o usuário se autenticar usando “usuario1” por exemplo. Aproveitei e retirei a configuração que faz com que o primeiro login crie a home do usuário no formato /home/DOMINIO/usuario:

# vim /etc/samba/smb.conf
template homedir = /home/%U
winbind use default domain = yes

Feito isso, basta reiniciar o Winbind e habilitar sua inicialização no boot:

# systemctl restart winbind

# systemctl enable winbind

TESTES

Verifique o domínio no realmd:

# realm list

ufac.br
type: kerberos
realm-name: UFAC.BR
domain-name: ufac.br
configured: kerberos-member
server-software: active-directory
client-software: winbind
required-package: oddjob-mkhomedir
required-package: oddjob
required-package: samba-winbind-clients
required-package: samba-winbind
required-package: samba-common
login-formats: %U
login-policy: allow-any-login

Teste de ingresso:

# net ads testjoin
Join is OK

Como eu disse anteriormente, eu havia criado no AD um grupo chamado LINUXADMINS. Agora podemos verificar se esse grupo já está acessível no sistema que deverá aparecer em minúsculo:

# wbinfo -g | grep linuxadmins

RESTRIÇÕES

Vamos impor algumas restrições no acesso por SSH:

# vim /etc/ssh/sshd_config
AllowGroups linuxadmins

Agora vamos permitir que usuários do grupo linuxadmins possam usar o sudo:

# visudo
%linuxadmins ALL=(ALL) ALL

Agora temos autenticação centralizada!

REFERÊNCIAS

Documentação oficial RHEL – Discovering and Joining Active Directory Domains

Documentação oficial do RealmD