Introdução à Segurança de Dados com Duplicati
No cenário atual de infraestrutura de TI, a garantia da integridade e confidencialidade dos dados não é apenas uma boa prática, mas uma exigência regulatória e operacional crítica. Enquanto ferramentas como Restic e Borg ganharam popularidade por sua eficiência deduplicada e simplicidade de linha de comando, o Duplicati destaca-se como uma solução robusta para ambientes que exigem uma interface gráfica web (WebUI) e agendamento integrado sem necessidade de scripts complexos. Este tutorial aborda a configuração de um backup local seguro, utilizando criptografia AES-256 para proteger os dados em repouso.
A escolha do Duplicati é ideal para sysadmins que precisam gerenciar múltiplos backups através de uma interface centralizada, permitindo auditoria visual dos processos e recuperação ágil. Ao combinar o Duplicati com ferramentas de monitoramento como Zabbix ou Grafana, criamos um ciclo completo de observabilidade: o backup é executado, e sua saúde é verificada em tempo real.
Pré-requisitos e Instalação
Antes de iniciar a configuração, certifique-se de que seu servidor atenda aos requisitos mínimos. O Duplicati é uma aplicação .NET, o que significa que ela roda de forma consistente em Linux, Windows e macOS. Para este guia, focaremos na instalação em um ambiente Linux Ubuntu/Debian, mas a lógica de configuração aplica-se universalmente.
A instalação do serviço pode ser feita através do repositório oficial ou via pacote .deb. Execute os comandos abaixo para adicionar o repositório e instalar o serviço:
curl https://download.duplicati.com/duplicati.gpg.key | sudo apt-key add -
echo 'deb https://download.duplicati.com stable main' | sudo tee /etc/apt/sources.list.d/duplicati-stable.list
sudo apt-get update
sudo apt-get install duplicati
Após a instalação, o serviço Duplicati estará rodando na porta padrão 8200. Acesse o endereço http://localhost:8200 em um navegador para abrir a interface de configuração inicial. Crie uma senha forte para o acesso administrativo; esta senha será necessária para modificar as configurações de backup e restauração.
Configuração do Destino Local
O primeiro passo na criação de uma nova tarefa de backup é definir onde os dados serão armazenados. Para backups locais, utilizamos o sistema de arquivos nativo ou um volume montado via NFS/iSCSI. A estrutura de diretórios deve ser planejada considerando a expansão futura e permissões de leitura/escrita.
Navegue até o menu Backup > Add Backup. No campo Destination, selecione a opção Local Folder. Você será solicitado a informar o caminho absoluto do diretório onde os blocos de backup serão armazenados. Exemplo:
/var/backups/duplicati-local-data
Crie este diretório e atribua as permissões corretas para que o usuário duplicati possa escrever nele:
sudo mkdir -p /var/backups/duplicati-local-data
sudo chown duplicati:duplicati /var/backats/duplicati-local-data
Atenção: Nunca armazene o banco de dados do Duplicati (que contém os índices dos arquivos) no mesmo local exato que os dados criptografados sem uma estratégia de redundância clara. O ideal é manter o banco de dados em /var/lib/duplicati (padrão) e os dados brutos em outro disco ou partição.
Habilitando a Criptografia AES-256
A segurança dos backups locais depende intrinsecamente da criptografia. Mesmo que o disco físico seja recuperado por um atacante, sem a chave de descriptografia, os dados permanecem ilegíveis. O Duplicati utiliza AES-256 por padrão para criptografar cada bloco de dados antes de armazená-lo no destino.
No formulário de configuração do backup, localize a seção Encryption. Selecione o algoritmo AES. O sistema gerará automaticamente uma chave de criptografia única. Existem duas abordagens para lidar com essa chave:
- Senha Aleatória Gerada: O Duplicati cria uma senha forte e a exibe. Você deve copiar e salvar esta senha em um gerenciador de senhas seguro (como KeePass ou Vaultwarden). Sem ela, a restauração é impossível.
- Senha Personalizada: Você define sua própria frase secreta. Certifique-se de que ela seja longa e complexa.
Recomendamos fortemente o uso da senha aleatória gerada pelo sistema. Anote-a em um local físico ou digitalmente seguro, separado dos backups. Perder esta chave significa perder os dados permanentemente, pois não há backdoor no algoritmo AES.
Filtragem e Otimização de Dados
Para evitar o consumo desnecessário de espaço em disco e tempo de processamento, utilize as opções de filtragem. No campo Filters, você pode definir padrões para incluir ou excluir arquivos.
Por exemplo, se você está fazendo backup do sistema operacional, é útil excluir caches temporários e diretórios virtuais:
-/tmp/*
-/var/cache/*
-/proc/*
-/sys/*
O sinal de menos (-) indica exclusão. O Duplicati processa as regras na ordem em que aparecem, portanto, coloque as regras de exclusão específicas antes das regras de inclusão gerais se houver conflitos.
Agendamento e Retenção (Policies)
A estratégia de retenção define por quanto tempo os backups são mantidos. O Duplicati utiliza o conceito de Policies, que combina frequência de backup com duração de retenção.
No menu Options > Storage, configure a política padrão:
- Backup every: Defina o intervalo (ex: 1 hora, 1 dia).
- Keep backups for: Defina o tempo de retenção (ex: 7 dias, 30 dias, 6 meses).
Além disso, ative a opção Deduplication. Ela garante que apenas blocos de dados novos sejam enviados ao disco local, economizando significativamente espaço. Para backups locais, a deduplicação é quase sempre recomendada.
Integração com Zabbix e Grafana
Um backup sem monitoramento é como um carro sem painel: você só saberá se há problemas quando o motor parar de funcionar. Integrar o Duplicati ao Zabbix ou Grafana permite alertas proativos.
Coleta de Métricas via Zabbix
O método mais eficaz para monitorar o Duplicati no Zabbix é através do script de linha de comando ou da API JSON-RPC. O serviço Duplicati expõe uma interface web que pode ser consultada.
Crie um script customizado (UserParameter) no zabbix_agentd.conf para verificar o status das tarefas:
UserParameter=duplicati.status[*],curl -s http://localhost:8200/api/v1/backup/<param1>/status | jq '.[0].State'
Neste exemplo, <param1> seria o nome da sua tarefa de backup. O Zabbix pode então criar um trigger para alertar se o estado for Error ou Warning.
Visualização no Grafana
Para visualização avançada, você pode usar o plugin do Zabbix no Grafana ou integrar diretamente via API. Crie painéis que mostrem:
- Tamanho total dos backups ao longo do tempo.
- Duração das tarefas de backup (para detectar degradação de performance).
- Logs de erros recentes extraídos do arquivo
/var/log/duplicati.log.
Essa integração transforma o Duplicati de uma ferramenta passiva em um componente ativo da sua infraestrutura de observabilidade, alinhando-se às melhores práticas de SRE (Site Reliability Engineering).
Teste de Restauração e Validação
A regra de ouro dos backups é: se você não testou a restauração, o backup não existe. Após configurar o job:
- Crie um arquivo de teste em qualquer pasta monitorada pelo backup.
- Aguarde o próximo ciclo de execução ou inicie manualmente via WebUI.
- Vá para a aba Restore.
- Selecione o backup mais recente e tente recuperar o arquivo criado.
Verifique se o conteúdo do arquivo recuperado corresponde exatamente ao original. A criptografia AES deve transparentemente descriptografar os dados durante este processo, sem intervenção manual.
Melhores Práticas de Segurança Adicionais
Embora a criptografia proteja o conteúdo, outras camadas de segurança são necessárias:
- Proteção da WebUI: Nunca exponha a porta
8200 diretamente à internet. Use um reverse proxy (Nginx/Apache) com HTTPS e autenticação básica ou OAuth. - Cópia Offsite: Backups locais estão vulneráveis a desastres físicos (incêndio, roubo). Configure uma segunda tarefa de backup no Duplicati enviando dados para um serviço cloud (S3, Dropbox) ou outro servidor via SSH/SFTP.
- Monitoramento de Disco: Use Zabbix para monitorar o espaço em disco do destino. Um alerta antes que o disco encha evita falhas silenciosas nos backups.
Conclusão
O Duplicati oferece uma ponte eficiente entre a simplicidade de uso e a robustez técnica necessária para backups seguros. Com a configuração adequada de criptografia AES-256 e integração com ferramentas de monitoramento como Zabbix e Grafana, você garante não apenas a disponibilidade dos dados, mas também sua confidencialidade e integridade.
Lembre-se: a segurança é um processo contínuo. Revise as políticas de retenção periodicamente, atualize o serviço Duplicati para a versão mais estável e mantenha suas chaves de criptografia em local seguro. Em comparação com soluções puramente baseadas em linha de comando como Restic ou Borg, o Duplicati ganha pontos na facilidade de gestão centralizada, sendo uma escolha estratégica para equipes que priorizam visibilidade e auditoria.