REDE ONLINE · 7 fabricantes · 84 artigos · 1.2k comandos
v2.1.0 PT_BR
CircuitoCarioca
Home
↳ Visão geral Datacom Nokia Huawei Mikrotik Cisco Intelbras Parks
↳ Visão geral VLAN QinQ MPLS BGP OSPF
Ferramentas
↳ Visão geral Linux Windows Zabbix Grafana LibreNMS Firewall VPN Hardening
Wiki Comunidade Sobre
entrar cadastrar
backup · ferramenta · linha de comando

restic

Deduplicado, criptografado por padrão, multi-backend — instalação, uso real e integração com armazenamento imutável.

Nesta página

1. Características 2. Instalação 3. Inicializar repositório (local, S3, SFTP) 4. Backup — FreeRADIUS + banco de dados 5. Política de retenção 6. Restauração e validação 7. Script de backup/restore com cron 8. Integração com S3 Object Lock 9. Off-site adicional com rclone 10. Referências

1. Características

  • Deduplicação por blocos de conteúdo — mesmo arquivo grande alterado parcialmente só grava a diferença real
  • Criptografia por padrão, sempre — não é opcional, não existe modo "sem senha"
  • Multi-backend — local, SFTP, S3 e compatíveis (Backblaze B2, MinIO), Azure, Google Cloud, entre outros
  • Snapshot independente — cada execução de backup se comporta como um "full" completo na hora de restaurar, mesmo sendo tecnicamente incremental por baixo
  • Binário único, sem dependência de daemon rodando — diferencial real de simplicidade frente ao Bacula

2. Instalação

# Debian/Ubuntu
apt install restic

# Ou binário direto (versão mais recente que o repositório da distro)
wget https://github.com/restic/restic/releases/latest/download/restic_linux_amd64.bz2
bunzip2 restic_linux_amd64.bz2
chmod +x restic_linux_amd64
mv restic_linux_amd64 /usr/local/bin/restic

3. Inicializar repositório

# Repositório LOCAL (disco separado do servidor de produção)
export RESTIC_REPOSITORY="/mnt/backup-disk/repo-radius"
export RESTIC_PASSWORD="senha-de-criptografia-forte"
restic init

# Repositório S3-compatível (off-site)
export RESTIC_REPOSITORY="s3:https://s3.provedor.com/bucket-backup-isp"
export AWS_ACCESS_KEY_ID="sua-chave"
export AWS_SECRET_ACCESS_KEY="sua-chave-secreta"
export RESTIC_PASSWORD="senha-de-criptografia-forte"
restic init

# Repositório via SFTP
export RESTIC_REPOSITORY="sftp:usuario@servidor-remoto:/backups/repo-radius"
restic init

A senha de criptografia (RESTIC_PASSWORD) não fica gravada no repositório — perdê-la significa perder acesso permanente aos dados, mesmo com o repositório intacto. Guarde em cofre de senhas separado, nunca só no mesmo servidor que faz o backup.

4. Backup — configuração FreeRADIUS + banco de dados

# 1. Gera dump consistente do banco ANTES do backup de arquivo
mysqldump --single-transaction -u radius -p radius_db > /tmp/radius-dump.sql

# 2. Backup dos arquivos de configuração + do dump gerado
restic backup /etc/freeradius /tmp/radius-dump.sql \
    --tag radius --tag producao

# 3. Limpa o dump temporário (já está dentro do snapshot)
rm /tmp/radius-dump.sql

5. Política de retenção

# Mantém 7 diários, 4 semanais, 12 mensais — remove o resto
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune

# Ver o que seria removido, sem remover de fato (dry-run)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --dry-run

Alinhe essa política com obrigações legais — ex: dado ligado a registro de conexão de ISP tem prazo mínimo de retenção pelo Marco Civil (ver LGPD e Backup), então "limpar" cedo demais pode virar problema jurídico, não só técnico.

6. Restauração e validação

# Listar snapshots disponíveis
restic snapshots

# Restaurar o mais recente pra um diretório de teste (nunca sobrescreva
# produção direto sem antes validar)
restic restore latest --target /tmp/restauracao-teste

# Validar integridade — comparar com o original
diff -r /etc/freeradius /tmp/restauracao-teste/etc/freeradius

# Checar consistência interna do repositório (detecta corrupção)
restic check

7. Script de backup e restore automático (cron)

#!/bin/bash
# /usr/local/bin/backup-radius-restic.sh
# crontab: 0 2 * * * /usr/local/bin/backup-radius-restic.sh

set -euo pipefail
export RESTIC_REPOSITORY="s3:https://s3.provedor.com/bucket-backup-isp"
export RESTIC_PASSWORD_FILE="/root/.restic-password"
export AWS_ACCESS_KEY_ID=$(cat /root/.aws-access-key)
export AWS_SECRET_ACCESS_KEY=$(cat /root/.aws-secret-key)

mysqldump --single-transaction -u radius -p"$(cat /root/.mysql-pass)" \
    radius_db > /tmp/radius-dump.sql

restic backup /etc/freeradius /tmp/radius-dump.sql --tag radius
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
rm /tmp/radius-dump.sql

echo "$(date): backup concluído" >> /var/log/backup-radius.log

8. Integração com armazenamento imutável (S3 Object Lock)

restic em si não implementa imutabilidade — quem garante isso é o backend de armazenamento. Buckets S3-compatíveis com Object Lock (modo Compliance ou Governance) recusam exclusão/sobrescrita dos objetos até o prazo de retenção configurado expirar, mesmo com credencial de administrador da conta. Combinado com restic, isso entrega o "+1" da regra 3-2-1-1-0 sem precisar de mídia física separada.

9. Off-site adicional com rclone

Pra manter uma segunda cópia off-site (ex: em provedor de nuvem diferente do bucket principal), rclone sync replica o repositório restic inteiro entre dois destinos — útil como camada extra de redundância geográfica sem duplicar a lógica de backup em si.

10. Referências

  • Documentação oficial restic (restic.readthedocs.io) — comandos, backends suportados, arquitetura de repositório
  • Ver também: Regra 3-2-1(-1-0), BorgBackup (alternativa de mesmo perfil)

Conteúdo técnico independente. Nenhum trecho é cópia literal de fonte de terceiro.