Samba 4 – Instalação e provisionamento
Instalação e provisionamento do SAMBA 4
Por Djavan Marques dos Santos
Na execução deste “LAB”, optei pelas placas em modo bridge o que torna possível o acesso remoto por SSH pelo host real. O gateway padrão é o roteador da minha rede local e a instalação do sistema foi realizada com os pacotes básicos, acrescentando apenas o servidor SSH para que pode-se configurar o Debian pelo PUTTY.
Cenário:
Passo a passo:
1) Atualização do repositório e dos pacotes do sistema:
# apt-get update && apt-get upgrade
2) instalação das dependências:
apt-get install acl attr autoconf bison build-essential \ debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \ libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \ libcap-dev libcups2-dev libgnutls28-dev libjson-perl \ libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \ libpopt-dev libreadline-dev perl perl-modules pkg-config \ python-all-dev python-dev python-dnspython python-crypto \ xsltproc zlib1g-dev libgpgme11-dev python-gpgme python-m2crypto libsystemd-dev
Nesta parte basta seguir selecionando “OK” e pressionando “ENTER”, sem realizar qualquer alteração. Logo após a instalação das dependências, baixaremos o SAMBA em sua versão estável mais recente o que pode ser verificado no endereço: https://download.samba.org/pub/samba/stable/
3) Baixando, descompactando e compilando o SAMBA 4:
# wget https://download.samba.org/pub/samba/stable/samba-4.6.5.tar.gz # tar -zxvf samba-4.6.5.tar.gz # cd samba-4.6.5 # ./configure --enable-debug --enable-selftest
Se tudo ocorrer sem problemas será exibida uma mensagem de sucesso e a partir deste ponto é só compilar e instalar o SAMBA.
# make
Obs: A execução do comando “make” é um pouco demorada, sendo este o único inconveniente. Tenha um pouco de paciência.
# make install
4) Configurações importantes:
Algumas configurações adicionais são necessárias a fim de garantir o correto funcionamento do servidor. Os arquivos “/etc/resolv.conf/” e o “/etc/hosts/” devem estar de acordo com o domínio a ser criado, bem como o IP do servidor deve ser fixo já que este será o DNS da rede local.
# vim /etc/hosts
# vim /etc/resolv.conf
Após configurar e salvar o “/etc/resolv.conf” execute o comando “chattr +i” para garantir que o arquivo não seja modificado pelo sistema.
# chattr +i /etc/resolv.conf
A configuração destes 2 (dois) arquivos nos auxilia no provisionamento do servidor. estando os arquivos corretamente configurados antes de se elevar o SAMBA a AD, quando da configuração do serviço o domínio já estará definido.
5) Provisionando o SAMBA 4:
Antes do provisionamento do SAMBA 4 como AD é uma boa prática listarmos tudo que for pertinente a consecução do domínio, seria algo como um checklist a fim de garantir os parâmetros corretos de configuração. Veja os dados na tabela a seguir:
Checklist SAMBA 4 | |
Servidor | Controlador de domínio e Active Directory |
DNS | Samba Internal ( x ) – BIND ( ) – BIND DLZ ( ) |
IP do Servidor | Fixo ( x ) IP:172.16.0.200/24 – Obs. deve ser feito antes de subir o domínio. |
Qtde. Controladores de Domínio | 1 (um) |
Domínio | BOSON.AULA.NET |
DNS Resolver – Forwarding | 172.16.0.1/24 Obs. neste caso esse é o IP do meu roteador. |
DHCP Server | Não |
Em relação ao provisionamento do servidor, se o samba-tool não estiver declarado na variável PATH é necessário digitar o caminho absoluto “/usr/local/samba/bin/samba-tool” para poder utilizar os recursos da ferramenta.
# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Onde:
- domain provision = para elevar o SAMBA a controlador de domínio;
- –use-rfc2307 = ativa o Network Information Server (NIS);
- –interactive = Modo interativo que permite realizar as configurações do domínio.
Vamos aos passos necessários:
- Realm [BOSON.AULA.NET] : Se o “/etc/hosts” e o “/etc/resolv.conf” estiverem definidos basta pressionar ENTER, caso não estejam configurados digite o nome do domínio desejado. Em nosso caso “BOSON.AULA.NET”;
- Domain : [BOSON] : “pressione enter”;
- Server Role (dc, manber, standalone,) [dc] : Como utilizaremos nosso SAMBA como DC basta pressionar ENTER;
- DNS backend (SAMBA_INTERNAL, BIND9, BIND9_DLZ) [SAMBA_INTERNAL] : O DNS que iremos escolher o SAMBA_INTERNAL que é o padrão da instalação, bastando pressionar “ENTER”;
- DNS forwarder IP address (write ‘none’ to disable forwarding) [172.16.0.200] : Neste caso é mostrado como IP de encaminhamento o definido no “/etc/resolv.conf/” se os arquivos não estiverem configurados, o DNS que ira ser definido para encaminhamento será o primário configurado em seu roteador. E comum a utilização do DNS do Google para está tarefa, mas, em nosso cenário setaremos o nosso gateway como encaminhador “172.16.0.1’;
- Administrator password: Definição da senha de administrador deve conter “letras, números e caracteres especiais” para que não aja erro no processo de provisionamento;
- Retype password: Repita a senha digitada anteriormente.
Após as configurações realizadas o servidor será elevado a controlador de domínio. Vide imagem abaixo:
6) Script de inicialização
Crie o arquivo “/etc/systemd/system/samba4.service” e adicione o conteúdo .service abaixo, para que o Unit baseado no systemd seja integrado ao servidor, possibilitando assim, o controle dos processos relativos aos serviços, bem como na inicialização do sistema o SAMBA possa subir automaticamente.
# vim /etc/systemd/system/samba4.service
Configure o arquivo com segue:
[Unit] Description=Samba Active Directory Domain Controller After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/samba/sbin/samba -D PIDFile=/usr/local/samba/var/run/samba.pid [Install] WantedBy=multi-user.target
Após criar o arquivo e adicionar o conteúdo, execute os comandos abaixo:
# systemctl daemon-reload # systemctl enable samba4.service
Verificando se daemon encontra-se “enable”
# systemctl is-enabled samba4.service
Seguido estes passos o serviço já pode ser inicializado e verificado adequadamente.
# systemctl start samba4.service
Com o “systemctl” é possível a utilização das opções (stop, restart e status).
# systemctl status samba4.service -l
7) Testes:
Verificando a versão do SAMBA instalado:
# /usr/local/samba/bin/smbclient --version
Pastas compartilhadas:
# /usr/local/samba/bin/smbclient -L localhost -U%
Verificação do usuário Administrador:
# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%'Senha Cadastrada'
Digite “exit” para voltar ao shell bash
LDAP
host -t SRV _ldap._tcp.BOSON.AULA.NET
KERBEROS
host -t SRV _kerberos._udp.BOSON.AULA.NET
DNS
host -t A Debian.BOSON.AULA.NET
KERBEROS.CONF
# cat /usr/local/samba/private/krb5.conf
KINIT
# kinit administrator@BOSON.AULA.NET
Com a instalação e o provisionamento concluída e sem apresentar erros, devemos instalar o serviço para sincronização de hora (NTP), e configurá-lo para que possamos utilizá-lo no ajuste das máquinas que integram o domínio.
Não é obrigatório a instalação do servidor “NTP” para o funcionamento do SAMBA, mas é uma boa prática sincronizar os hosts que pertencem ao domínio. O Kerberos requer “carimbos” de hora exatos para poder prevenir ataques de repetição bem como o AD utiliza a sincronização para evita replicação.
O AD admite um desvio padrão de até 5 minutos para mais ou para menos, caso haja uma diferença maior que esse padrão o acesso é negado, resultando no não acesso aos diretórios e compartilhamentos.
8) Instalação e configuração do NTP server
Execute os comandos a seguir para instalar o serviço de NTP no servidor:
# apt-get install ntp # cp /etc/ntp.conf /etc/ntp.conf.BK
Feita a cópia do arquivo /etc/ntp.conf devemos realizar algumas configurações, apague o conteúdo do ntp.conf e substitua pelo conteúdo abaixo:
# Local clock. Note that is not the "localhost" address! server 127.127.1.0 fudge 127.127.1.0 stratum 10 # Where to retrieve the time from server 0.pool.ntp.org iburst prefer server 1.pool.ntp.org iburst prefer server 2.pool.ntp.org iburst prefer driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/ # Access control # Default restriction: Allow clients only to query the time restrict default kod nomodify notrap nopeer mssntp # No restrictions for "localhost" restrict 127.0.0.1 # Enable the time sources to only provide time to this host restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
Obs: verifique se o diretório “/usr/local/samba/var/lib/ntp_signd/” existe. Em caso negativo, deve ser criado e fornecidas as devidas permissões. Outro ponto importante diz respeito aos arquivos “/var/lib/ntp/ntp.drift” e “var/log/ntp” – caso não tenham sido criados pela instalação você irá criá-los.
Criação do diretório “ntp_singd”:
# mkdir /usr/local/samba/var/lib/ntp_signd
Ajuste de Permissões:
# chown root:ntp /usr/local/samba/var/lib/ntp_signd # chmod 750 /usr/local/samba/var/lib/ntp_signd
Criação dos arquivos “/var/lib/ntp/ntp.drift” e “/var/log/ntp”
# touch /var/lib/ntp/ntp.drift # touch /var/log/ntp
Após as configurações do servidor NTP serem devidamente realizadas, devemos reiniciar o serviço de horas para que ele possa funcionar conforme configurado.
# systemctl restart ntp.service
Processo finalizado com sucesso.
Anterior: SAMBA 4 como Controlador de Domínio
Parabéns pelo post, aqui conseguir ir ate o passo 7, agora não esta navegando na net e com isso não consigo instalar o NTP Server, acredito que seja alguma configuração que em relação a DNS.
Poderia me orientar?
A interface de rede do Virtualbox foi definida em nodo bridge, logo a rede será em caminhada para a internet pelo seu roteador local. Verifique se no provisionamento o DNS definido como forwarding foi o IP do seu roteador ou provedor de serviço, o DNS do SAMBA só resolver a rede LAN fora dela cabe ao encaminhamento.
Refiz as configurações e coloquei o forwarding com o IP do meu roteador.
Esta funcionando perfeitamente.
Agora estou configurando os compartilhamento e o perfil móvel.
Você tem ou vai fazer um posto sobre compartilhamento e o perfil móvel?
Mais uma vez, parabéns pelo posto e muito obrigado
Fui até o comando “/usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%’Senha Cadastrada'” e recebo a seguinte mensagem:
session setup failed: NT_STATUS_LOGON_FAILURE.
Não sei o que fiz de errado a unica coisa que alterei foi o nome, todo momento que pedia para colocar debian.boson.aula.net eu colocava o do meu TCC cube.nex.
/usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%sua_senha,
Lembrando que a senha tem que ter letras(maiúscula e minuscula), simbolo e números.
Deve haver algum erro de escrita no comando, tente o trecho abaixo:
/usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%’Senha123@’
fui tentar hoje novamente:
# systemctl samba4.service
Unknown operation samba4.service.
que irritante isso.
Parabéns, sempre bom ter esses tutoriais com o Samba.
Tenho mais uma duvida, apos a instalação e configuração, incluindo os usuarios e grupos e configurando os compartilhamentos.
Posso alterar o nome do do servidor?
No caso de debian para servidor?
Gostaria de entender porque você fez a compilação em vez de usar o apt-get install. Existe alguma necessidade específica para tal?
Fiz todos os passos descritos porém ao dar o comando service –status-all
O samba-ad-dc não está habilitado (-)
Já tentei os comandos pra iniciar o serviço, unmask e nada.
provavelmente funcionava quando postado em 02/07/2017, mas estamos em 2020 e sem previsao para atualizacao, mesmo assim serviu como experiencia, aguardamos respostas se possivel obg
Eu ia tentar usar a mesma lógica hoje. Serah que não funciona? Você já tentou?
Olá fábio gostei muito do manual de instalação e configuração do samba 4 assim como outros tutoriais que você publicou , porém estou com uma grande dúvida e não encontrei nenhuma resposta concreta sobre.
Eu gostaria de saber qual a diferença e qual a melhor opção de instalar o samba assim como outros serviços no servidor, se pelo apt ou compilando?
Nobre! A resposta para a sua pergunta depende da necessidade, no caso especifico do SAMBA as atualizações do Debian são lentas, o ciclo de atualizações das versões é de um ano e seis meses, se esperar para atualizar pelo repositório certamente correra alguns riscos principalmente de segurança. Nesse caso entendo que compilar é melhor e a cada 6 meses atualizar a versão compilada para a corrente. VIDE: https://wiki.samba.org/index.php/Samba_Release_Planning
Boa noite. Estou com um problema e acredito que seu post sirva direitinho, mas gostaria de saber o seguinte:
1) Essas configurações ainda estão funcionando?
2) Se eu quiser deixar o samba como servidor dhcp, onde configuro isso?
3) Se eu quiser montar um servidor de arquivos nessa mesma maquina, como faço?