Samba 28: Backup nas Versões Mais Recentes do Samba

Resumo

 

Nosso Ambiente

 

  • Nome servidores: server01  e server02. Escolheremos o server01 para gerar backups
  • Endereços IPs: server01 com 192.168.0.40  e server02 com 192.168.0.41.
  • domínio: lab.local
  • diretório para guardar backup: /media/bkp

 

Criando Backup do Domínio

sudo /usr/local/samba/bin/samba-tool domain backup online --targetdir=/media/bkp  --server=server01   -Uadministrator

Foi gerado o arquivo /media/bkp/samba-backup-lab.local-2022-03-04T17-11-09.348701.tar.bz2

Restaurando o Backup

#1 Pare todos os serviços do samba em todos os servidores do domínio

#2 Em um servidor novo, nunca conectado na rede antes, com ip e nome diferente execute:

sudo /usr/local/samba/bin/samba-tool domain backup restore --backup-file=/media/bkp/samba-backup-lab.local-2022-03-04T17-11-09.348701.tar.bz2    --newservername=server03_novo   --targetdir=/opt/samba/

O backup  /media/bkp/samba-backup-lab.local-2022-03-04T17-11-09.348701.tar.bz2  recriará o domínio lab.local e os arquivos do samba ficarão em /opt/samba/

 

Aqui acabaria nosso artigo, mas ficaria muito resumido. Recomendamos que continue  a leitura:

Introdução

 

Antes de prosseguir sugiro a leitura:

Hoje iremos falar sobre como realizar backup usando a ferramenta “samba-tool”. O samba-tool para backup é algo novo que passou a existir somente a partir da versão 4.9 do samba.

Já temos posts falando sobre realização de backups no samba versões 4.0 à 4.8.

 

Alertas Importantes

 

A ferramenta é nova!

O a criação de backup e sua restauração via “samba-tool” é algo novo, veio na versão 4.9,  e pode não funcionar adequadamente na sua rede. Se estiver testando a criação e restauração de backups e encontrar problemas ou bugs o site do samba alerta para serem informados no Samba mailing-list. Isso evita descobrir que o backup não funciona quando você mais precisar.

O Restaure o Arquivo de Backup em novo Servidor!

O nome do servidor tem que ser um que nunca existiu na rede. Isso porque a página wiki do samba alerta que o novo DC, que terá o backup restaurado, não pode já ter existido na rede.

 

A pasta onde Ficará o Samba Restaurado Deverá Ser Diferente!

A pasta onde ficará o samba deverá ser diferente no servidor que terá o backup restaurado. A pasta padrão é a

/usr/local/samba/

e a página wiki do samba recomenda usar uma outra pasta qualquer no lugar dessa padrão. Mas se usarmos outra então teremos que iniciar o samba usando o “-s” apontando para o smb.conf.  Por exemplo, se colocarmos o samba restaurado na pasta abaixo

/opt/local/samba

então iniciaremos assim

/opt/local/samba/sbin/samba -s  /opt/local/samba/etc/smb.conf

Execute os Comandos como Root

Gere os backups como usuário root. Seja logado com o usuário root ou usando sudo. A criação do backup pode até funcionar ao usar um usuário sem privilégio mas poremos ter problemas ao tentar restaurar.  A restauração usando um usuário que não seja o root também terá sucesso mas ao tentarmos iniciar o samba receberemos erros.

 

 

Backup Deverá Ser a Última Opção a Ser Usada

 

Nesse artigo estamos falando sobre gerar arquivos de backups do samba usando “samba-tool domain backup…”. Isso gerará um arquivo de backup terminado em .tar.bz2. Dentro do backup haverá o arquivo “backup.txt” com informações sobre o tipo de backup realizado.

Se tiver somente um DC na sua rede então o arquivo de backup será a única opção em seu caso para que restaure um samba danificado e ele volte a funcionar. DC significa Controlador de Domínio(Domain Control) e é o servidor que gerencia(controla) o domínio.

O backup deve ser a sua última alternativa se você segue as recomendações deverá ter mais de um servidor DC controlando o domínio. Como na imagem acima onde temos dois controladores de domínio(DC) se o samba no server01 ficar corrompido  os usuários ainda continuarão protegidos e podendo autenticar na rede, pois teremos o server02. Nesse caso, para recuperar o server01 basta corrigir o problema e  sincronizar ele novamente com o server02 usando  “samba-tool domain join…“. Somente isso e a base de dados do server02 virá para o server01.

Nunca recupere um arquivo de backup se houver  um ou mais Controlador de Domínio(DC) ainda funcionando! Nesse caso, ao invés de restaurar o backup faça um join no servidor com samba danificado. Conforme acabamos de falar acima.

O arquivo de backup só deve ser usado quando todos os Controladores de Domínios(DCs) estiverem com problema no samba, ou seja, em caso de catástrofe.

Quando criamos um backup é feito o backup do domínio inteiro e não somente do servidor de onde está sendo feito o backup. Então quando recuperamos esse backup é recriado o domínio. isso quer dizer ainda que não faz muito sentido fazer ou gerar backup de todos os servidores que são DCs. Basta usar somente um dos servidores controladores de domínio para gerar o arquivo de backup.

 

Tipos de Backup do Samba com “samba-tool

 

Há 3 tipos de backup no samba quando usamos o “samba-tool”:

  • Online: esse é o backup que geralmente usamos. Se der problema basta restaurá-lo. Nesse caso não estamos preocupados em saber a causa do problema, desejamos apenas ter o sistema funcionando novamente.
  • Offline ou Local: só use esse backup se quiser estudar a fundo alguma situação. Esse backup guarda informações complexas sobre o samba e é apropriado para análise forense.
  • Rename ou Renomeado: como o nome sugere é um backup que quando restaurado terá outro nome de domínio. Por exemplo, se criamos um backup desse para o domínio lab.local ao restaurar o “backup renomeado” o domínio terá outro nome, exemplo teste.lab.local.  Por que usar esse backup? Ele é útil quando queremos estudar o domínio sem correr o risco de danificar o ambiente real de trabalho. Pois com esse tipo de backup podemos ter dois sambas rodando no mesmo servidor, dois domínios diferentes. Podemos ter o lab.local e o teste.lab.local ao mesmo na mesma rede.

 

Independente das 3 formas que escolhermos, o backup ficará em um arquivo .tar.bz2 e dentro desse arquivo há um chamado backup.txt com informações sobre o tipo do backup.

 

Realizando Backup Online no Samba

Nesse artigo focaremos no backup online.

Abaixo, mais uma vez, está nossa estrutura atual:

Temos o server01 e server02 como controladores do domínio lab.local.  Temos também o Ubuntu20 e Ubuntu que são membros do domínio lab.local.

Posso escolher tanto o server01 ou server02 para criar o backup do domínio. Irei escolher  server01 e guardarei o backup dentro de /media/bkp. Sempre guarde backups em fora do servidor de onde realiza o backup!

Vamos aos passos para gerar o backup:

#1 Acesse em algum dos controladores de domínio e abra o terminal. Irei usar o server01.

#2 Execute o comando “samba-tool domain backup online targetdir=/media/bkp/  server=server01 -U administrator”

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool domain backup online --targetdir=/media/bkp/  --server=server01 -U administrator

targetdir é o local onde ficará o arquivo do backup

server é o nome do servidor samba que faremos backup da base de dados.

-U vem de usuário e aqui colocamos o usuário administrator para que o comando seja executado com permissão de admin.

#3 Veja o arquivo gerado que ficou com o nome “samba-backup-lab.local-2022-03-08T13-18-56.171651.tar.bz2

elder@server01:~$ ls -l /media/bkp/
total 1368
-rw-r--r-- 1 root root 1380607 mar  8 13:19 samba-backup-lab.local-2022-03-08T13-18-56.171651.tar.bz2

 

Restaurando Backup Online no Samba

Na verdade quando restauramos o arquivo de backup estamos restaurando o domínio inteiro; por isso temos que seguir as etapas abaixo:

#1 Pare todos os Sambas em todos os servidores DCs.

#2 Tenha um servidor com novo nome(hostname) em mãos, um que nunca foi usado como DC na rede. Leve o arquivo de backup para ele e execute o comando abaixo, sendo que o novo servidor se chama server03_novo:

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool domain restore  --backup-file=/media/bkp/samba-backup-lab.local-2022-03-08T13-18-56.171651.tar.bz2   --newservername=server03_novo    --targetdir=/opt/samba/

Acima temos:

  • backup-file: é onde fica o arquivo de backup que geramos no server01
  • newservername: é o nome do novo servidor.
  • targetdir: onde ficará o samba agora. Lembrando que é bom evitar o local padrão “/usr/local/samba”

 

#3 Nos outros servidores, server01 e server02, faça novamente o “samba domain join

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

#4 inicie o samba

/opt/samba/sbin/samba  -s  /opt/samba/etc/smb.conf

 

Backup Offline e Renomeado do Samba

O backup offline e o renomeado não são o foco desse artigo. Mas seguem resumidamente os comandos referente à cada um deles para geração e restauração de backup. Esses comandos foram retirados da própria página do samba.org.

Backup offline do samba:

sudo samba-tool domain backup offline --targetdir=<output-dir>

Backup online do samba:

sudo samba-tool domain backup rename NEWDOMAIN new.renamed.com --server=<DC> --targetdir=<backup-dir> -UAdministrator
sudo samba-tool domain backup restore --newservername=<new-DC-name> --targetdir=<restore-dir> --backup-file=<backup-file>

para backup renomeado veja a página wiki do samba: wiki.samba.bakcup_renomeado

 

Conclusão

Tenha em mente que ao trazer o arquivo .tar.bz2 estamos trazendo de volta o domínio lab.local.

A restauração é semelhante a um “samba-tool domain provision..” que fizemos no artigo Debian Buster: Instalando o Samba

Estudamos sobre backup do samba e focamos no backup do tipo online.  É bom notar que podemos descompactar o arquivo  “samba-backup-lab.local-2022-03-08T13-18-56.171651.tar.bz2”  que foi gerado e analisar o conteúdo dos arquivos.

A restauração do samba

  • deve ser feita em uma máquina com nome da máquina(hostname) do DC nunca usado
  • a pasta a ser colocado o samba deve ser diferente da anterior que por padrão é /usr/local/samba

Uma dica é usar uma máquina virtual para restaurar o domínio nela e após isso juntar(join) os demais servidores controladores de domínio.

Fontes: wiki.samba,

 

5 Comments to “Samba 28: Backup nas Versões Mais Recentes do Samba”

Deixe um comentário

O seu endereço de e-mail não será publicado.