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
Faltou mencionar que precisa subir o serviço realmd (systemctl start realmd) antes de fazer o join!!! 🙂
Muito obrigado meu nobre. Mais uma vez meu grande guru salvando minha pele. Valeu meu brother!
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
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.
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.
Fala Gustavo! No CentOS 6.x eu uso o authconfig-tui.
Excelente tutorial.
Obrigado!
Muito obrigado!
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 ?
Guilherme, isso é bem fácil de resolver. Basta ir no smb.conf e alterar para usar o domínio padrão:
winbind use default domain = yes
Abraços,
Fala Guilherme! Lá no smb.conf, em [global], você tem que alterar “winbind use default domain” para “yes” assim:
[global]
…
winbind use default domain = yes
Obrigado pelo retorno. Funcionou perfeitamente, desta forma estamos conseguindo monitorar e auditar quem acessa o servidor via ssh e nos servidores web que temos conseguimos gerenciar quem pode acessar os deiretórios do Apache pelo AD.
Abraços,
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?
Você seguiu a instrução sobre a limitação do acesso ssh? Basta adicionar “AllowGroups grupo” lá no /etc/ssh/sshd_config.
Parabéns, olhando as perguntas vejo que tu tens uma paciência de jó.
Excelente tutorial, ajudou bastante, mas ao excluir um usuário do grupo LINUXADMINS ele CONTINUA logando mas não consegue usar o SUDO ! Como fazer para não logar, já que não faz parte do grupo ?
Tive que usar este parametro winbind separator = +, no smb.conf, senão ao abrir no Windows o compartilhamento, pedia usuario e senha e não aceita os mesmos.
Com o parametro acima, estando já logado na maquina com o usuario que está no grupo permitido no compartilhamento, a pasta abre diretamente. Para mim funcionou. Mas, haveria outra configuração ou seria isso mesmo?
Oi! parabéns pelo excelente tutorial, estou tentando integrar o meu samba com AD para que somente os membros do AD acessem um determinado compartilhamento.
Toda vez que tento acessar a pasta aparece um popup pedindo usuário e senha e não entra mesmo preenchendo.. sabes o porque disso?