Salve pessoal, estou reescrevendo alguns posts relacionados com o Samba 4 e desta vez irei fazer a instalação via repositório para facilitar um pouco a vida de todos, mas calma, irei reescrever os posts onde faço a compilação do Samba já adequando as novas versões do Debian, Ubuntu LTS, e CentOS 7.
Para esse Post preciso de uma instalação do Debian com o Sistema Básico apenas, e no meu caso instalei também o SSH. Vamos ao nosso ambiente.
Configuração do Servidor Samba:
Hostname: debsmbdc01
Tipo do Servidor (Role): Domain Controler
Endereço IP: 192.168.1.10/24
Domínio: empresa.net
Configuração Cliente DNS: Forwarding (IP: 192.168.1.1)
Default Gateway: 192.168.1.1
Verificar os atributos de sistema de arquivos:
# tune2fs -l /dev/sda1 | grep 'mount options'
Os opções de montagem ´acl,user_xattr´ devem estar ativos, caso não estejam usar o comando abaixo.
# tune2fs -o acl,user_xattr /dev/sda1
Para remontar
# mount -o remount /
Vamos criar um mapeamento estático para o nosso servidor:
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.10 debsmbdc01.empresa.net debsmbdc01
Instalar o Samba 4 e alguns outros pacotes
# apt-get install samba krb5-user winbind smbclient ldap-utils acl attr ntp
Preencha como nas imagens abaixo:
Vamos realizar alguns ajustes no servidor de hora NTP (adicione no final do arquivo)
# vi /etc/ntp.conf
# Relogio Local
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# Configurações adicionais para o Samba 4
ntpsigndsocket /var/lib/samba/ntp_signd/
restrict default mssntp
disable monitor
Vamos reiniciar o servidor NTP
# systemctl restart ntp
Testando
# ntpq -p
Vamos parar alguns serviços antes de configurar o Samba 4
# systemctl stop smbd
# systemctl stop nmbd
# systemctl stop winbind
Agora vamos remover o smb.conf da distribuição
# cd /etc/samba
# mv smb.conf smb.conf.old
Vamos provisionar o Samba 4
# samba-tool domain provision --use-rfc2307 --interactive
Preencha os campos conforme a sua necessidade, neste caso pressionei ENTER e aceitei o valor padrão. A senha deve ser preenchida com o mínimo de 8 caracteres e deve conter letras (maiúscula/minúscula), números e caracteres de pontuação devido ao complexidade de senha estar ativa.
Vamos iniciar os serviços que foram parados anteriormente.
# /etc/init.d/samba-ad-dc restart
Vamos atualizar o resolv.conf.
# vi /etc/resolv.conf
search empresa.net
nameserver 192.168.1.10
Copiar o arquivo krb5.conf do samba 4 para o /etc e sobrescrever o existente.
# cp /var/lib/samba/private/krb5.conf /etc
Ainda temos um pequeno ajuste de permissão para o servidor NTP acessar o socket do Samba 4
# chown root:ntp /var/lib/samba/ntp_signd/
# chmod 750 /var/lib/samba/ntp_signd/
Feito o ajuste vamos reiniciar o servidor NTP
# systemctl restart ntp
Vamos testar, e verificar se o serviço está ok.
Começando pelo DNS
# host -t A empresa.net
empresa.net has address 192.168.1.10
# host -t SRV _kerberos._udp.empresa.net
_kerberos._udp.empresa.net has SRV record 0 100 88 debsmbdc01.empresa.net.
# host -t SRV _ldap._tcp.empresa.net
_ldap._tcp.empresa.net has SRV record 0 100 389 debsmbdc01.empresa.net.
Algumas consultas externas:
# host mundotibrasil.com.br
mundotibrasil.com.br has address 193.34.144.172
mundotibrasil.com.br has IPv6 address 2a02:c205:2004:8003::1
# host -t MX debian.org
debian.org mail is handled by 0 mailly.debian.org.
debian.org mail is handled by 0 muffat.debian.org.
Pronto, nosso servidor DNS resolve endereços locais e encaminha os externos sem problema e com os registros SRV _kerberos e _ldap validados podemos seguir com o teste do mecanismo de autenticação Kerberos.
Para tal, faça:
# kinit administrator@EMPRESA.NET
Password for administrator@EMPRESA.NET:
Warning: Your password will expire in 41 days on Ter 12 Jul 2016 14:54:19 BRT
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@EMPRESA.NET
Valid starting Expires Service principal
31-05-2016 16:43:45 01-06-2016 02:43:45 krbtgt/EMPRESA.NET@EMPRESA.NET
renew until 01-06-2016 16:43:38
Nosso servidor Debian 8 (Jessie) está com o Samba 4 instalado, configurado, e provisionado. Espero que tenham gostado desse Post. Até o próximo quando irei realizar a instalação do Samba 4 no novo Ubuntu 16.04 LTS, também via repositório.
Fonte: https://wiki.samba.org/index.php/Setup_a_Samba_Active_Directory_Domain_Controller
Fonte: https://wiki.samba.org/index.php/Time_synchronisation
Seu tutorial foi simplesmente perfeito, deu tudo certo por aqui. Parabéns e muito obrigado por compartilhar o seu conhecimento com todos da comunidade.
Abs.
Muito obrigado pelo comentário e elogio, fico feliz que tenha gostado do Post.
Abraços
Olá Ricardo, parabéns pelo tutorial. Gostaria de enviar uma pequena sugestão de correção: substituir a linha “# vi /etc/ntp” por “# vi /etc/ntp.conf”. Gostaria também de saber como manter a configuração do arquivo resolv.conf após a reinicialização. No meu caso ele retorna a configuração padrão do gerenciador de rede “# Generated by NetworkManager”. Grato
obrigado pela observação e o Post já foi Corrigido, esse Post foi feito para o Debian em modo texto e IP estático, passe mais detalhe de sua distribuição onde o samba está instalado?
Abraços
Bom dia muito bacana artigo, criação de diretório ingressar a máquina no domínio está em pauta para os próximos artigos?
Bom dia Anderson,
Ingressar máquina no domínio e RSAT com certeza, quanto a criar diretório posso vir a criar mas antes irei preparar um controlador de domínio secundário.
Abraços
Perfeito, subiu na primeira. Meus parabéns.
Evaristo,
Obrigado, fico feliz que tenha dado certo.
Abraços
Ola, posso instalei hoje mesmo o samba, mas nao consegui logar no windows, para acessar as pasta do servidor samba, o mesmo diz que user ou senha invalido, posso usar o rsat, para configurar esses usuarios ? se sim, seria com USER, e nao como AD, pois nao quero fazer dominio, estava usando debian 6, funcionando tudo de boa, mas quero migrar para o debian 8, esses testes estao me dando problemas, pois vi que no gadmin, ele mostra opcao de usar ad, ou user… quero usar normal, somente user, eles mapeam a rede e acessas as pastas compartilhadas ja no samba, se puder e quiser, posso conceder acesso remoto, agora pela manha 09:30, para que possa me auxiliar. valeu
diego@suprinform.com.br
11 98562-5975
Diego,
Você pode usar tanto a linha de comando com o utilitário samba-tool para gerenciar usuários, e também usar o RSAT para essa tarefa e para tal você inicialmente precisa da conta de Administrador do Domínio (Administrator), criar usuários e delegar funções administrativas para esse usuário. A configuração apresentada nesse Post demonstra o uso de Domínio mas é possível deixar o Samba como era antigamente, mas não irei abordar esse tipo de configuração. Desculpe mas não posso acessar rede externa daqui, por restrição da rede do trabalho.
A ideia do Samba 4 é substituir o servidor Windows, e por esse motivo ele se comporta como tal, podendo inclusive utilizar RSAT para diversas configurações.
Abraços
Entendi, poxa que pena, mas entao vou testar estou agora mesmo terminando a instacao novamente do samba, vou tentar configurar, eu ja possuo um smb.conf tudo pronto com as pasta tudo certinho, so que o problema e o user que nao consigo add, e quando add ele nao reconhece no win, diz que user ou senha invalido!
*desculpe os erros e o teclado ingles. rsrs
Diego,
Primeiramente você precisa verificar se o usuário está cadastrado no samba 4, use o comando samba-tool ou via RSAT:
# samba-tool user list
e para criar :
# samba-tool user create usuario
Ricardo, boa noite.
Primeiramente muito bem feito o artigo e testado, no meu cenário funcionou porém estou com um receio nas questões:
root@servidor:~# kinit administrator@GINA.LOCAL
kinit: Cannot contact any KDC for realm ‘GINA.LOCAL’ while getting initial credentials
root@servidor:~# klist
klist: Credentials cache file ‘/tmp/krb5cc_0’ not found
Por se tratar do Kerberos fico um pouco preocupado em colocar isso em produção por não ter dado os mesmo resultados que você fez.
Estou usando o Debian 8.3 com o samba Version 4.2.10 instalação via Apt-get conforme artigo.
Na estação não encontrei problema algum tenho resolução de nomes rodando 100% ingressou no domínio sem frescura.
No seu artigo tem esse parâmetro:
# chown root:ntp /var/lib/samba/ntp_signd/
Ele não encontra esse caminho para corrigir achei essa dica, veja se vai ajudar os demais.
install -d /var/lib/samba/ntp_signd
Valeu, Abraço
Anderson
Parece que eu tive problema no kinit usando o Debian 8.5 jessie
Se alguem encontrar ess problema a solução ta aqui
https://www.vivaolinux.com.br/topico/Servidores-Linux-para-iniciantes/SAMBA4-Erro-Kinit-KDC-form-realm
Obrigado Amigo pelo tutorial me ajudou muito levantar um dominio samba 4 com rapidez
Estou começando agora e tenho algumas dúvidas:
No inicio do Post, foi colocada a configuração do Samba
Configuração do Servidor Samba:
Hostname: debsmbdc01
Tipo do Servidor (Role): Domain Controler
Endereço IP: 192.168.1.10/24
Domínio: empresa.net
Configuração Cliente DNS: Forwarding (IP: 192.168.1.1)
Default Gateway: 192.168.1.1
Como faço essa configuração? não sei se tenho que editar algum arquivo .conf.
Se puder me ajudar, desde já o meu muito obrigado.
Julio.
Já entendi as informações iniciais e segui o post e deu tudo certo.
Uma dúvida:
O arquivo smb.conf foi renomeado, nessa arquitetura de controlador de domínio dá para fazer compartilhamentos? e como informar novos usuários do domínio?
Sds.
Julio.
olá amigo, parabéns pelo post!
Gostaria de tirar só uma dúvida com você, estou tentando instalar o samba 4 no debian 8 com as seguintes informações:
Hostname: server
Endereço IP: 192.168.1.1/24
Domínio: home.lan
Configuração Cliente DNS: Forwarding (IP: 192.168.1.1)
Default Gateway: 192.168.1.1
Porém, ao realizar os testes host -t SRV _kerberos._udp,home.lan e o host -t SRV _kerberos._tcp.home.lan ele apresenta a seguinte mensagem :
root@server:/etc/samba# host -t SRV _kerberos._udp.home.lan
Host _kerberos._udp.home.lan not found: 3(NXDOMAIN)
oot@server:/etc/samba# host -t A home.lan
home.lan has address 192.168.1.1
root@server:/etc/samba# host -t A server.home.lan
server.home.lan has address 192.168.1.1
o que devo fazer para os testes internos funcione, todos os testes externos ele consegue resolver.
Desde já agradeço
Att. Tiago Bandeira
Tanto tempo depois minha turma do curso e eu também estamos passando por esse problema !!
Já fiz 2 vezes este tutorial e sempre apresenta a msg abaixo, quando executo kinit:
KINIT:cannot contact any kdc for realm
Marcos eu tive esse problema, foi tenso, mas é só não seguir o seguinte passo
pule esse passo no tutorial acima
cp /var/lib/samba/private/krb5.conf /etc
no passo em que vc configura o helm do kerberos vc estará configurando corretamente, esse passo acima substitui algo que ja estava funcionando
Deu certo!! Obrigado!!
Excelente artigo, tudo certo a dúvida é com o backeup. No samba via tarball vem o script, no debian via apt-get não encontrei o referido script.
Sim é verdade, você vai precisar adaptar o script fornecido junto com o source do Samba4 e realizar as modificações necessárias para o seu funcionamento, lembrando que o Debian tem um jeito peculiar de espalhar os arquivos, scripts, binários e bibliotecas no sistema de arquivo.
Obrigado por seu comentário
Alguma coisa está faltando, pois segui igualzinho o tutorial e fica dando essas mensagens de erro, seja debian/ubuntu e centos:
Segue
ERROR(ldb): uncaught exception – 0000052D: Constraint violation – check_password_restrictions: the password does not meet the complexity criteria!
File “/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py”, line 175, in _run
return self.run(*args, **kwargs)
File “/usr/lib/python2.7/dist-packages/samba/netcmd/domain.py”, line 442, in run
nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode)
File “/usr/lib/python2.7/dist-packages/samba/provision/__init__.py”, line 2172, in provision
skip_sysvolacl=skip_sysvolacl)
File “/usr/lib/python2.7/dist-packages/samba/provision/__init__.py”, line 1795, in provision_fill
next_rid=next_rid, dc_rid=dc_rid)
File “/usr/lib/python2.7/dist-packages/samba/provision/__init__.py”, line 1453, in fill_samdb
“KRBTGTPASS_B64”: b64encode(krbtgtpass.encode(‘utf-16-le’))
File “/usr/lib/python2.7/dist-packages/samba/provision/common.py”, line 55, in setup_add_ldif
ldb.add_ldif(data, controls)
File “/usr/lib/python2.7/dist-packages/samba/__init__.py”, line 225, in add_ldif
self.add(msg, controls)
Atte.,
Você precisa entrar com uma senha mais complexa.
Abraços
Tutorial Perfeito!
Recomendo executar o comando chattr +i /etc/resolv.conf caso vc use servidor DNS interno, isso deixa o resolv.conf somente leitura, para nao sobrepor as configurações já feitas no resolv.conf.
Para desbloquear para gravação usa chattr -i /etc/resolv.conf
Primeiro parabéns pelo post, quase tudo deu certo… Embora a estação esteja conectando normalmente, os testes deram quase todos ok, só quando executo o comando kinit administrator…… apresenta a seguinte mensagem:
kinit: KDC reply did not match expectations while getting initial credentials
e no klist:
kinit: KDC reply did not match expectations while getting initial credentials
Também fiquei com dúvida sobre o comentário do Thomaz, se entendi, ele disse que não é necessário copiar o krb5.conf para o etc.
Se puder me ajudar eu agradeço.
Amigo..esse erro ocorre porque voce colocou o dominio em minúsculo, e tem que ser maiúsculo. Exemplo kinit administrator@DOMINIO(esse tem que ser maiusculo, igual no passo a passo).
Salve galera, alguém sabe o que pode ser esse erro? Eu já coloquei senha complexa e senha simples
ERROR(ldb): uncaught exception – operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:3132
File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py”, line 176, in _run
return self.run(*args, **kwargs)
File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/domain.py”, line 474, in run
nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode)
File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 2175, in provision
skip_sysvolacl=skip_sysvolacl)
File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1787, in provision_fill
next_rid=next_rid, dc_rid=dc_rid)
File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1447, in fill_samdb
“KRBTGTPASS_B64”: b64encode(krbtgtpass.encode(‘utf-16-le’))
File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/common.py”, line 55, in setup_add_ldif
ldb.add_ldif(data, controls)
File “/usr/local/samba/lib64/python2.7/site-packages/samba/__init__.py”, line 229, in add_ldif
self.add(msg, controls)
[root@zeus samba-4.7.0]#
Boa noite estou com problema na hora de realizar os testes no DNS poderia me dar uma luz ?
Está dando o seguinte erro:
Host empresa.net not found: 3 (NXDOMAIN)
fico no aguardo muito obrigado
Parabéns, Ótimo tutorial.
Ricardo bom dia!
Muito obrigado por compartilhar informações tão uteis a nosso aprendizado, contudo devo perguntar neste comando:
# apt-get install samba krb5-user winbind smbclient ldap-utils acl attr ntp
Como posso opinar sobre a versão do samba a ser instalada?