Após muitas pesquisas na Internet e muitas frustrações com artigos que prometem transformar o Samba 4 como controlador de domínio, resolvi criar este artigo. Percebi que muitos usuários do Viva o Linux buscavam também soluções e tutoriais capazes de satisfazer esta necessidade. Mesmo este sendo o meu primeiro artigo, espero que ajude a todos que buscam um tutorial completo sobre o assunto.
Neste artigo estarei passando os passos para compilar o Samba 4 como um PDC no Debian.
O Samba 4 está em sua versão estável, o que me fez criar este tutorial de instalação e configuração como controlador de domínio. Utilizei a última versão estável que já está disponível para download.
O Samba 4 implementa um ambiente igual ao Active Directory da Microsoft, então, qualquer administrador Windows pode, facilmente, administrar o domínio. Neste caso envolvendo 5 serviços, como o próprio AD:
Alguns pacotes adicionais foram colocados, como Vim, o MC e servidor DHCP. Caso não precise de um servidor deste tipo, não há necessidade de instalá-lo.
4. Configurar o sistema de arquivos para suportar acl e attr:
[1] Comentário enviado por cruzeirense em 17/01/2013 - 14:51h
Bom artigo.
Acrescentando algumas dicas:
1-É possível utilizar o servidor DNS que acompanha o samba4. Ele é instalado automáticamente.
2-Para cadastrar um usuário no domínio você terá que respeitar as regras de validação de senha do servidor. Para mudar essas regras utilize os seguintes comandos:
Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):
/usr/local/samba/bin/samba-tool domain passwordsettings set complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-length=4
Mudar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-age=4
Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set max-pwd-age=30
Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)
/usr/local/samba/bin/samba-tool domain passwordsettings set history-length=5
3 - Para mudar a senha de um usuário do domínio dentro do windows xp basta logar com o usuário, pressionar ctrl+alt+del e clicar em alterar senha.
Estou com o samba4 em um debian x64 a quase um mês e está funcionando perfeitamente. Ele funciona também como controle de acesso a internet (squid) integrado ao diretório (inclusive buscando os grupos) e também o acesso aos arquivos compartilhados. Funciona também como servidor de autenticação do nosso sistema interno.
[4] Comentário enviado por viniciusraupp em 18/01/2013 - 19:01h
Ótimo tutorial tche.
Abaixo um link de mais entradas no DNS, isto se não usar o dns interno do samba4, acho que são opcionais já que as descritas no tutorial já funcionam: https://wiki.samba.org/index.php/Samba4/DNS
Também vale lembrar que ao configurar o bind9 com views nas zonas, é necessário colocar em todas as zonas, não apenas na "external" como representada no tutorial.
[5] Comentário enviado por dtux em 21/01/2013 - 08:46h
Já testei mto o Samba4, e nos teste ele está totalmente pronto para produção, já testei com servidor de e-mail, proxy, autenticação mista, meu TCC foi baseado nele, sua integração com outra plataformas (AD M$) está OK, podemos fazer redundância entre outras coisas.
[6] Comentário enviado por deividpilla em 22/01/2013 - 14:27h
Ótimo tutorial, bem explicado.
Mas estou com o seguinte problema ao iniciar o samba, ele inicia por no log.samba, consta:
/usr/local/samba/sbin/samba_dnsupdate: couldn't get address for 'domain.local': not found
E ao rodar o comando "/usr/local/samba/sbin/samba_dnsupdate --verbose":
couldn't get address for 'domain.com': not found
Failed nsupdate: 1
Calling nsupdate for SRV _gc._tcp.default-first-site-name._sites.domain.local samba-dc.domain.loca 3268
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
_gc._tcp.default-first-site-name._sites.domain.local. 900 IN SRV 0 100 3268 samba-dc.domain.local.
couldn't get address for 'domain.local': not found
Failed nsupdate: 1
Failed update of 17 entries
Está tudo funcionando, apenas o update de DNS que está com erro aparentemente.
[9] Comentário enviado por viniciusraupp em 23/01/2013 - 14:41h
Deividpilla, você esta usando o dns interno do samba4 ou o bind9 externo ? se for externo será necessário fazer alguns ajustes como atualizar pra uma versão mais nova >= 9.8.0 e acrescentar um include no named.conf https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO#DNS_Server
Se for o interno, não é necessário configurar nada mais além que o arquivo resolv.conf e hosts descritos no tutorial.
[6] Comentário enviado por deividpilla em 22/01/2013 - 14:27h:
Ótimo tutorial, bem explicado.
Mas estou com o seguinte problema ao iniciar o samba, ele inicia por no log.samba, consta:
/usr/local/samba/sbin/samba_dnsupdate: couldn't get address for 'domain.local': not found
E ao rodar o comando "/usr/local/samba/sbin/samba_dnsupdate --verbose":
couldn't get address for 'domain.com': not found
Failed nsupdate: 1
Calling nsupdate for SRV _gc._tcp.default-first-site-name._sites.domain.local samba-dc.domain.loca 3268
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
_gc._tcp.default-first-site-name._sites.domain.local. 900 IN SRV 0 100 3268 samba-dc.domain.local.
couldn't get address for 'domain.local': not found
Failed nsupdate: 1
Failed update of 17 entries
Está tudo funcionando, apenas o update de DNS que está com erro aparentemente.
[10] Comentário enviado por r.garcia em 23/01/2013 - 15:44h
Configurei o Samba4 em VM e depois encontrei esse artigo. Utilizei o DNS interno do Samba. Acho que tá bacana, só penso que facilitaria integrar as ferramentas do Windows também para criação de usuários, visto que o administrador precisa se logar no servidor onde está o Samba e executar o comando /usr/local/samba/bin/samba-tool user add USERNAME (o que também não é o fim do mundo, só para administradores Windows que são preguiçosos...). Com excessão da criação de usuários, eu consegui criar grupos e OUs, aplicar GPOs, script de logon, etc, pelas ferramentas de administração remota do Windows. Como foi com pouquíssimos usuários, a performance foi ótima. Quando criamos as GPOs, o Windows às vezes demora para aplicar, com o Samba4 como AD DC a aplicação foi muito rápida. Enfim, ficou muito bacana.
Depois de instalado basta acessar as ferramentas e criar seus usuários no modo gráfico.
Para mim funcionou perfeitamente.
()s
Renato
[10] Comentário enviado por r.garcia em 23/01/2013 - 15:44h:
Configurei o Samba4 em VM e depois encontrei esse artigo. Utilizei o DNS interno do Samba. Acho que tá bacana, só penso que facilitaria integrar as ferramentas do Windows também para criação de usuários, visto que o administrador precisa se logar no servidor onde está o Samba e executar o comando /usr/local/samba/bin/samba-tool user add USERNAME (o que também não é o fim do mundo, só para administradores Windows que são preguiçosos...). Com excessão da criação de usuários, eu consegui criar grupos e OUs, aplicar GPOs, script de logon, etc, pelas ferramentas de administração remota do Windows. Como foi com pouquíssimos usuários, a performance foi ótima. Quando criamos as GPOs, o Windows às vezes demora para aplicar, com o Samba4 como AD DC a aplicação foi muito rápida. Enfim, ficou muito bacana.
Depois de instalado basta acessar as ferramentas e criar seus usuários no modo gráfico.
Para mim funcionou perfeitamente.
()s
Amigo no caos nesta ferramenta eu posso configurar por exemplo GPO para acesso a Terminal Server e coisas do tipo? Pergunto isso pois tenho um servidor 2003 Server com o TS e estou usando usuário locais pois não tenho AD e meus usuários estão configurados apenas para acessar 1 aplicação e não o desktop todo pelo TS.
[14] Comentário enviado por dbbrito em 27/01/2013 - 14:25h
Parabéns pelo Tutorial: estou fazendo em Centos6 (ext4) mas ele da um erro de ACL, mas faço igual você citou no etc/fstab mas da o erro, será que no centos 6 é diferente? o erro é:
Provision failed - ProvisioningError: Your filesystem or build does not support posix ACLs, which s3fs requires
[16] Comentário enviado por GleysonLF em 29/01/2013 - 15:42h
Estou com um pequeno problema... depois de ler muita documentação e apanhar muito consegui configurar tudo.
No entanto, a executar o comando "samba -i -M single" estou recebendo a seguinte mensagem:
samba version 4.1.0pre1-GIT-e104e5a started.
Copyright Andrew Tridgell and the Samba Team 1992-2013
samba: using 'single' process model
/usr/local/samba/sbin/samba_dnsupdate: response to GSS-TSIG query was unsuccessful
.
.
.
/usr/local/samba/sbin/samba_dnsupdate: response to GSS-TSIG query was unsuccessful
../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_OBJECT_NAME_COLLISION
[17] Comentário enviado por cruzeirense em 30/01/2013 - 11:53h
Prezado Gleyson,
No computador que você instalou o samba já tinha o servidor DNS instalado? Se não, sugiro que você reinstale o samba utilizando o DNS interno dele. Funciona sem problemas e já está tudo configurado.
[18] Comentário enviado por brunovictor86 em 30/01/2013 - 14:02h
Estou com uma duvida, fiz a intalação e funcionou normal, agora estou tentando configurar a sincronização de um serviço de impressão via ldap no ad do samba4, mas não consigo, será que terei que instalar o slapd ldap-utils, segue a conf para sync.
base dn = DC=dominio,DC=com,DC=br
admin dn = DC=administrator,DC=dominio,DC=com,DC=br
[21] Comentário enviado por Alex Resende em 30/01/2013 - 17:18h
estou recebendo o seguinte erro
samba version 4.0.1 started.
Copyright Andrew Tridgell and the Samba Team 1992-2012
samba: using 'single' process model
Failed to listen on 0.0.0.0:53 - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED
Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED
task_server_terminate: [dns failed to setup interfaces]
/usr/local/samba/sbin/samba_dnsupdate: Traceback (most recent call last):
/usr/local/samba/sbin/samba_dnsupdate: File "/usr/local/samba/sbin/samba_dnsupdate", line 507, in <module>
/usr/local/samba/sbin/samba_dnsupdate: get_credentials(lp)
/usr/local/samba/sbin/samba_dnsupdate: File "/usr/local/samba/sbin/samba_dnsupdate", line 121, in get_credentials
/usr/local/samba/sbin/samba_dnsupdate: creds.get_named_ccache(lp, ccachename)
/usr/local/samba/sbin/samba_dnsupdate: RuntimeError: kinit for DEBIANTESTE$@DEFINE failed (Cannot contact any KDC for requested realm)
/usr/local/samba/sbin/samba_dnsupdate:
../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_ACCESS_DENIED
[22] Comentário enviado por noir em 01/02/2013 - 11:07h
Boa Tarde Galera,
Seguinte consegui instalar de boa a maquina entra no dominio tranquilo com o windows xp.
agora como faço para criar os compartilhamentos ? tipo eu entro no smb.conf faço ele lah.
soh que os usuarios não tem direitos para acessar as pastas. no meu caso eu criei um grupo contabilidade e apenas os usuarios que estao no grupo contabilidade podem ter acesso a essa pasta.
no samba3 eu colocava o servidor pra autenticar no openldap e assim usava os grupos criados no ldap como donos das pastas.
[23] Comentário enviado por gleysonlf em 02/02/2013 - 16:36h
Ola amigos... depois de muita luta consegui!
Me deparei com um erro de permissão de acesso que parecia nomino curioso pois tinha dados todas as permissões possiveis.
Acontece que fiz minha instalação no Ubuntu LTS 12.04.1 sendo necessária uma alteração no "apparmor" para que ele permitisse a utilização das libs do Samba para atualizar o Bind.
[24] Comentário enviado por viniciusraupp em 03/02/2013 - 22:17h
[22] Comentário enviado por noir em 01/02/2013 - 11:07h:
Boa Tarde Galera,
Seguinte consegui instalar de boa a maquina entra no dominio tranquilo com o windows xp.
agora como faço para criar os compartilhamentos ? tipo eu entro no smb.conf faço ele lah.
soh que os usuarios não tem direitos para acessar as pastas. no meu caso eu criei um grupo contabilidade e apenas os usuarios que estao no grupo contabilidade podem ter acesso a essa pasta.
no samba3 eu colocava o servidor pra autenticar no openldap e assim usava os grupos criados no ldap como donos das pastas.
[28] Comentário enviado por lucashlx em 06/03/2013 - 17:54h
dbbrito, vc deve está usando uma versão mais enxuta do CENTOS 6.0, use a versão mais completa, possivelmente
seu CENTOS não veio com suporte a acls. Tente outra versão, a DVD por exemplo.
[29] Comentário enviado por alex.osumi em 08/03/2013 - 12:44h
muito bom o artigo, mas eu não consegui concluir, como eu estou correndo para fazer um pdc para a empresa vou de samba3 por enquanto, mesmo porque não preciso das funções do AD por enquanto, eu tive diversos problemas na instalação mas fui resolvendo, só não conclui pela urgência =)
[31] Comentário enviado por viniciusraupp em 21/03/2013 - 01:58h
[30] Comentário enviado por atcella em 09/03/2013 - 10:18h:
Como ficaria a atualizacao do BIND9.9,?
Bom, eu estava usando o bind9 do debian, que esta na versão 9.7, utilizei o apt-get mesmo, então baixei source do bind 9.9, parei o serviço e compilei o pacote com o ./configure abaixo, depois só iniciar o serviço e verificar a versão, certamente estará atualizada.
Alguns dependências pra compilação:
apt-get install libdb4.8-dev libkrb5-dev libssl-dev -y
[32] Comentário enviado por adilima28 em 03/06/2013 - 12:59h
Olá, como ficaria a configuração do arquivo "/etc/bind/named.conf.local" para o CentOS, pois este não tem o "/etc/bind/rndc.key"? No site do samba é referenciado o arquivo "/usr/local/samba/private/dns.keytab", ele é o mesmo "rndc.key"?
E já pode ser usado o BIN10?
[33] Comentário enviado por macgyver_rp em 16/06/2013 - 20:21h
[1] Comentário enviado por cruzeirense em 17/01/2013 - 14:51h:
Bom artigo.
Acrescentando algumas dicas:
1-É possível utilizar o servidor DNS que acompanha o samba4. Ele é instalado automáticamente.
2-Para cadastrar um usuário no domínio você terá que respeitar as regras de validação de senha do servidor. Para mudar essas regras utilize os seguintes comandos:
Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):
/usr/local/samba/bin/samba-tool domain passwordsettings set complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-length=4
Mudar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-age=4
Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set max-pwd-age=30
Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)
/usr/local/samba/bin/samba-tool domain passwordsettings set history-length=5
3 - Para mudar a senha de um usuário do domínio dentro do windows xp basta logar com o usuário, pressionar ctrl+alt+del e clicar em alterar senha.
Estou com o samba4 em um debian x64 a quase um mês e está funcionando perfeitamente. Ele funciona também como controle de acesso a internet (squid) integrado ao diretório (inclusive buscando os grupos) e também o acesso aos arquivos compartilhados. Funciona também como servidor de autenticação do nosso sistema interno.
-- to tentando colocar Ubuntu 12.04 samba4 e controle com Squid3 você diz que conseguiu, pode dar força?
meu samba4 tá ok funcionando, só tento problemas do squid autenticar com Samba4 , poderia dar help?
[34] Comentário enviado por rengaf1 em 09/08/2013 - 09:49h
[33] Comentário enviado por macgyver_rp em 16/06/2013 - 20:21h:
[1] Comentário enviado por cruzeirense em 17/01/2013 - 14:51h:
Bom artigo.
Acrescentando algumas dicas:
1-É possível utilizar o servidor DNS que acompanha o samba4. Ele é instalado automáticamente.
2-Para cadastrar um usuário no domínio você terá que respeitar as regras de validação de senha do servidor. Para mudar essas regras utilize os seguintes comandos:
Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):
/usr/local/samba/bin/samba-tool domain passwordsettings set complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-length=4
Mudar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-age=4
Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)
/usr/local/samba/bin/samba-tool domain passwordsettings set max-pwd-age=30
Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)
/usr/local/samba/bin/samba-tool domain passwordsettings set history-length=5
3 - Para mudar a senha de um usuário do domínio dentro do windows xp basta logar com o usuário, pressionar ctrl+alt+del e clicar em alterar senha.
Estou com o samba4 em um debian x64 a quase um mês e está funcionando perfeitamente. Ele funciona também como controle de acesso a internet (squid) integrado ao diretório (inclusive buscando os grupos) e também o acesso aos arquivos compartilhados. Funciona também como servidor de autenticação do nosso sistema interno.
-- to tentando colocar Ubuntu 12.04 samba4 e controle com Squid3 você diz que conseguiu, pode dar força?
meu samba4 tá ok funcionando, só tento problemas do squid autenticar com Samba4 , poderia dar help?
CARA no meu caso uso CentOS 6.4 minimal... basta adicionar no teu squid.conf as configurações abaixo:
# Autenticacao no Active Directory
auth_param basic program /usr/lib/squid/squid_ldap_auth -R -b dc=cgpi,dc=local -f sAMAccountName=%s -h 192.168.1.4 -D cn=squid,cn=Users,dc=cgpi,dc=local -w 123123000
auth_param basic children 5
auth_param basic realm Digite sua senha
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# Acls Externas
# caminho da acl
#/usr/lib/squid/squid_ldap_group
[38] Comentário enviado por Rodrigo.Sousa em 04/03/2015 - 14:57h
Boa Tarde,
Minha duvida seria na migração do samba3 para samba4.
Após fazer a migração do samba3 para o samba4, as máquinas que já estavam ingressadas no domínio, será preciso reingressar novamente para poder logar normalmente ?
[39] Comentário enviado por antonioamazonas em 07/09/2015 - 14:14h
Enviado em 06/09/2015 - 15:07h
Olá a todos, estou fazendo um trabalho de faculdade, onde eu preciso criar um PDC em linux (debian ou ubuntu) estou usando o ubuntu server 14 em uma vm.
Preciso criar um PDC em linux, e um BDC microsoft ( server 2008 r2)
Instalei o samba 4, e no momento da promoção do DC Linux, o sistema me retorna uma mensagem de erro e eu não faço a minima ideia de como resolver.
Sou iniciante no MUITIVERSO LINUX, e por isso peço ajuda.
O processo segue ate me pedir a senha de administrador do Samba
e logo depois começam as mensagens de erro:
ldb: module schema_load initalization falied : no such object
ldb: module rootdse inicialization falied : no such object
ldb: module samba_dsdb initialization falied : no such object
ldb: Unable to load modules fot /var/lib/samba/private/sam.ldb: (null)
samdb_conect falied
VFS connect falied!
ERROR (<class ´samba.provision.ProvisioningError´>): Provission falied - ProvisioningError: Your filesystem or build does nt suporte posix ACLs, which s3fs requires. Try monting the filesystem whitthe ácl´option.
File "usr/lib/python2.7/dist-packges/samba/netcmd/domain.py", line 398, in run
use_rfc2307=use_rfc2307, ski´p_sysvolacl=False)
File "/usr/lib/python2.7/dist-packages/samba/provision/_init_.py", line 2052, in provision
raise provisonoingError("Your filesystem or build does not suport posix ACLs, which s3fs requiroes. Try the monting the filesystem whit the 'acl'options.
Tentei anexar um print com a mensagem de erros mas não consegui.
O que pode ser isso, alguem pode me ajudar no procedimento de trasformar esse pc em um pdc?
Muito obrigado
[40] Comentário enviado por kbecaobh em 26/01/2017 - 07:49h
estou com problemas no meu servidor...wbinfo -g mostra os grupos, porém getent -g, mostra somente os grupos locais...o que pode ser? em outra estação(pdc) também linux, mostra os usarios locais e do dominio...