Como instalar e configurar o Samba 4 como PDC e BDC!

como-instalar-configurar-samba-4-pdc-bdc

Neste artigos, vamos demonstrar como instalar e configurar o Samba 4 como PDC e BDC, como base para nossos trabalhos com o FreeBsd nas distro’s pfSense e FreeNas, precisaremos ter um serviço de autenticação centralizada, afinal de contas precisamos de um ambiente completo e próximo a realidade.

Aproveito então para mostrar a instalação e configuração do Samba 4 como Controlador primário e como Controlador Backup.

Como quase tudo nessa vida, é mais simples do que parece. Vamos utilizar o Debian como base. Configure a rede com ip fixo, hostname “pdc” e FQDN “pdc.meudominio.local”.

Feito isso, baixe a ultima versão do Samba diretamente no site oficial:

Download

Vamos começar? Lembre-se que todos os comandos devem ser executados como ROOT

Instalando as dependências:

apt-get install gcc flex make gdb python-ldap python-dev libacl1-dev

Descompacte os arquivos na sua home de root mesmo, entre na pasta e compile:

./configure –enable-debug –enable-selftest
make
make install

Pronto! Samba 4 instalado. Agora você precisa criar seu domínio. Utilizamos a ferramenta “samba-tool” para isso. Por padrão, o samba 4 instalado dessa forma ficará com o path “/usr/local/samba”. Use o comando para provisionar seu domínio respondendo o que for solicitado. Atenção apenas na hora que ele solicitar o mecanismo de “DNS”, utilize o “samba internal”.

/usr/local/samba/bin/samba-tool domain provision
Agora sim! Vamos testar?

Instale o pacote “dnsutils” via apt-get e digite os comandos abaixo para testar o funcionamento do seu samba 4 como “PDC”.

host -t SRV _ldap._tcp.meudominiolocal host -t SRV _kerberos._tcp.meudominio.local
Não funcionou? Calma.. você precisa dar o start no serviço.
/usr/local/samba/sbin/samba
Teste novamente.

Agora vamos ao “BDC”.

Apesar do trabalho incansável dos desenvolvedores, o samba ainda não possui todos os recursos do AD micro$oft. Questão de tempo, mas nada que não possa ser resolvido com o kit de ferramentas que temos disponíveis em nosso amado Pinguim.

Em outra máquina, instale as dependências e compile o samba da mesma forma que fizemos no “PDC”. O que muda aqui, é que agora vamos ingressar no domínio como controlador Backup. Utilizamos o “samba-tool” com parâmetros específicos pra isso.

./samba-tool domain join meudominio.local DC Uadministrator –realm=meudominio.local –dns-backend=SAMBA_INTERNAL
Não se esqueça de configurar sua rede e usar o PDC como servidor DNS. Isso deve ser feito para todas as máquinas que ingressarão no domínio!

Após isso, inicie o samba e use o comando abaixo para verificar se os controladores começaram a se falar.

./samba-tool drs showrepl

A administração pode ser feita via samba-tool, porém isso fica pra outro post. Vamos utilizar as ferramentas de administração de servidor remoto. Instale no seu Windows 7 mesmo obtendo aqui.
Para gerenciar seu ad, sua máquina windows deve estar no domínio. Para isso ela deve estar na mesma rede do “PDC”, que deve ser apontado como DNS também.

Crie alguns usuários, “GPO”, “OU’s” e comece a modelar seu AD. Feito isso, vamos acertar um último detalhe. Repare que se você conectar no “BDC”, os usuários e a estrutura do seu AD estarão replicados, porém se você for mexer nas GPO’s do BDC, receberá a mensagem de “Arquivo não encontrado”.

O que ocorre é: As GPOS que você criar no “PDC” não são replicadas no BDC nativamente, portanto você precisa fazer isso na mão, neste caso, com “RSYNC” e “CRON”.

Instale o rsync via apt-get. Nos dois servidores.

Agora precisamos replicar a pasta “SYSVOL” que contém os arquivos das GPOS. O rsync cuidará disso tranquilamente, e o cron se encarrega de repetir a operação a cada 5 minutos para manter tudo sincronizado.

Como o Cron fará tudo sem nossa intervenção, precisamos configurar alguns parâmetros de autenticação e da pasta que será sincronizada. Para isso o rsync deverá rodar como DAEMON, o que pode ser feito no debian alterando o arquivo “/etc/default/rsync”, trocando a linha “RSYNC_ENABLE” de false para true.

# start rsync in daemon mode from init.d script?
# only allowed values are “true”, “false”, and “inetd”
# Use “inetd” if you want to start the rsyncd from inetd,
# all this does is prevent the init.d script from printing a message
# about not starting rsyncd (you still need to modify inetd’s config yourself).
RSYNC_ENABLE=true

Agora você pode startar o rsync como serviço, através do comando “#service rsync start”, mas não faça isso ainda. Para configurar o que pode ser sincronizado e a autenticação que o serviço aceitará para a tarefa, crie o arquivo “/etc/rsyncd.conf”. Deixe ele assim:

[sysvol] path = /usr/local/samba/var/locks/sysvol/
comment = Samba Sysvol
uid = root
gid = root
read only = yes
auth users = sysvol-replication
secrets file = /usr/local/samba/etc/rsyncd.secret
Parece um arquivo de configuração do samba né? Simples assim!

O que fizemos foi criar um compartilhamento rsync chamado “sysvol”, apontamos a pasta que queremos que seja replicada, e definimos um usuário a ser usado apenas para esse acesso, o “sysvol-replication” apontando o arquivo que contem a senha que deve ser aceita para a conexão. Deixe este arquivo no “etc do samba” para mantermos o ambiente organizado.
Crie o arquivo “/usr/local/samba/etc/rsyncd.secret” e ponha o seguinte conteúdo.

sysvol-replication:SENHAs3cr3t4
Sintaxe do arquivo, “nome do usuário” : “senha”

Detalhe importante, só o root pode ler esse arquivo, portanto não esqueça de setar a permissão correta, senão o rsync não aceitará o arquivo.

chmod 0400 rsyncd.secret
Nosso PDC está pronto para aceitar os pedidos de sincronização do SYSVOL via Rsync!

Vamos agora configurar nosso BDC para sincronizar de fato. Primeiro, criamos o arquivo com a senha de autenticação no rsync remoto. Precisaremos disso para que o cron possa fazer o trabalho sozinho depois.

Crie o arquivo “/usr/local/samba/etc/rsync-sysvol.secret” e coloque a senha que configuramos no PDC. Arquivo: /usr/local/samba/etc/rsync-sysvol.secret

SENHAs3cr3t4

Configure a permissão correta. Só o root pode ler esse arquivo!

chmod 0400 rsync-sysvol.secret

Teste a sincronização utilizando o parâmetro “–dry-run” do rsync. Cuidado com os Path’s, esse comando apaga tudo que tem na pasta e sincroniza com o sysvol do PDC, se você apontar o caminho errado, pode acabar perdendo algo importante!

rsync –dry-run -XAavz –delete-after –password-file=/usr/local/samba/etc/rsync-sysvol.secret rsync://[email protected]/sysvol/ /usr/local/samba/var/locks/sysvol/
Estamos assumindo que você utilizou o Ip “192.168.1.2” no seu PDC

Sem erros? Então podemos remover o “–dry-run” e inserir no cron. Acesse sua Cron tab [crontab -e] e insira a linha a seguir:

*/5 * * * * rsync -XAavz –delete-after –password-file=/usr/local/samba/etc/rsync-sysvol.secret rsync://[email protected]/sysvol/ /usr/local/samba/var/locks/sysvol/

Finalmente! Agora a cada 5 minutos seu BDC vai sincronizar as GPO’s que você criar no Ad! Acompanhem as postagens na seção Free Bsd. Nos próximos Posts, vamos fazer um File server autenticado em nosso Ad Samba 4. Espero que tenham gostado.