Samba 4 como PDC e BDC

Como base para nossos trabalhos com o Free Bsd 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 8 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.

Vamos começar?

Instalando as dependências:

[code type="Cole no terminal ROOT e pressione ENTER"]apt-get install gcc flex make gdb python-ldap python-dev libacl1-dev[/code

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

[code type="Cole no terminal ROOT e pressione ENTER"]./configure –enable-debug –enable-selftest[/code]

[code type="Cole no terminal ROOT e pressione ENTER"]make[/code]

[code type="Cole no terminal ROOT e pressione ENTER"]make install[/code]

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”.

[code type="Cole no terminal ROOT e pressione ENTER"]/usr/local/samba/bin/samba-tool domain provision[/code]

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”.

[code type="Cole no terminal ROOT e pressione ENTER"]host -t SRV _ldap._tcp.meudominiolocal[/code]

[code type="Cole no terminal ROOT e pressione ENTER"]host -t SRV _kerberos._tcp.meudominio.local[/code]

Não funcionou? Calma.. você precisa dar o start no serviço.

[code type="Cole no terminal ROOT e pressione ENTER"]/usr/local/samba/sbin/samba[/code]

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.

[code type="Cole no terminal ROOT e pressione ENTER"]./samba-tool domain join meudominio.local DC Uadministrator –realm=meudominio.local –dns-backend=SAMBA_INTERNAL[/code]

###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.

[code type="Cole no terminal ROOT e pressione ENTER"]./samba-tool drs showrepl[/code] 

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.

[code type="Conteúdo do arquivo"]sysvol-replication:SENHAs3cr3t4[/code]

##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.

[code type="Cole no terminal ROOT e pressione ENTER"]chmod 0400 rsyncd.secret[/code] 

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!

[code type="Cole no terminal ROOT e pressione ENTER"]chmod 0400 rsync-sysvol.secret[/code]

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://Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo..1.2/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://Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo..1.2/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.

Atila Aloise de Almeida

Atila Aloise de Almeida, Bacharel em Sistemas de Informação, Pós-graduado em Segurança de Redes e Sistemas de informação, Programador WEB, Músico, entusiasta do software livre e da comunidade Open Source. Atualmente Gerencia a Infraestrutura de redes e servidores de um grupo de oito empresas utilizando ferramentas livres, desenvolve Sites voltados a portais de notícia e atua como consultor de infraestrutura e segurança tecnológica.

Mais recentes de Atila Aloise de Almeida