Samba 19: Unindo(Joining) Um Servidor Samba ao Domínio

Porque Fazer um Joining?

Bom, uma instalação apenas do samba é suficiente mas por questão de backup e load balancing(balanceamento de carga) é bom adicionar mais controladores de domínios(DC) ao Active Directory(AD). Se um dia um servidor parar outro continuará trabalhando.

Um servidor de DNS serve para transformar/ traduzir Nomes para IPs. Quando acessamos o site www.google.com o servidor de DNS direciona esse endereço para o IP 172.217.172.142. O Samba também usa Serviços de DNS. Assim, quando temos um secundo servidor samba unido a outro temos redundância redudância/backup de dns do Active Directory. Como iremos usar o serviço de DNS interno do samba não precisaremos fazer nada, tudo será configurado automaticamente.

Servidores Usados

Após instalar o Debian 10 e instalar o Samba nele, instalei um segundo servidor Debian seguindo as mesmas etapas do primeiro.

Então tenho dois servidores Debian abaixo:

 

No server01 tenho o samba já instalado e provisionado enquanto que no server02 tenho samba instalado mas sem provisionar, ou seja, instalei o samba e não executei o comando “samba-tool domain provision“. Na verdade esse comando não irá ser usado no server02 como foi no server01, sabe por quê? porque não iremos provisionar o server02 mas sim juntá-lo ao samba no server01. Usaremos o comando “samba-tool domain join“.

 

Preparativos

Antes de iniciar o join precisamos fazer alguns ajustes no server02

    • Verifique com o comando “date” se a data e horário dos dois servidores estão iguaisNo server01
      elder@server01:~$ date
      sex dez 18 10:33:46 -03 2020

      No server02

      elder@server02:~$ date
      sex dez 18 10:33:48 -03 2020
    • Deixe o arquivo “/etc/resolv” do server02  da seguinte forma. Use seu editor de texto predileto, usei o vim, porém o nano é mais fácil de usar.
elder@server02:~$ sudo vim /etc/resolv.conf
domain lab.local
search lab.local
nameserver 192.168.0.40
nameserver 8.8.8.8

O “nameserver 192.168.0.40” aponta para o server01. O segundo “nameserver 8.8.8.8” é aponta para servidor dns do google

      • Depois de editado o arquivo “/etc/resolv“, ainda no server02, execute o comando “nslookup server01” para  verificarmos se o dns traduz corretamente
        elder@server02:~$ nslookup server01
        Server:		192.168.0.40
        Address:	192.168.0.40#53
        
        Name:	server01.lab.local
        Address: 192.168.0.40

        Vimos acima que ele encontrou server01 como sendo 192.168.0.40. Funcionou

      • No server02, renomeie “/etc/krb5.conf” para “/etc/krb5.conf.bkp
        elder@server02:~$ sudo mv /etc/krb5.conf /etc/krb5.conf.bkp
      • No server02, crie um novo arquivo “/etc/krb5.conf” e coloque dentro dele o conteúdo abaixo
        [libdefaults]
            dns_lookup_realm = false
            dns_lookup_kdc = true
            default_realm = LAB.LOCAL

         

      • Faça o teste  com “kinit administrator“. Quando perguntado pela senha coloque a do usuário administrator do server01.
        elder@server02:~$ sudo kinit administrator
        Password for administrator@LAB.LOCAL: 
        Warning: Your password will expire in 41 days on qui 28 jan 2021 12:54:37 -03
        

        Acima, se a mensagem que aparecer for “kinit: Cannot find KDC for realm “LAB.LOCAL” while getting initial credentials” é porque sua configuração está errada dentro de “/etc/krb5.conf”.

      • Faça outro teste rodando “klist
        elder@server02:~$ sudo klist
        Ticket cache: FILE:/tmp/krb5cc_0
        Default principal: administrator@LAB.LOCAL
        
        Valid starting       Expires              Service principal
        18/12/2020 11:03:50  18/12/2020 21:03:50  krbtgt/LAB.LOCAL@LAB.LOCAL
        	renew until 19/12/2020 11:03:40

     

Se acima deu tudo certo então podemos prosseguir para a junção(joining) do samba do server02 para o do server01.

 

Joining(juntando) o Samba

 

A ferramenta samba-tool está dentro de “/usr/local/samba/bin/”.

Para o joining podemos usar  mais um dos 3 comando abaixo.

samba-tool domain join lab.local DC -U"LAB\administrator"

ou

samba-tool domain join lab.local DC -k yes

ou

 samba-tool domain join lab.local DC --krb5-ccache=/tmp/krb5cc_0

 

Aplicando o Joining

elder@server02:~$ sudo /usr/local/samba/bin/samba-tool domain join lab.local DC -U"LAB\administrator"

Um monte de texto irá começar a aparecer rolando na sua tela. O que precisa ficar atento é se o texto abaixo em laranja irá surgir indicando que o samba do server02 foi unido(joined) ao do server01.

Password for [LAB\administrator]:
..............
Joined domain LAB (SID S-1-5-21-2438428484-488911018-1413011155) as a DC

 

Inicie o samba no server02

 

execute “sudo /usr/local/samba/sbin/samba” para iniciar o samba em server02

elder@server02:~$ sudo /usr/local/samba/sbin/samba

 

Confirmando o Joining

Obs.: O servidor samba adicionado pode levar até 15 minutos para ter uma conexão OK.

        • No server02 liste os usuários. Anteriormente criei um usuário chamado “polo” no server01, vamos ver se ele irá aparecer:
          elder@server02:~$ sudo /usr/local/samba/bin/samba-tool user list
          Guest
          Administrator
          polo
          krbtgt
        • Verifique entradas dns
          elder@server02:~$ sudo host -t A server01.lab.local
          server01.lab.local has address 192.168.0.40
          elder@server02:~$ sudo host -t A server02.lab.local
          server02.lab.local has address 192.168.0.41
          

       

 

Crie a usuária “maria” no server01

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool user create maria

Agora rode o comando “samba-tool user list” e confirme se a usuária criada no server01 aparece no server02

elder@server02:~$ sudo /usr/local/samba/bin/samba-tool user list
Guest
Administrator
polo
maria
krbtgt

 

Fala o contrário, crie um usuário no server02 e veja se aparece no server01

 

No server02

elder@server02:~$ sudo /usr/local/samba/bin/samba-tool user create joao
New Password: 
Retype Password: 
User 'joao' created successfully

 

No server01

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool  user list
Guest
Administrator
polo
joao
maria
krbtgt

 

Exibindo o Status da Replicação

Execute em qualquer um dos servidores do domínio o seguinte comando:

samba-tool drs showrepl

Irá ser exibido um texto longo. Ao final terá algo parecido com isso:

Connection --
       Connection name: fb03f58b-1654-4a02-8e11-f0ea120b60cc
       Enabled        : TRUE
       Server DNS name : lab.local
       Server DN name  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local
               TransportType: RPC
               options: 0x00000001
Warning: No NC replicated for Connection!

Alaranjei acima alguns pontos importantes

A conexão está ativa = Enable : true

O alerta “Warning: No NC replicated for Connection!” pode ser ignorado

Conclusão

Agora temos um samba(servidor de arquivos de impressão) executando em mais de um servidor e dessa forma temos redundância e load balance. Se um servidor ficar danificado todas as estações de trabalho continuarão trabalhando sem problemas. Aliás, veja nosso post Samba 007: Adicionando Windows 7 ao Domínio do Samba para saber como adicionar computadores Windows em nosso domínio. Tome cuidado  para substituir empresa100.local pelo seu, no meu caso eu substituo empresa100.local por lab.local.

 

Fontes: samba.org

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “Samba 19: Unindo(Joining) Um Servidor Samba ao Domínio”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *