Integração do Servidor Linux Samba com Active Directory do Windows Server

Este artigo apresenta uma integração prática entre um Servidor Linux Samba com AD do Windows Server. Por meio dele é possível
configurar um ambiente que utiliza a base de usuários do AD e acessar arquivos em um servidor Linux, bem como ingressar uma estação Linux a
um domínio Windows. Foram utilizados, Samba, LDAP, Kerberos e Active Directory.

[ Hits: 92.701 ]

Por: Fábio Cordeiro em 27/11/2011 | Blog: https://ice.pucminas.br/


Introdução e Instalação



Introdução

A necessidade de se manter uma base centralizada de informações referentes a objetos de uma rede, é uma questão de boa prática de Administração de Redes de Computadores.

Tal cenário se torna mais desejado quando esta rede é composta por servidores com sistemas operacionais diferentes onde a comunicação entre eles não é uma fator trivial.

Com esta perspectiva  de interoperabilidade entre sistemas distintos, é possível destacar algumas tecnologias que tem como propósito mitigar problemas de comunicação entre redes Windows e Linux; dentre elas uma que se destaca é o Samba. O Samba permite justamente essa interoperabilidade entre o Windows e Linux, por meio do protocolo SMB/CIFS.

Embora o Samba permita esta comunicação entre os sistemas operacionais citados, ele por si só não permite (até a versão 3.x), que seja feita uma total integração com o diretório ativo do Windows. Para isso precisaremos de outras duas tecnologias, que são o Kerberos e o LDAP.

Em termos práticos, ao final desse artigo poderemos ter uma rede com as seguintes características:
  • Um servidor Windows 2003, controlador de domínio com Active Directory (AD);
  • Um segundo servidor Windows 2003 que possuí toda a cópia do Active Directory(AD);
  • Um servidor Linux Debian Etch, que terá o Samba 3.0.

A intenção prática desse artigo é que ao final, o servidor Linux faça parte do domínio, e que possam ser configurados permissões via Samba utilizando os usuários do servidor Windows.

Agora você pergunta: para que isto?

Eu te respondo: atualmente os clientes da minha rede utilizam tanto 'Perfil Mandatory' quanto 'Perfil Móvel'. Esses perfis estão alocados em compartilhamentos no servidores Windows. Ou seja, quando um dos servidores Windows cair, o domínio continuará funcionando, pois os dois estão configurados para balancear carga; e na falta de um, o outro assume todo o domínio.

Isso funcionaria perfeitamente caso meus perfis fossem locais, pois ele necessitaria apenas de se logar no domínio e buscar o perfil no diretório local de cada cliente.

Entretanto, quando o perfil é móvel, ele já não consegue buscar tais perfis. Para resolver parcialmente o problema, todos os perfis serão migrados para o Servidor Linux, e é necessário então que ele reconheça as permissões e usuários do AD. Sendo assim, quando um dos servidores Windows cair, o domínio continuará funcionando de forma transparente aos usuários.

Pois bem, chega de história e vamos por a mão na massa.

Instalação - softwares requeridos

Pré-requisitos:
  • Partirei da premissa que já temos um Windows Server 2003 instalado e com AD funcionando normalmente, com seus perfis móveis e mandatórios perfeitamente configurados.
  • Linux Debian ou derivado, com o Samba instalado (detalhes da instalação do samba em LINK).
  • Estações Windows já cadastradas e logando no AD.

Pacotes a serem instalados:

Kerberos: instalar o pacote Kerberos User:

# apt-get install krb5-user

Configure o arquivo "/etc/krb5.conf", especificando o nome do domínio:

[libdefaults]
   default_realm = DOMINIO.BR
   krb4_config = /etc/krb.conf
   krb4_realms = /etc/krb.realms
   clockskew = 300
   kdc_timesync = 1
   ccache_type = 4
   forwardable = true
   proxiable = true
   v4_instance_resolve = false
   v4_name_convert = {
      host = {
         rcmd = host
         ftp = ftp
      }
      plain = {
         something = something-else
      }
   }
   fcc-mit-ticketflags = true
[realms]
   DOMINIO.BR = {
      kdc = 10.117.0.240
      admin_server = 10.117.0.240
      
   }

Um detalhe que deve ser observado, é que o Kerberos exige que o nome do domínio e servidores sejam escritos com LETRAS MAIÚSCULAS, conforme mostra o arquivo de configuração anterior.

Para testar se está sendo feito a autenticação no AD, digite o seguinte comando especificando um usuário qualquer do domínio e digite a senha:

# kinit Administrator

Caso os relógios dos servidores não estiverem sincronizados, aparecerá a seguinte mensagem de erro:
"Clock skew too great while getting initial credentials"

Para corrigir isso é necessário instalar um sistema de sincronização que mantenha os relógios dos Sistemas Operacionais envolvidos sincronizados. Como solução parcial, os relógios podem ser acertados manualmente para ficarem com no máximo um minuto de discrepância.

Esse valor pode ser configurado no arquivo "krb5.conf", adicionando o parâmetro "clockskew = 60", onde o valor numérico é a tolerância em segundos da diferença entre os clocks.

A melhor opção é sincronizar por meio do comando 'ntpdate' o horário exato com o controlador de domínio:

# apt-get install ntpdate
# ntpdate 10.117.0.240


Depois dos relógios devidamente sincronizados, o comando 'kinit' não retornará nenhuma mensagem de erro e nem de acerto, como se fosse um comando ignorado pelo Linux. Isto é um bom sinal, pois mostra que o servidor Linux autenticou perfeitamente com o usuário testado.
    Próxima página

Páginas do artigo
   1. Introdução e Instalação
   2. LDAP, Samba e Configurações
   3. Utilização e Considerações finais
Outros artigos deste autor

Ubuntu 12.04 - Integração com Active Directory do Windows 2008

Scilab 5.4.0 no Ubuntu 12.10 - Instalação e configuração

Criar um Pool de Conexão entre o GlassFish 3.1 e PostgreeSQL

Leitura recomendada

Instalação do Samba-3.6.1 + Kerberos + Winbind no Slackware 13.1.0

Configurando o Samba de maneira simples e funcional

Instalando Samba 4 com Domínio no CentOS 7

Enrolado para configurar o Samba? Chame o SWAT

Servidores Debian ou Ubuntu integrados ao AD com cid-tty

  
Comentários
[1] Comentário enviado por removido em 27/11/2011 - 23:01h

Legal o artigo !

[2] Comentário enviado por valterrezendeeng em 28/11/2011 - 09:59h

Muito BOM o Artigo !!!!

Parabens !!!!


[3] Comentário enviado por giovannikenpachi em 28/11/2011 - 22:16h

Detalhado e bem explicado.

Muito bom.

[4] Comentário enviado por vaping em 13/01/2012 - 10:51h

Legal o material, muito bem explicado.
Mas estou precisando manter as permissões adicionadas pelo Windos para os arquivos e pastas.
Sabe como posso fazer isso?

[5] Comentário enviado por fabioled em 13/01/2012 - 11:02h

Você queria replicar as permissões que existem atualmente no seu servidor Windows para o Servidor Samba, de forma automática.

Realmente nesse caso não abordei isso, pois foquei no reconhecimento do Samba aos usuários do AD Windows.
Creio eu que isso teria que ser manual, ou seja, criar os diretórios e pastas e conceder as devidas permissões no Samba da mesma forma que foi feito no Windows.
Vou pesquisar uma meneira de fazer isso automaticamente, mas acredito que não é possível, pois se fossemos fazer isso de Windows para Windows não funcionaria e teria que ser feito manualmente.

Pesquisa se achar uma maneira posta.

abraços

[6] Comentário enviado por diegodtl em 28/02/2012 - 18:51h

Muito bom, funcionou perfeitamente.

Só uma dúvida, como ficaria a configuração de uma única pasta compartilhada, dando permissão total a um usuário e só leitura ao um grupo?


[7] Comentário enviado por rccenteno em 11/09/2012 - 20:43h

Excelente artigo.

Mas como fica a permissão das pastas que serão compartilhadas no LINUX ( chown )?
Afinal não tem grupos e usuários do AD no Linux.

Att.

[8] Comentário enviado por jorgetrc em 30/05/2013 - 15:45h

Cara, muito bom...

me ajudou D+++

parabénsS...

abraço!

[9] Comentário enviado por Anikiles em 24/06/2016 - 11:55h

Bom dia, já segui esse teu tutorial e mais alguns encontrados aqui no portal e pela internet porém ainda não consigo acessar uma pasta do servidor Linux através da estação windows usando o usuário do AD sempre mostra acesso negado, somente quando utilizo um usuário criado no linux e no samba tenho acesso, estou usando o SAMBA 4.3.9 junto com o Ubuntu 15.10 poderia me dar uma força?

[10] Comentário enviado por Gabriela88 em 20/08/2019 - 01:07h

Boa noite..
Me ajudou bastante, mais estou com problemas referente a autenticacao no windows com os usuarios do AD. Da acesso negado, sera que precisa ser feito alguma outra configuracao?
Fico no aguardo

[11] Comentário enviado por EmanoelMarcos em 27/04/2021 - 10:43h


Tudo funciona, menos o getent passwd ou getent group, ele só retorna local e não do AD.

[12] Comentário enviado por fabioled em 27/04/2021 - 10:59h

Emanoelmarcos,
Tem bastante tempo que eu escrevi esse artigo, precisaria verificar o motivo, lembro que quando montei o cenário, todas os comandos de grupo retornavam correramente.

[13] Comentário enviado por EmanoelMarcos em 27/04/2021 - 15:56h




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts