Ubuntu 12.04 autenticando no Active Directory com Samba/Kerberos/Winbind

Estou utilizando para a confecção deste tutorial, a necessidade que surgiu em ter um servidor de autenticação para as máquinas clientes de nossa rede
interna. Para tanto, estamos usando como servidor central, o Windows Server 2008 e o Active Directory como gerenciador de domínio.

[ Hits: 59.429 ]

Por: Humberto Júnior em 29/05/2013 | Blog: http://mundonix.wordpress.com


Adicionando máquinas ao domínio (AD)



Configurado o Samba e o Kerberos, vamos adicionar a máquina ao domínio:

# kinit Usuario@DOMINIO.LOCAL  # Esse comando cria um ticket de comunicação com o servidor de AD

Para verificar se o ticket está ativo, usa-se o comando:

# klist
 Ticket cache: FILE:/tmp/krb5cc_0
 Default principal: principal@DOMINIO.LOCAL

 Valid starting Expires Service principal
 06-09-2012 11:19:15 07-09-2012 01:29:45 
  krbtgt/DOMINIO.LOCAL@DOMINIO.LOCAL

Agora, vamos adicionar a máquina no AD:

# net ads join DOMINIO.LOCAL -U <usuario_admin>

Obs.: O usuário deve ser um usuário admin do Active Directory. Ex.: Adminitrator@DOMINIO.LOCAL.

O resultado deverá ser parecido com esse:

 Using short domain name - DOMINIO.LOCAL
 Joined 'nome_da_maquina' to realm 'DOMINIO.LOCAL'

Caso haja algum erro na mensagem relativo ao DNS, adicione uma linha no arquivo de hosts, como segue abaixo:

# vim /etc/hosts
 192.168.0.1 adservidor.dominio.local adservidor

Podemos, então, testar se o computador foi adicionado e a autenticação foi feita com sucesso:

# net ads testjoin

A saída deverá ser:

 Join is OK

Precisamos, também, configurar o Winbind. Edite o arquivo "/etc/nsswitch.conf":

# vim /etc/nsswitch.conf

Altere as linhas e deixe assim:

passwd: compat winbind
group: compat winbind
shadow: compat

hosts: files dns wins


Vamos agora testar se o AD está configurado com o Winbind:

# wbinfo -u  # Vai retornar a lista de usuários do Active Directory
# wbinfo -g  # Vai retornar a lista de grupos do Active Directory

Agora, vamos testar se o módulo nsswitch está configurado e se comunicando normalmente com o AD:

# getent passwd  # Esse comando deverá mostrar uma lista com todos os usuários locais e todos os usuários do Active Directory
# getent group  # Esse comando deverá mostrar a lista com todos os grupos locais e todos os usuários do Active Directory

PAM.D

Precisamos fazer uns pequenos ajustes também no PAM.D:

# vim /etc/pam.d/common-session

Adicione a linha:

session required pam_mkhomedir.so umask=0022 skel=/etc/skel


Isso vai fazer com que ele crie automaticamente o diretório do usuário no "/home", assim que ele logar pela primeira vez.

Precisamos também criar um diretório para os usuários do domínio:

# mkdir /home/DOMINIO.LOCAL

Considerações finais

Assim, terminamos a maioria das configurações.

Uma pequena ressalva, é que os tickets do Kerberos não dão refresh automaticamente, o que faz com que, ao reiniciar a máquina, seja preciso reiniciar o kinit para que ele gere um novo ticket.

No meu caso, eu criei uma keytab usando a ferramente ktutil do Kerberos para que um script possa chamar o refresh na inicialização da máquina sem a necessidade de colocar uma senha no script.

Porém, esse tutorial, eu farei em outra parte, mostrando como criar um ticket automaticamente usando uma ferramenta do Kerberos juntamente com um script que irá atualizar esse ticket quando o sistema operacional iniciar.


Abraço a todos!

Artigo também publicado em:
Página anterior    

Páginas do artigo
   1. Introdução / Instalação / Configuração
   2. Adicionando máquinas ao domínio (AD)
Outros artigos deste autor

Bloqueando e desbloqueando falhas de login em SSH usando o pam_tally2

CoreOS no VirtualBox

Leitura recomendada

HOWTO Samba

Serviço alternativo de baixo custo: Samba + Windows XP + registros de bloqueio

Samba + clamav - compartilhamento livre de vírus

Configurar SAMBA como PDC com usuário fixo

Bloqueando a gravação de arquivos no Samba por extensão

  
Comentários
[1] Comentário enviado por mebelin em 29/05/2013 - 08:40h

Conhece alguma forma do usuário comum alterar sua senha do domínio?

[2] Comentário enviado por halencarjunior em 29/05/2013 - 08:49h

usando o smbpasswd

# smbpassword -r <DOMINIO> -U <login_do_usuario>

[3] Comentário enviado por dannyalisson em 31/05/2013 - 09:26h

Uma pergunta. Tenho um Dominio Samba com Openldap já tentei de tudo até reza braba fazer com que minhas maquinas linux se autentiquem no Dominio Samba. Consigo enchergar os usuarios da rede e consigo autenticar o usuario Root, mais um usuario comum não consigo logar. Você conhece alguma forma de fazer com que meus usuarios se autentiquem?



[4] Comentário enviado por halencarjunior em 31/05/2013 - 10:11h

Eu precisaria ver todas as confs que você fez no samba e no ldap para dizer alguma coisa.

[5] Comentário enviado por dannyalisson em 31/05/2013 - 11:28h

Se quiseres posso enviar para o seu email!

[6] Comentário enviado por halencarjunior em 31/05/2013 - 11:31h

Pode enviar clicando no meu nick ali.

[7] Comentário enviado por dannyalisson em 31/05/2013 - 11:54h

Já enviei agradeço a ajuda.

[8] Comentário enviado por jorgetrc em 11/06/2013 - 11:33h

Olá, amigo, segui o seu tutorial, mas quando coloco os dados de acesso dos usuário do AD

para acessar algum diretório compartilhado pelo samba eu recebo a informação de "acesso negado",

pode me ajudar?


att...

[9] Comentário enviado por halencarjunior em 11/06/2013 - 11:37h

Preciso saber das permissões do Diretório, e preciso ver sua configuração do SAMBA.

[10] Comentário enviado por jorgetrc em 11/06/2013 - 11:43h

ok, posso te enviar por aqui mesmo?

[11] Comentário enviado por halencarjunior em 11/06/2013 - 11:45h

Pode sim. Pelo e-mail que aparece no meu cadastro

[12] Comentário enviado por jorgetrc em 11/06/2013 - 11:49h

enviei o email...

[13] Comentário enviado por tiagor7 em 25/06/2013 - 16:24h

amigo, fiz os procedimento certinho
mais quando coloco o comando wbinfo -u só lista os usuários do linux, nao aparece pra mim os users do AD
verifiquei todas as configurações mais nao achei o erro
poderia me ajudar

valeu !

[14] Comentário enviado por halencarjunior em 25/06/2013 - 16:26h

1 - Verificar se o ticket gerado pelo keberos está ativo
2 - Você tem que verificar se o computador está adiconado normalmente no domínio.
3 - verificar se o nsswitch está configurado corretamente

[15] Comentário enviado por dionyruaro em 04/07/2013 - 17:41h

Realizei todo o passo a passo e esta apresentando a msg de Failed to join domain: failed to lookup DC info for domain 'TORRE.GALPAO' over rpc: NT_STATUS_CONNECTION_RESET
Já li muitos tutoriais sobre este erro e não esta resolvendo, o kinit faz certo e o certificado do kerberos tbm esta valido. mas na hora de ingressar a estação no ad apresenta este erro. Tem alguma dica que possa me ajudar.

Valew!

[16] Comentário enviado por henmigue em 12/09/2013 - 08:36h

Olá,

Fiz tudo com sucesso até ao comando de entrada no domínio: # net ads join DOMINIO.LOCAL -U <usuario_admin>

Coloquei: # net ads join COMPELMADA.LOCAL -U administrator@COMPELMADA.LOCAL , e recebi a seguinte mensagem:

"Kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credencials
Failed to join domain: failed to connect to AD: Invalid credencials"

Tenho a certeza de que o utilizador e a password estão corretos. Tem alguma ideia do que poderá estar a acontecer?

PS:
durante a instalação do pacote, fui alertado que não era possivel concluir a instalação por estar ligado ao dominio com o likewise (dado que já tinha tentado este procedimento com o likewise, sem sucesso), no entanto, desconectei-me dele e voltei a fazer tudo de novo e consegui concluir a instalação.

Abraço
Henrique

[17] Comentário enviado por halencarjunior em 12/09/2013 - 08:57h

Olá henmique,

acredito que houve um equívoco na hora de postar o comando.

por favor teste dessa forma:

# net ads join -r COMPELMADA.LOCAL -U administrator@COMPELMADA.LOCAL

A sintaxe poderia ser assim:

# net ads join -r <DOMINIO> -U <USUARIO>@<DOMINIO> -S <SERVIDOR_AD>

[18] Comentário enviado por henmigue em 12/09/2013 - 10:09h

andrauz,

repeti o comando nas duas formas apresentadas e o erro é o mesmo.

para testtar, repeti o 2º comando, e atribui ao campo <SERVIDOR.AD> o IP da maquina em questão em vez do nome (FILESERVER) e o erro é o seguinte:

"Kinit succeeded but ads_sasl_spnego_krb5_bind failed: Server not found in kerberos database
Failed to join domain: failed to connect to AD: Server not found in kerberos database"

Abraço,
Henrique

[19] Comentário enviado por alexoliveira em 11/03/2014 - 21:29h

Caro Andrauz,

Otimo artigo.

Eu segui todos os passos, mas quando executo o getent passwd so aparecem para mim os usuarios locais.
Por conta disso, a autenticacao no lightdm falha, mesmo que o winbind e o krb5 validem e autentiquem o usuario.

Saberia me dizer o que pode estar errado?

Estou ha uns dois dias pesquisando sobre o tema e nao consigo fazer funcionar de forma alguma.

Grato!
Alexandre

[20] Comentário enviado por hugo.dias em 13/02/2015 - 17:48h


Olá amigo! Sou meio iniciante com Linux e estou tentando resolver uma missão que me foi dada...rs
Preciso compartilhar alguns diretórios no servidor ,Ubuntu 14.04 já integrado ao AD, usando este procedimento: http://community.spiceworks.com/how_to/80336-join-ubuntu-14-04lts-to-a-windows-domain-using-pbis-ope.... Esta etapa está Ok.

Agora preciso configurar o SAMBA para compartilhar os diretórios localizados em: /dev/Sda1/DADOS e /dev/Sdb1/DATABASE para os grupos Domain Users do meu domínio: EXEMPLO.LOCAL.

Preciso repetir todos os procedimentos que você descreveu no tutorial ou posso começar apartir de algum ponto específico (ex. config. do arquivo smb.conf)?

Desde já agradeço a ajuda!

Hugo

[21] Comentário enviado por fabiocereto em 13/10/2016 - 14:38h

Olá amigo boa tarde, sou meio novato no Linux entrei em uma empresa em que existem 3 servidores Linux Ubuntu 16.04 LTS e um controlador de domínio AD Windows Server 2012 solicitaram que eu ingresse estes servidores no domínio do AD segui o passo-a-passo porém não obtive sucesso, quando tento inserir a máquina no domínio é retornado o seguinte erro: erro de sintaxe próximo do 'token' não esperado 'newline' , quando executo o teste com o kinit e o usuário ele pede a senha porém é retornado erro: Preauthentication filed while getting initial credentials, caso possa me ajudar fico grato.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts