Samba 4 - Configurado para reportar a diferentes redes

Neste artigo, abordarei a instalação do Samba 4 para ser utilizado como um Active Directory Domain Controller. Porém, o DNS interno do Samba 4 não permite ao mesmo reportar-se a diferentes redes. Sendo assim, faz-se necessário a configuração de um DNS externo, para que computadores de diferentes redes possam ingressar no AD do Samba 4.

[ Hits: 39.120 ]

Por: Janssen dos Reis Lima em 16/09/2013 | Blog: http://janssenlima.blogspot.com


Configuração



Vamos configurar o domínio para o Samba 4:

Execute:

# samba-tool domain provision

Responda às opções:
  • Realm: TESTESAMBA.COM.BR
  • Domain [TESTESAMBA]: Tecle Enter
  • Server Role (dc, member, standalone) [dc]: Tecle Enter
  • DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
  • Administrator password: Digite a senha do admin do Samba
  • Retype password: Repetir a senha

E aguarde a configuração terminar.

Com essa configuração, o Samba 4 irá solicitar a resolução de nomes para o servidor BIND, rodando em seu próprio servidor, e o BIND irá encaminhar as requisições para o servidor principal da rede (essa configuração será realizada a seguir).

Ao final da execução do comando anterior, veremos as seguintes informações:
 Once the above files are installed, your Samba4 server will be ready to use
 Server Role:       active directory domain controller
 Hostname:          SAMBA-4
 NetBIOS Domain:    TESTESAMBA
 DNS Domain:        testesamba.com.br
 DOMAIN SID:        S-1-5-21-1472350804-1383287446-2542997206


Configuramos o arquivo "/etc/named.conf", incluindo na seção options o seguinte conteúdo:

forwarders {192.167.10.51;};

...que é o IP do servidor DNS principal da rede.

Até aqui, as configurações foram realizadas no no próprio servidor do Samba. Agora, precisamos fazer algumas configurações no servidor DNS principal.

No arquivo "/etc/named.conf", devemos incluir a zona do domínio do Samba:

zone "testesamba.com.br" {
       type master;
       file "data/samba-4.db";
};

Observe que informamos que o arquivo de configuração da zona testesamba.com.br é samba-4.db, que criaremos dentro do diretório "/var/named/data/".

Este arquivo deverá ter o seguinte conteúdo:

$TTL    86400
$ORIGIN testesamba.com.br.
@               IN SOA  localhost.     root.testesamba.com.br. (
                                       2013300777      ; serial
                                       3H              ; refresh
                                       15M             ; retry
                                       1W              ; expiry
                                       1D )            ; minimum
@                       IN NS          samba-4
samba-4         IN A            192.167.0.251
_kerberos._tcp.testesamba.com.br.      IN      SRV     0 100 88 samba-4
_ldap._tcp.testesamba.com.br.          IN      SRV     0 100 389 samba-4
_kpasswd._udp.testesamba.com.br.       IN      SRV     0 0 464 samba-4

Devemos também, incluir o servidor do Samba na zona reversa do DNS. O arquivo da configuração da zona reversa do meu servidor é "/var/named/rev/0.167.192.db":

251     IN      PTR     samba-4.testesamba.com.br.

Reinicie o serviço do BIND no servidor DNS principal e também no servidor do Samba:

# service named start

Tudo certo com o DNS. Agora, podemos iniciar o Samba e fazer alguns testes (voltar a executar os comandos no servidor do Samba, pois as configurações no DNS principal terminaram).

Execute:

# samba

Pode usar o comando ps aux | grep samba, para verificar se os processos estão em execução.

Agora executamos os seguintes comandos, para verificar o funcionamento do Samba.

Para listar os compartilhamentos do Samba:

# smbclient -L localhost -U%
Domain=[TESTESAMBA] OS=[Unix] Server=[Samba 4.0.9]

 Sharename       Type      Comment
 ---------       ----      -------
 netlogon        Disk
 sysvol          Disk
 IPC$            IPC       IPC Service (Samba 4.0.9)
Domain=[TESTESAMBA] OS=[Unix] Server=[Samba 4.0.9]

 Server               Comment
 ---------            -------

 Workgroup            Master
 ---------            -------

Para testar a autenticação no compartilhamento netlogon do Samba:

# smbclient //samba-4.testesamba.com.br/netlogon -UAdministrator%'[email protected]' -c 'ls'
Domain=[TESTESAMBA] OS=[Unix] Server=[Samba 4.0.9]

  .                            D        0  Wed Sep  4 15:36:58 2013
  ..                           D        0  Wed Sep  4 15:37:35 2013

   52726 blocks of size 131072. 38573 blocks available


Para checar as configurações do arquivo "smb.conf":

# testparm

Após os testes, podemos continuar com a configuração do domínio.

Vamos ajustar a configuração do Kerberos. Renomeie o arquivo padrão de configuração:

# mv /etc/krb5.conf /etc/krb5.conf.old

Copie o arquivo criado pelo Samba para o nosso domínio:

# ln -s /usr/local/samba/private/krb5.conf /etc/

O arquivo "krb5.conf" deve ter o seguinte conteúdo:

[libdefaults]
        default_realm = TESTESAMBA.COM.BR
        dns_lookup_realm = false
        dns_lookup_kdc = true

Iniciamos um ticket do Kerberos para o usuário Administrator:

# kinit [email protected]
Password for [email protected]:
Warning: Your password will expire in 41 days on Wed Oct 16 16:05:41 2013


Para verificarmos o ticket gerado:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting     Expires            Service principal
09/04/13 16:11:36  09/05/13 02:11:36  krbtgt/[email protected]
 renew until 09/05/13 16:11:32


Para testar a autenticação no Samba utilizando Kerberos, executamos:

# smbclient -k //samba-4.testesamba.com.br/netlogon -c 'ls'
Domain=[TESTESAMBA] OS=[Unix] Server=[Samba 4.0.9]
  .                                   D        0  Wed Sep  4 16:05:22 2013
  ..                                  D        0  Wed Sep  4 16:05:50 2013

  52726 blocks of size 131072. 38572 blocks available


Para testar se o DNS está funcionando corretamente, execute o seguinte comando:

Obs.: o comando abaixo, realiza o teste para uma consulta ao serviço LDAP.

# host -t SRV _ldap._tcp.testesamba.com.br.
_ldap._tcp.testesamba.com.br has SRV record 0 100 389 samba-4.testesamba.com.br.


Se o resultado do comando acima for diferente, por exemplo, conter no final: not found: 3(NXDOMAIN), alguma coisa errada tem com o DNS, tanto no servidor do Samba 4, como também no servidor DNS principal.

Com isso, você já pode ingressar com os computadores de outras sub-redes no servidor do Samba 4, pois as requisições de resolução de nome para o Samba serão encaminhadas por um servidor DNS central, que irá fazer o tratamento correto.


Artigo também publicado em:
Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalação do Samba 4
   3. Configuração
Outros artigos deste autor

Phoronix Test Suite - Um framework para benchmark

Monitorando interface IPMI

Leitura recomendada

Implementando um servidor de domínio

Instalando e Configurado a ferramenta Swat no Debian

Migrando perfis de usuário AD para o seu servidor Samba em 2 etapas

Slackware como controlador de domínio

Scripts no SAMBA

  
Comentários
[1] Comentário enviado por removido em 16/09/2013 - 09:43h

Gostei do artigo, parabéns pela contribuição !

Tenho uma pergunta, samba4 funciona com dns externo, sem necessidade de uso do dns que já vêm integrado ao próprio samba4 ?

[2] Comentário enviado por brunovictor86 em 16/09/2013 - 13:13h

Otimo post.

Tive este mesmo problema, porem resolvi colocando allow-query { 192.168.1.0/24} no named.conf.options

[3] Comentário enviado por viniciusraupp em 16/09/2013 - 14:05h

Da maneira que você configurou se consegue utilizar o recurso do Samba4 de atualização automática do DNS ?
Bom tutorial, parabéns.

[4] Comentário enviado por janssenreis em 16/09/2013 - 14:37h


[1] Comentário enviado por eabreu em 16/09/2013 - 09:43h:

Gostei do artigo, parabéns pela contribuição !

Tenho uma pergunta, samba4 funciona com dns externo, sem necessidade de uso do dns que já vêm integrado ao próprio samba4 ?


Funciona sim. Foi justamente isso que eu precisei.

[5] Comentário enviado por janssenreis em 16/09/2013 - 14:39h


[2] Comentário enviado por brunovictor86 em 16/09/2013 - 13:13h:

Otimo post.

Tive este mesmo problema, porem resolvi colocando allow-query { 192.168.1.0/24} no named.conf.options



Usando o DNS interno do Samba ou o Bind?

[6] Comentário enviado por janssenreis em 16/09/2013 - 14:42h


[3] Comentário enviado por viniciusraupp em 16/09/2013 - 14:05h:

Da maneira que você configurou se consegue utilizar o recurso do Samba4 de atualização automática do DNS ?
Bom tutorial, parabéns.


Sim, eu utilizo a ferramente samba-tool com os parâmetros 'dns update'. Funciona perfeitamente.

[7] Comentário enviado por removido em 16/09/2013 - 15:01h


[4] Comentário enviado por janssenreis em 16/09/2013 - 14:37h:


[1] Comentário enviado por eabreu em 16/09/2013 - 09:43h:

Gostei do artigo, parabéns pela contribuição !

Tenho uma pergunta, samba4 funciona com dns externo, sem necessidade de uso do dns que já vêm integrado ao próprio samba4 ?

Funciona sim. Foi justamente isso que eu precisei.



Obrigado pela resposta. então dessa forma só precisa do dns principal da rede, nem precisa redirecionar como foi feito no artigo, correto ? poderia ser escolhida a opção BIND9_FLATFILE, certo ?

[8] Comentário enviado por brunovictor86 em 16/09/2013 - 16:46h


[5] Comentário enviado por janssenreis em 16/09/2013 - 14:39h:


[2] Comentário enviado por brunovictor86 em 16/09/2013 - 13:13h:

Otimo post.

Tive este mesmo problema, porem resolvi colocando allow-query { 192.168.1.0/24} no named.conf.options


Usando o DNS interno do Samba ou o Bind?


Usando interno BIND9_DLZ, vc colcoa o Bind para usar o samba normal e quem bloqueia é o próprio Bind, ai é so liberar a consulta da query.

[9] Comentário enviado por janssenreis em 16/09/2013 - 19:44h


[7] Comentário enviado por eabreu em 16/09/2013 - 15:01h:


[4] Comentário enviado por janssenreis em 16/09/2013 - 14:37h:


[1] Comentário enviado por eabreu em 16/09/2013 - 09:43h:

Gostei do artigo, parabéns pela contribuição !

Tenho uma pergunta, samba4 funciona com dns externo, sem necessidade de uso do dns que já vêm integrado ao próprio samba4 ?

Funciona sim. Foi justamente isso que eu precisei.


Obrigado pela resposta. então dessa forma só precisa do dns principal da rede, nem precisa redirecionar como foi feito no artigo, correto ? poderia ser escolhida a opção BIND9_FLATFILE, certo ?



Tanto o BIND9_DLZ como o BIND9_FLATFILE o controle do DNS fica a cargo do BIND. A Diferença é que usando BIND9_FLATFILE é o samba que irá gerar os arquivos de configuração. Com essa configuração eu não testei, prefiro direcionar para o servidor configurado por mim, mesmo porque utilizo configurações para outros serviços, não somente para o Samba.

[10] Comentário enviado por janssenreis em 16/09/2013 - 19:50h


[8] Comentário enviado por brunovictor86 em 16/09/2013 - 16:46h:


[5] Comentário enviado por janssenreis em 16/09/2013 - 14:39h:


[2] Comentário enviado por brunovictor86 em 16/09/2013 - 13:13h:

Otimo post.

Tive este mesmo problema, porem resolvi colocando allow-query { 192.168.1.0/24} no named.conf.options


Usando o DNS interno do Samba ou o Bind?

Usando interno BIND9_DLZ, vc colcoa o Bind para usar o samba normal e quem bloqueia é o próprio Bind, ai é so liberar a consulta da query.



O BIND9_DLZ não é interno. Leia http://wiki.samba.org/index.php/DNS para mais informações.

[11] Comentário enviado por jaelcio em 17/09/2013 - 17:41h

Estou tentando seguir o seu tutorial mas fiquei com duvidas sobre o bind, porque não achei os arquivos "/etc/named.conf" nem o "/var/named/data/". O "named.conf" encontrei dentro da pasta "/etc/bind/" mas não sei se altero ou crio o arquivo "/etc/named.conf" e o "/var/named/data/". Poderia me esclarer a questão dos arquivos do bind onde vai cada parâmentro que você demonstrou no tutorial.

OBS: estou usando Debian Wheezy 7.1.

[12] Comentário enviado por jorgevisentini em 19/09/2013 - 17:10h

Tentei fazer a instalação, mas na hora de rodar o ./configure, já começa com um aviso informando que o python está desatualizado, e no meio do ./make, da uns erros...

Resumindo, na hora de ingressar no domínio, da erro de python...

Qual a versão do Python você utilizou?


Aqui estou usando o CentOS 6.4 x86_x4 e Python 2.6.6

[13] Comentário enviado por morati em 22/03/2014 - 09:51h

Prezado,

Estou enfretando o mesmo problema.

tenho uma rede local e uma DMZ. Segui seus passos , porém coloquei o PDC e o DNS no mesmo seguimento na DMZ,
não deu certo. O PDC e o DNS tem que ficar em redes diferentes? Poderia postar a fonte desse post?

meu allow query esta any, toda rede pode consultar ele. muito estranho!

[14] Comentário enviado por morati em 05/04/2014 - 14:56h

Essas entradas no DNS estão incompletas..

[15] Comentário enviado por tjferreira em 06/09/2016 - 14:49h


[6] Comentário enviado por janssenreis em 16/09/2013 - 14:42h


[3] Comentário enviado por viniciusraupp em 16/09/2013 - 14:05h:

Da maneira que você configurou se consegue utilizar o recurso do Samba4 de atualização automática do DNS ?
Bom tutorial, parabéns.

Sim, eu utilizo a ferramente samba-tool com os parâmetros 'dns update'. Funciona perfeitamente.


Olá!

Configurei o Samba 4 DC com um DNS Externo e estou com o seguinte erro no dns_update:

tkey query failed: GSSAPI error: Major = Unspecified GSS failure. Minor code may provide more information, Minor = Server not found in Kerberos database.

Já dei permissão pro Bind acessar o arquivo keytab. Antes de apontar para o DNS Externo não tinha esse erro.

[16] Comentário enviado por silvioluiz em 24/11/2016 - 11:21h

Muito obrigado pela contribuição, me ajudou muito.
Tenho uma dúvida.
Trabalho com samba AD ja faz um tempo, mas nunca configurei o kerberos. Instalo, mas não o configuro, e fuciona normalmente.
Qual a diferença de configura-lo e não configura-lo?
Teria algum problema configura-lo em um ambiente já em produção?
Alguém poderia me esclarecer?

Obrigado!


Contribuir com comentário