Conforme o post do Mestre Ricardo, “Samba 4 – Compilar, instalar e provisionar“, esse post é praticamente um clone, basicamente adaptado para o CentOS.
O ambiente que utilizarei é o seguinte:
CentOS 6.4 x86_64 (minima). Utilizei a ISO minimal, por conter menos pacotes desnecessários para o que vamos fazer a seguir, além de gostar mais dela :D
Vamos colocar a mão na massa.
Instalação dos pacotes necessários segundo a documentação do Samba 4 para esse cenário.
# yum install gcc libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel cups-devel -y
Atenção: Para compilar no CentOS 7 acrescente o pacote openldap-devel
Como optei por usar a ISO do CentOS “mais limpa”, então devemos instalar alguns pacotes.
OBS: o “perl” é necessário para a compilação do samba.
# yum install perl wget ntpdate -y
Ajustando a hora e data do servidor
# /usr/sbin/ntpdate ntp.cais.rnp.br
Agendando o ntpdate, para manter a hora do servidor corretamente.
# crontab -e
# Ajuste de Hora do Servidor 00 * * * * /usr/sbin/ntpdate ntp.cais.rnp.br
Download do código fonte do samba 4:
# cd /usr/src
# wget https://ftp.samba.org/pub/samba/samba-latest.tar.gz
# tar -xzvf samba-latest.tar.gz
# cd samba-"versao do samba"
No meu caso foi 4.1.9
# ./configure --prefix=/opt/samba
# make
# make install
# cd /opt/samba
# bin/samba-tool domain provision --realm=empresa.net --domain=empresa --adminpass='p@ssw0rd' --server-role=dc
Vamos testar
# sbin/samba -i -M single
-i – Modo interativo (O normal é o daemon)
-M single – Apenas um processo (sem filhos)
Se não houve nenhuma mensagem de erro podemos cancelar o teste, para isso utilize a combinação de teclas CTRL+C para encerrar o processo.
# sbin/samba -V
Version 4.1.9
Agora vamos iniciar o Samba4
# sbin/samba
Outro pequeno teste
# bin/smbclient -L localhost -U% (se der erro ignore)
Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.9) Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] Server Comment --------- ------- Workgroup Master --------- -------
Se tudo estiver OK basta iniciar o samba sem nenhum parâmetro.
Agora precisamos de um script para iniciar e parar o Samba4.
# vi /etc/init.d/samba
#! /bin/bash # # samba4 Bring up/down samba4 service # # chkconfig: - 90 10 # description: Activates/Deactivates all samba4 interfaces configured to # start at boot time. # ### BEGIN INIT INFO # Provides: # Should-Start: # Short-Description: Bring up/down samba4 # Description: Bring up/down samba4 ### END INIT INFO # Source function library. . /etc/init.d/functions if [ -f /etc/sysconfig/samba4 ]; then . /etc/sysconfig/samba4 fi CWD=$(pwd) prog="samba4" start() { # Attach irda device echo -n $"Starting $prog: " /opt/samba/sbin/samba sleep 2 if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi echo }
stop() { # Stop service. echo -n $"Shutting down $prog: " killall samba sleep 2 if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi echo }
status() { /opt/samba/sbin/samba --show-build } # See how we were called.
case "$1" in start) start ;; stop) stop ;; status) status irattach ;; restart|reload) stop start ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
Dê permissão de execução ao script.
# chmod +x /etc/init.d/samba
Agora precisamos adicionar e configurar a script para iniciar com o sistema.
# chkconfig --add samba
# chkconfig samba on
Vamos atualizar o resolv.conf.
# vi /etc/resolv.conf
search empresa.net nameserver 127.0.0.1
Desativar o firewall, em breve atualizarei o post, com as regras de firewall corretas.
OBS: Nunca faça isso em ambiente de produção
# /etc/init.d/iptables stop
# /etc/init.d/ip6tables stop
# chkconfig iptables off
# chkconfig ip6tables off
Pronto concluimos a compilação, instalação e provisionamento do Samba 4 Domain Controlller no CentOS 6.5.
# reboot
Para checar se tudo está correto!
Agora o comando “bin/smbclient -L localhost -U%” deve funcionar.
# cd /opt/samba/
# bin/smbclient -L localhost -U%
Espero que tenham gostado e se divertam.
Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.9) Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] Server Comment --------- ------- Workgroup Master --------- -------
OBS: esse post é praticamente um clone do post do Ricardo, apenas adaptei o que foi necessário para funcionar corretamente no CentOS.
Fontes:
http://opentodo.net/2013/01/samba4-as-ad-domain-controller-on-centos-6/
http://wiki.samba.org/index.php/Samba4
http://www.mundotibrasil.com.br/samba-4-compilar-instalar-e-provisionar/
Excelente tutorial, onde trabalho estamos realizando a troca do servidor AD para o Samba 4, e segui seu tutorial para montar uma máquina de testes. Funcionou perfeitamente.
Espero por mais dicas de como configurar o firewall, quais as regras, e configurações mais avançadas sobre o samba 4.
Bom estou tendo alguns erros e procurando pela solução no google mas vou postar aqui caso alguém já tiver visto e puder me ajudar ficaria grato.
O meu SAMBA está funcionando apenas quando inicio pelo comando:
sbin/samba -i -M single
os erros que estão aparecendo são:
RuntimeError: kinit for SRLDC$@SRMATRIZ.COM failed (Cannot contact any KDC for requested realm)
../source4/dsdb/dns/dns_update.c:294: Failed DNS update – NT_STATUS_ACCESS_DENIED
sabem me dizer como resolver isso?
Eu consegui fazer tudo funcionar utilizando dns samba internal, agora nao está mais dando nenhum erro ao iniciar o samba, porém depois de um tempo eu nao consigo usar as ferramentas RSAT, alguem por acaso ja teve esse problema? eu tenho que reiniciar a maquina para conseguir acesso de novo.
Obrigado Flávio.
Bom já verificou se o problema pode ser a máquina windows?
Bom usei um win2008r2 para gerenciar o samba sem problemas, mas ainda nem utilizei por muitas horas.
Em que circunstâncias está ocorrendo esse problema?
Se possivel suba uma vm com win e refaça o teste.
Abraço
Realmente devia ser algum problema no computador onde eu instalei o RSAT, pq eu instalei agora em meu computador e coloquei ele no dominio e funcionou certinho.
Agora estou configurando as politicas criando os usuarios, por enquanto está tudo funcionando muito bem. Não tenho mais nenhum erro no samba.
Aguardo mais tutoriais.
Tem como usar o samba como dhcp server tbm?
E utilizar a ferramenta do RSAT para controlar?
Acabei de ter o problema no RSAT de novo, percebi que ele da o problema apenas depois de criar algum usuario, se eu deixar ele muito tempo aberto ele volta a aparecer o problema. =/
Notou isso ai?
Uso Win7 Pro.
Outro problema que estou tendo, acabei de bloquear minha maquina e sai por alguns minutos quando voltei não conseguia mais logar dava a mensagem: “Falha na relação de confiança entre esta estação de trabalho e o domínio primário”. Será que os problemas estão correlacionados? Pode me ajudar?
Flávio, desculpe a demora,, estou pegado no trabalho. Bom vou fazer os testes aqui. Me da até sexta para te dar um retorno sobre o possível problema. Vou comecar a montar o ambiente hj.
Só ara ter mais informação, esse lab vc esta fazendo virtualmente? Se sim, já verificou possivel problema com a data e horas das maquinas?
Sim estou fazendo virtualmente, mas acho que já sei o que aconteceu, eu tinha excluido minha maquina do dominio pois troquei o nome dela, para ver se ele reconhecia de novo, mas ele começou a dar esses problemas, ai eu tirei do dominio e coloquei de novo e parou de dar problemas! xD
Agora estou em outra empreitada, estou instalando e configurando o GLPI + OCS Inventory, alias ja instalei tudo, só estou tentando configurar para o GLPI abrir chamado por email, isso nao estou conseguindo, mas de resto está tudo funcionando perfeitamente, softwares excelentes para equipe de TI.
Depois se tiver dicas de configurações para o samba por favor poste no blog!
Vlw!
Show de bola Flávio,
Bom tem muito material na própria documentação do samba.
Basta você saber o que ai querer e tentar fazer. Por exemplo, auditoria de arquivos(“dedura” quem apagou o arquivo), entre muitas outras.
Espero ter te ajudado,
Abraço
Boa Tarde, no CentOs 6.4 não consigo executar esse comando sbin/samba -i -M single sabe o que pode está acontecendo, dentro do sbin não tem o samba
Diego,
Já verificou se você está executando o comando no diretório correto? Ou com o path certo?
Não é o /sbin e sim do diretório /opt/samba/sbin.
Boa tarde estou configurando o centOS em uma VM e qundo chega no comando ./configure –enable-debug –enable-selftest –prefix=/opt/samba . . ele não executa, como no exemplo feito acima foi o download no comando wget http://ftp.samba.org/pub/samba/samba-4.0.4.tar.gz só troquei o samba-4.0.6.tar.gz.
Auditoria de arquivos não tem na wiki do samba4 não. mais se tiver uma solução avisa ai.
Antonio, coloca ./configure –enable-debug –enable-selftest –prefix=/opt/samba
Quando eu digito aqui não aparece coloca 2 hifens em enable e prefix
Amigo, quando faço essa parte:
# cd /opt/samba
# bin/samba-tool domain provision –realm=empresa.net –domain=empresa –adminpass=’p@ssw0rd’ –server-role=dc
Diz que não encontra o diretório samba-tools, alguns diretórios acredito que não foram criados.
Como posso fazer? Conto com ajuda de vocês!
Gustavo,
Já verificou se vc está no diretório correto?
vai em
# cd /opt/
# ls -l
Verifica se o diretorio do samba está ai!
Se estiver, entre no diretório samba
# cd samba/
# ls -l
Verifique se o diretório bin está ai, ok?
Qualquer coisa, estou aqui para ajudar!
Douglas, obrigado pela resposta.
Verifiquei sim, ele não cria o diretório samba!
Tanto é que eu mesmo criei o samba-tools pensando que ele não criava.
Fiz novamente toda instalação, mas caio nesse mesmo erro. Não acho o diretório samba-tools para realizar o comando que citei.
Obrigado pela ajuda Douglas, caso tenha mais alguma ideia vou ficar grato com ajuda.
Abraços,
Gustavo Ciria
o endereço pra download foi alterado para
http://ftp.samba.org/pub/samba/stable/samba-4.0.4.tar.gz
Galera, to ficando louco.
Já segui todos os tutoriais possíveis, e o compartilhamento não funciona.
Até consigo criar, mas não tenho acesso aos compartilhamentos criados!!!
Já dei chmod 777 e cia ltda e não adianta…
Estou utilizando o CentOS 6.4 64 bits.
Provavelmente é algo muito banal, mas eu não consigo ver onde é o erro…
Socorro…
oi nao consigo, quando digito ./configure –enable-debug –enable-selftest –prefix=/opt/samba. da o seguinte erro:
project not configured (run ‘waf configure’ first)
Alex,
Você desativou o SELINUX?
Caso não tenha feito, altere a linha
# vi /etc/sysconfig/selinux
De:
SELINUX=enforcing
Para:
SELINUX=disabled
Reinicie para aplicar as configurações.
E me diga se resolveu…
Abraço,
João,
É erro de sintaxe. O editor de texto do WordPress para escrever o artigo, junta os dois hifens.
— para –
Basta alterar de
– para —
Abraço,
Montei um ambiente onde o samba4 roda no gateway da rede, mas agora não consigo montar um script com iptables que me permita proteger o servidor e compartilhar a conexão da internet.
Alguém tem algo pra me sugerir?
Alex,
Desculpe a demora, bom, você tem quantas interfaces de rede no seu Gateway/AD?
Ola. Primeiramente parabéns pelo ótimo tutorial. Estou utilizando o Samba4 +- em produção(apenas em um setor da empresa),
e ate o momento estou com apenas um problema: +- de 5 em 5 dias o serviço de DNS Interno não resolve os nomes do servidor DNS que esta em foward.
Ai preciso reiniciar o serviço do Samba4 pra voltar a funcionar. No caso tem +- 180 maquinas utilizando o serviço de DNS do Samba4
e apenas umas 6 utilizando propriamente o serviço de domínio e de compartilhamento de arquivo desse servidor Samba4. Alguém ja passou por isso?
Deste ja, Obrigado.
Olá! estou tendo esse problema, não tenho nem ideia do que possa ser. Simplesmente tem momentos do dia que o samba para, e só matando o processo e subindo de novo ele volta normalmente, eu para uma solução paliativa coloquei um script para matar e iniciar todos os dias, mas agora mesmo fazendo isso ele simplesmente trava uma vez ao dia e preciso fazer manualmente.
já busquei em vários locais alguma informação e tudo que achei que poderia ser, não soluciona… você conseguiu algum avanço, Obrigado!
Amigo, ja faz 3 anos que sai da empresa que tinha montado o Samba 4..entao nao sei como resolver. Agora estou iniciando um novo projeto com o Samba 4, se esse problema ocorrer e resolvermos, posto aqui.
Aproveitando, voce fez algum passo a passo mais atual que o do blog para instalacao do Samba 4?
Abraco
Obrigado pelo tutorial mas o uso do NTP está incorreto.
ola ricardo, comecei a estudar samba4, e ja estamos no 4.8.2, ao fazer o provisionamento e utiliza # bin/smbclient -L localhost -U%
nao me aparecem essas informções:
(essas aqui )Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] (essas aqui)
Sharename Type Comment
——— —- ——-
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.9)
(essas aqui )Domain=[EMPRESA] OS=[Unix] Server=[Samba 4.1.9] (essas aqui )
Server Comment
——— ——-
Workgroup Master
——— ——-
tem alguma ideia do que eu possa está errando, abraços.
obs