Samba 4 - Active Directory Open Source - Ubuntu 14.04.4

Neste artigo quero mostrar como configurar o Samba 4 (AD) com o Ubuntu Server 14.04.4. Esta aplicação foi testada em ambiente virtualizado (VirtualBox, Vmware esxi) e fisicamente (servidor único). Ressalto que não conseguiria implementar a estabilidade que consegui sem os colaboradores da comunidade torture e davirodrigues.

[ Hits: 40.732 ]

Por: Perfil removido em 09/03/2016


Compilação e instalação do Samba 4.1.13



Vamos efetuar o download do arquivo:

# wget http://www.samba.org/samba/ftp/stable/samba-4.1.13.tar.gz

Vamos descompactar o arquivo:

tar -xf samba-4.1.13.tar.gz

Acesse o diretório:

cd samba-4.1.13/

Execute:

# ./configure

Após:

# make

Geralmente este procedimento demora.

Verá algo parecido no final:

'build' finished successfully (7m59.319s)

Depois:

# make install

Verá algo parecido no final:

'install' finished successfully (1m37.254s)

# /usr/local/samba/bin/samba-tool domain provision

Neste momento você está provisionando o domínio.

O Samba irá te fazer perguntas.

O padrão é o que está entre colchetes.

Vamos lá:

Realm [SEUDOMINIO.LOCAL]: (aperte enter como padrão)
Realm [SEUDOMINIO.LOCAL]: (aperte enter como padrão)
Server Role (dc, member, standalone) [dc]: (aperte enter como padrão)
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: (aperte enter como padrão)
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.100.3]:8.8.8.8 (digite 8.8.8.8)

Acima você pode perceber que ele detectou o DNS que você está usando (192.168.100.3). O 8.8.8.8 será um DNS externo (Google).

Administrator password: Senha@sua (informe a senha do usuário Administrator de domínio)

Após isso verá algo parecido:

A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              sdm01
NetBIOS Domain:        SEUDOMINIO
DNS Domain:            seudominio.local
DOMAIN SID:            S-1-5-21-631880342-2659944935-475803411


# /usr/local/samba/sbin/samba
# /usr/local/samba/bin/smbclient --version

Version 4.1.13

# /usr/local/samba/bin/smbclient -L localhost -U%

Verá uma saída parecida:

Domain=[SEUDOMINIO] OS=[Unix] Server=[Samba 4.1.13]

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

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

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

Se não deu erro, está tudo certo até aqui.

Vamos testar a autenticação:

# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'Senha@sua -c 'ls'

Deverá ver algo bem parecido:

Domain=[SEUDOMINIO] OS=[Unix] Server=[Samba 4.1.13]
  .                                   D        0  Tue Mar  1 13:51:05 2016
  ..                                  D        0  Tue Mar  1 13:51:11 2016

		46677 blocks of size 524288. 40994 blocks available

Vamos testar agora o DNS.

Faça backup do seu resolv.conf:

# cp /etc/resolv.conf /etc/resolv.conf.old

Altero o seu arquivo de DNS:

# vim /etc/resolv.conf

Adicione:

domain SEUDOMINIO.LOCAL
nameserver 127.0.0.1

Provavelmente irá ficar assim:

domain SEUDOMINIO.LOCAL
nameserver 127.0.0.1
nameserver 192.168.100.3
nameserver 8.8.8.8

ATENÇÃO: não retire nenhum DNS de seu resolv.conf, apenas adicione.

No máximo três DNS devem ser informados no resolv.conf.

Agora iremos testar o DNS:

# host -t SRV _ldap._tcp.seudominio.local.
_ldap._tcp.seudominio.local has SRV record 0 100 389 sdm01.seudominio.local.

# host -t SRV _kerberos._udp.seudominio.local.
_kerberos._udp.seudominio.local has SRV record 0 100 88 sdm01.seudominio.local.

# host -t A sdm01.seudominio.local.
sdm01.seudominio.local has address 192.168.100.87
sdm01.seudominio.local has address 192.168.0.1


Configurando o Kerberos:

# cp /usr/local/samba/share/setup/krb5.conf /etc/

Vamos editar o arquivo de configuração do Kerberos:

# vim /etc/krb5.conf

Vamos substituir o REALM pelo seu domínio.

${"SEUDOMINIO.LOCAL"}

Vai ficar assim:

[libdefaults]
        default_realm = ${"SEUDOMINIO.LOCAL"}
        dns_lookup_realm = false
        dns_lookup_kdc = true

Vamos testar o Kerberos:

# kinit administrator@SEUDOMINIO.LOCAL

Insira sua senha do administrator, que você colocou na criação do domínio.

Deverá aparecer algo assim:

warning: Your password will expire in 41 days on Ter 12 Abr 2016 13:51:09 BRT

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

Valid starting       Expires              Service principal
01-03-2016 15:05:34  02-03-2016 01:05:34  krbtgt/SEUDOMINIO.LOCAL@SEUDOMINIO.LOCAL
   renew until 02-03-2016 15:05:21


Se houve autenticação e o ticket foi gerado, está tudo ok com o kerberos.

Página anterior     Próxima página

Páginas do artigo
   1. Preparando o ambiente
   2. Compilação e instalação do Samba 4.1.13
   3. Iniciando o Samba 4 com o sistema
   4. Compartilhando pastas na rede
Outros artigos deste autor

Deface: A arte de desconfigurar sites

Configurando wireless no Ubuntu 7.04 e compartilhando a conexão

Xen - XL.cfg - Sintaxe da Configuração de Domínios - Parte I

Placas PCI x ISA-PNP

Software Livre: primeiras impressões

Leitura recomendada

Micro curso Samba

Política de segurança com o Samba

Samba + clamav - compartilhamento livre de vírus

Slackware 13 com Samba PDC completo

Autenticando Linux num PDC Samba com auto-montagem de unidade por usuários (sem usar LDAP)

  
Comentários
[1] Comentário enviado por removido em 09/03/2016 - 13:50h

Segue correção de uma linha no meio da página 2 do artigo:

/usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'Senha@sua' -c 'ls'

Estava faltando uma aspas simples.

[2] Comentário enviado por duanioliveira em 09/03/2016 - 17:00h

Somente como um adendo, nas primeiras vezes em que fui implementar o Samba 4, percebi que ele sempre dava problema quando havia muito trafego ou muito acesso simultâneo.
Depois de pesquisar e verificar, notei que a partição /run/lock ficava sempre quase cheia, e quando chegava ao 100% ela travava o Samba.
Então indico a seguinte adição no fstab

tmpfs /run/lock tmpfs rw,noexec,nosuid,nodev,size=52428800 0 0
afim de aumentar a partição e não ocorrer mais esse travamento.
Muito bom artigo!

Abraço

[3] Comentário enviado por slack_history em 10/03/2016 - 08:30h


[2] Comentário enviado por duanioliveira em 09/03/2016 - 17:00h

Somente como um adendo, nas primeiras vezes em que fui implementar o Samba 4, percebi que ele sempre dava problema quando havia muito trafego ou muito acesso simultâneo.
Depois de pesquisar e verificar, notei que a partição /run/lock ficava sempre quase cheia, e quando chegava ao 100% ela travava o Samba.
Então indico a seguinte adição no fstab

tmpfs /run/lock tmpfs rw,noexec,nosuid,nodev,size=52428800 0 0
afim de aumentar a partição e não ocorrer mais esse travamento.
Muito bom artigo!

Abraço


Obrigado pela dica duanioliveira .
Abraço.

[4] Comentário enviado por al0ne_battousai em 11/03/2016 - 07:07h

Somente como comentário a esse excelente artigo, eu pessoalmente não gosto de usar o DNS interno do Samba por dois motivos, personalização ( cache, views, proteção, etc) e capacidade de atender a grande demanda. Mas também por conta dele não suportar, nativamente, DNS reverso e consultas recursivas, infelizmente.

Sempre condiciono minha instalação com o Bind e o DHCP ( quando necessário) no Samba 4 para uma melhor experiência de uso.

Parabéns pelo artigo

[5] Comentário enviado por slack_history em 11/03/2016 - 11:37h


[4] Comentário enviado por al0ne_battousai em 11/03/2016 - 07:07h

Somente como comentário a esse excelente artigo, eu pessoalmente não gosto de usar o DNS interno do Samba por dois motivos, personalização ( cache, views, proteção, etc) e capacidade de atender a grande demanda. Mas também por conta dele não suportar, nativamente, DNS reverso e consultas recursivas, infelizmente.

Sempre condiciono minha instalação com o Bind e o DHCP ( quando necessário) no Samba 4 para uma melhor experiência de uso.

Parabéns pelo artigo


Obrigado pela sua opinião al0ne_battousai.

[6] Comentário enviado por Beastie em 07/04/2016 - 10:21h

Ótimo artigo amigo. Parabéns!
--------------------------------------------------------------------------------------------------
Mundo FreeBSD - Conteúdo 100% FreeBSD
http://mundofreebsd.com.br/
--------------------------------------------------------------------------------------------------

[7] Comentário enviado por Rbrtto em 20/04/2016 - 11:07h

Alguém Poderia me ajudar. sou iniciante em linux.

Na Hora de "testar o Kerberos" estar aparecendo o seguinte "kinit: KDC reply did not match expectations while getting initial credentials" . Obs: estou inserindo a mesma senha do administrator, que usei na criação do domínio, mas mesmo assim continua aparecendo isso. "kinit: KDC reply did not match expectations while getting initial credentials".




[8] Comentário enviado por slack_history em 20/04/2016 - 16:10h


[7] Comentário enviado por Rbrtto em 20/04/2016 - 11:07h

Alguém Poderia me ajudar. sou iniciante em linux.

Na Hora de "testar o Kerberos" estar aparecendo o seguinte "kinit: KDC reply did not match expectations while getting initial credentials" . Obs: estou inserindo a mesma senha do administrator, que usei na criação do domínio, mas mesmo assim continua aparecendo isso. "kinit: KDC reply did not match expectations while getting initial credentials".






Por favor, mostra a saída de # cat /etc/krb5.conf

[9] Comentário enviado por Rbrtto em 20/04/2016 - 16:48h

A saída de # cat /etc/krb5.conf

[libdefaults]
default_realm = ${house.local}
dns_lookup_realm = false
dns_lookup_kdc = true

[10] Comentário enviado por slack_history em 20/04/2016 - 17:16h


[9] Comentário enviado por Rbrtto em 20/04/2016 - 16:48h

A saída de # cat /etc/krb5.conf

[libdefaults]
default_realm = ${house.local}
dns_lookup_realm = false
dns_lookup_kdc = true



Faltou as aspas e deixar o domain maiúsculo.

Deixe como o abaixo e teste novamente.

[libdefaults]
default_realm = ${"HOUSE.LOCAL"}
dns_lookup_realm = false
dns_lookup_kdc = true

[11] Comentário enviado por vinnysquincaglia em 10/06/2016 - 19:49h

preciso ter um dns na rede para fazer ele funcionar? ou pode ser o dns padrao do roteador da minha rede tipo 192.168.1.1.

a senha precisa ser complexa?

qualquer computador consegue gerenciar tipo tenho um ruindows 7 consigo gerenciar um computador com ruindows 10?


[12] Comentário enviado por removido em 11/07/2016 - 16:01h


[11] Comentário enviado por vinnysquincaglia em 10/06/2016 - 19:49h

preciso ter um dns na rede para fazer ele funcionar? ou pode ser o dns padrao do roteador da minha rede tipo 192.168.1.1.

a senha precisa ser complexa?

qualquer computador consegue gerenciar tipo tenho um ruindows 7 consigo gerenciar um computador com ruindows 10?




vinnysquincaglia
Sim. O samba 4 é exigente referente ao Dns.
Pode ser o dns do teu roteador sim.
A senha do administrator precisa ser complexa sim.
Você consegue gerenciar com Windows 7 , 8, 10 e edições server instalando o RSAT ( Administração remota de servidores) .
OBS: No caso do Windows Server , apenas habilite a função de Administração remota de Servidor.

[13] Comentário enviado por lucashlx em 21/09/2016 - 15:53h

Olá...seu samba4 as atualizações dinâmicas via DNS funciona normalmente ? no meu não tenho que inserir manualmente os registros A.

[14] Comentário enviado por wiliamtakashi em 28/06/2017 - 13:51h

Primeiramente gostaria de agradecer, nunca havia criado um ad antes, e com este artigo fui capaz de criar um com sucesso.
Aproveitando, há algumas partes do artigo em que tive problemas, e gostaria de citar aqui a solução que encontrei para cada caso, ajudando outros que venham a passar pelas mesmas dificuldades:

- Na preparação do ambiente, o libgnutls-dev já não estava presente no repositório do Debian 8.8, sistema que utilizei, por isso tive que instalar o libgnutls28-dev no lugar;

- Na instalação e configuração do SAMBA, tive que adicionar as linhas abaixo no arquivo /etc/krb5.conf, substituindo os IPs pelo IP do computador com SAMBA instalado para que o teste de DNS funcionasse:

[realms]
SEU.DOMINIO = {
kdc = 172.16.22.3
admin_server = 172.16.22.3
}

-Ainda na instalação e configuração do SAMBA, como já citado em comentários anteriores, está faltando uma aspa simples no teste de autenticação, o correto seria assim:

/usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'Senha@sua' -c 'ls'

[15] Comentário enviado por aeps em 24/07/2017 - 10:17h

Bom dia,

Poderiam me ajudar com uma duvida, acredito que meu problema esteja no DNS.
Instalado e configurado o servidor não pinga mais por exemplo no uol.com.br, Uso um roteado que fornece acesso a internet.
Como verificar onde esta o erro e possível correção?

[16] Comentário enviado por clzera em 15/03/2018 - 14:06h


[15] Comentário enviado por aeps em 24/07/2017 - 10:17h

Bom dia,

Poderiam me ajudar com uma duvida, acredito que meu problema esteja no DNS.
Instalado e configurado o servidor não pinga mais por exemplo no uol.com.br, Uso um roteado que fornece acesso a internet.
Como verificar onde esta o erro e possível correção?


Você pode estar tendo um problema que tive também, bom pelo menos eu deleto o arquivo resolv.conf, crio na mão e em seguida uso o comando chattr +i resolv.conf, assim quando reinicia não muda o arquivo.

Aprendi isso nesse link https://www.vivaolinux.com.br/dica/Bloquear-modificacoes-em-um-arquivo-com-chattr


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts