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: 37.658 ]

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%'p@ssw0rd' -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 administrator@TESTESAMBA.COM.BR
Password for administrator@TESTESAMBA.COM.BR:
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: administrator@TESTESAMBA.COM.BR

Valid starting     Expires            Service principal
09/04/13 16:11:36  09/05/13 02:11:36  krbtgt/TESTESAMBA.COM.BR@TESTESAMBA.COM.BR
 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

Configurando Java e Mozilla no Debian Sarge

Configurando o Samba

Samba: Servidor de impressão e introdução a PDC (Primary Domain Controller)

Adicionando facilidades ao Samba

Servidores Debian ou Ubuntu integrados ao AD com cid-tty

  
Comentários
[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 ?

[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 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 ?

[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts