Criando Novo Cliente Windows no Servidor Bacula com Criptografia
Aqui vamos verificar como efetuamos a criação de um novo cliente Windows
Vamos criar o arquivo de configuração para gerar as chaves para o cliente
vim /etc/bacula/keys/server.cnf [req] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [req_dn] C=BR ST=Parana L=Curitiba O=GPB OU=IT CN=win2012.douglasqsantos.com.br emailAddress=douglas.q.santos@gmail.com [cert_type] nsCertType = server [v3_ca] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always basicConstraints=CA:true
Agora vamos criar um diretório para armazenar as chaves dos clientes e outro para as configurações
mkdir -p /etc/bacula/keys/clients/win2012/confs/keys
Agora vamos acessar o diretório que vai armazenar as chaves e vamos gerar a chave principal do cliente.
cd /etc/bacula/keys/clients/win2012/confs/keys openssl genrsa -out win2012-fd.key 2048
Agora vamos assinar a chave do cliente
openssl req -new -x509 -out win2012-fd.cert -key win2012-fd.key -config /etc/bacula/keys/server.cnf -extensions v3_ca
Agora vamos inserir as duas chaves em um arquivo
cat win2012-fd.key win2012-fd.cert > win2012-fd.pem
Agora vamos copiar a chave master.cert para a nosso cliente
cp -Rfa /etc/bacula/keys/master.cert .
Agora vamos a configuração do cliente
vim /etc/bacula/keys/clients/win2012/confs/bacula-fd.conf # LIST DIRECTORS WHO ARE PERMITTED TO CONTACT THIS FILE DAEMON Director { Name = bacula-dir Password = "hNqN7izeRCRLTcsXUUcoAdaaRpVcg2mnvy1" } # RESTRICTED DIRECTOR, USED BY TRAY-MONITOR TO GET THE # STATUS OF THE FILE DAEMON Director { Name = bacula-mon Password = "jgNDYGHmez8tsFUyIPdRSfEu9K7yrNIgms9" Monitor = yes } # "GLOBAL" FILE DAEMON CONFIGURATION SPECIFICATIONS FileDaemon { Name = win2012-fd FDport = 9102 WorkingDirectory = "C:\\Program Files\\Bacula\\working" # Diretorio de Trabalho Pid Directory = "C:\\Program Files\\Bacula\\working" # Diretorio de PID Maximum Concurrent Jobs = 10 # Numero Maximo de Jobs em execucao FDAddress = 0.0.0.0 PKI Signatures = Yes # Habilita a assinatura dos dados PKI Encryption = Yes # Habilita a criptografia dos dados PKI Keypair = "C:\\Program Files\\Bacula\\keys\\win2012-fd.pem" # Arquivo que contem a chave publica e privada PKI Master Key = "C:\\Program Files\\Bacula\\keys\\master.cert" # Arquivo com a chave publica do servidor } # SEND ALL MESSAGES EXCEPT SKIPPED FILES BACK TO DIRECTOR Messages { Name = Standard director = bacula-dir = all, !skipped, !restored }
Agora vamos criar o cliente para o servidor bacula
vim /etc/bacula/clients-jobs/win2012-jobs.conf #Configuration to Jobs on win2012 Job { Name = "Win2012-Backup" # Nome do Job para Backup do Cliente JobDefs = "Default-Windows" # JObDefs Definido Client = win2012-fd # Cliente fd Storage = Win2012-Storage Pool = Win2012-Pool FileSet = "WebServer-Windows" Schedule = "Weekly-Cycle-Windows" } Client { Name = win2012-fd # Cliente fd Address = 172.17.0.93 Password = "hNqN7izeRCRLTcsXUUcoAdaaRpVcg2mnvy1" # Senha do Director do Bacula que foi configurado no cliente na primeira sessão Director Maximum Concurrent Jobs = 10 #Habilita o cliente a executar mais de um job por vez @/etc/bacula/clients-jobs/weekly-client # Arquivo onde contem informacoes sobre o cliente. }
Agora vamos criar a configuração do device para o nosso cliente
vim /etc/bacula/devices/win2012-device.conf #Configuration to Device on win2012 Device { Name = Win2012-Device # Nome do Device Media Type = File # Tipo de Midia (DVD, CD, HD, FITA) Archive Device = /srv/backup/win2012 # Diretorio onde serao salvos os volumes de backup LabelMedia = yes; # Midias de Etiquetamento do Bacula Random Access = Yes; # AutomaticMount = yes; # Montar Automaticamente RemovableMedia = no; # Midia Removivel AlwaysOpen = no; # Manter Sempre Aberto }
Agora vamos configurar o pool para o cliente
vim /etc/bacula/pools/win2012-pool.conf #Configuration for Pool client01 Pool { Name = Win2012-Pool # o Job de Backup por padrao aponta para o 'File' Pool Type = Backup # O Tipo do Pool = Backup, Restore, Etc. Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 8 days # Retencao de Volume = 1 Mes Volume Use Duration = 7 days # Duracao de um volume aberto Maximum Volume Bytes = 20 Gb # Tamanho maximo de um volume Maximum Volumes = 10 # Volume Bytes X Volumes <= Dispositivo de backup LabelFormat = "volume-win2012-" # Nome Default do Volume }
Agora vamos criar o storage para o cliente
vim /etc/bacula/storages/win2012-storage.conf #Configuration for storage client01 Storage { Name = Win2012-Storage Address = 172.17.0.90 # Pode ser usado Nome ou IP SDPort = 9103 # Porta de Comunicação do Storage Password = "aLobW0dx5UrSru5JPDxdKCx5e9QPCN6hQU5" # Senha Storage Bacula Device = Win2012-Device # Device de Storage Media Type = File # Tipo de Midia (Fita, DVD, HD) Maximum Concurrent Jobs = 10 # Num. Maximo de Jobs executados nessa Storage. }
Vamos criar o bconsole para o nosso cliente
vim /etc/bacula/keys/clients/win2012/confs/bconsole.conf #CONFIGURATION FOR BCONSOLE Director { Name = bacula-dir DIRport = 9101 address = 172.17.0.90 Password = "XHJhBJpspiuCWMzmQTI6ucifzHoVe9UQ0hy" }
Vamos criar um arquivo de registro que tem que ser importado no cliente Windows.
vim /etc/bacula/keys/clients/win2012/bacula.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine\SystemStateBackup] "ALlowSSBToAny"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows] "NoInteractiveServices"=dword:00000000
Agora vamos criar um bat para criar a regra de firewall e habilitar os serviços que precisamos e importar o registro do Windows.
vim /etc/bacula/keys/clients/win2012/depois-da-instalacao.bat echo "Copiando arquivos do Bacula" move /Y "C:\Program Files\Bacula\bacula-fd.conf" "C:\Program Files\Bacula\bacula-fd.conf.bkp" move /Y "C:\Program Files\Bacula\bconsole.conf" "C:\Program Files\Bacula\bconsole.conf.bkp" xcopy confs\* "C:\Program Files\Bacula\" /s /y echo "Importando registro para o Bacula" regedit.exe /s bacula.reg echo "Criando regra de liberação de acesso ao para o Bacula-FD" netsh advfirewall firewall add rule name="Bacula-FD" dir=in action=allow protocol=TCP localport=9102 echo "Habilitando o Serviço de detecção de serviços interativos" sc config UI0Detect start= auto echo "Inicializando o Servico de deteccao de sevicos interativos" net start "UI0Detect" echo "Iniciando o servico do Bacula" net start "Bacula-fd"
Agora vamos converter o nosso bat e o registro para o formato Microsoft
unix2dos /etc/bacula/keys/clients/win2012/bacula.reg unix2dos /etc/bacula/keys/clients/win2012/depois-da-instalacao.bat
Agora vamos criar o diretório para armazenar os backups do cliente
mkdir /srv/backup/win2012/
Agora vamos ajustar as permissões
chown -R bacula:tape /srv/backup/win2012/ chown -R bacula:bacula /etc/bacula
Agora vamos criar um pacote tar da configuração do nosso cliente
Vamos acessar o diretório do cliente
cd /etc/bacula/keys/clients/win2012
Vamos obter o executavél para a instalação do cliente Bacula no Windows 64
wget -c http://wiki.douglasqsantos.com.br/Downloads/bacula/bacula-win64-5.2.10.exe
ou
Vamos obter o executavél para a instalação do cliente Bacula no Windows 32
wget -c http://wiki.douglasqsantos.com.br/Downloads/bacula/bacula-win32-5.2.10.exe
Agora vamos gerar o pacote
zip -r win2012.zip *
Agora vamos recarregar a configuração do bacula
/etc/init.d/bacula-dir force-reload /etc/init.d/bacula-sd force-reload
Agora é só fazer a instalação do cliente bacula bacula-win*-5.2.10.exe e rodar o depois-da-instalacao.bat