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

centos-logo
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

Geowany Galdino escreveu 45 artigos

Assistente em Tecnologia da Informação na Universidade Federal do Acre. Licenciado em História na mesma instituição.

15 comentários em “CentOS 7 autenticando em domínio Active Directory/Samba4 pelo Realmd com Winbind

  1. Alex comentou:

    Ficou muito bom o artigo. Porém criei uma pasta e compartilhei a pasta com o grupo, consigo apagar os arquivos, mas não consigo criar e gravar nada nesta pasta.
    [newave]
    path = /opt
    ;guest ok = yes
    writable = yes
    valid users = @adminlinux
    force directory mode = 775
    ——————————————
    Também dei acesso a pasta:
    drwxrwxr-x. 6 net1ag796 adminlinux 80 Sep 1 16:56 opt

    1. Geowany Galdino comentou:

      Olá, Alex! Aqui funciona muito bem com essa configuração:

      [grupos]
      comment = Grupos
      path = /srv/samba/grupos
      browseable = yes
      public = no
      writable = yes
      guest ok = no
      create mask = 0770
      directory mask = 0770
      map acl inherit = yes

      Daí você cria quantos diretórios quiser pra cada grupo e seta as permissões adequadamente.

  2. Gustavo comentou:

    Tutorial simples e objetivo parabéns. Eu utilizo CentOS 6 em meu ambiente, a opção do REALMD para a versão 6.8 é o ADCLI. Quando eu tento realizar o testjoin apresenta a seguinte mensagem “ads_connect: No logon servers
    Join to domain is not valid: No logon servers”. Voce possui instruções com o CentOS 6?
    Obrigado.

  3. Guilherme Duarte comentou:

    Obrigado pelo tutorial. Consegui ingressar com sucesso o Centos 7. Estou com o problema que quando coloco wbinfo -u para pesquisar por usuários ou wbinfo -g para pesquisar por grupos mostra assim:

    DOMAIN_NAME\USERNAME

    Temos um servidor com Debian 7 no domínio e quando utilizamos wbinfo -u ou wbinfo -g aparecem os nomes dos usuários e grupos respectivamente.

    Alguma forma de fazer o CentOS 7 fazer da mesma forma ?
    Podem nos ajudar ?

  4. jean comentou:

    Tenho um problema pois quero limitar que somente um grupo específico consigam logar no ssh. Seguindo o tutorial todos estão conseguindo. como faço o ajuste?

Deixe um comentário

Seu endereço de email não será publicado. Os campos com * são obrigatórios

Você pode usar estes tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>