VyOS é um sistema operacional de roteamento de código aberto baseado em Linux, conhecido por sua flexibilidade e conformidade com padrões abertos. Para administradores de rede que dependem dessa infraestrutura, a perda da configuração do roteador não é apenas um inconveniente técnico, mas um risco crítico de disponibilidade. Diferente de appliances proprietários que muitas vezes oferecem painéis web complexos para gestão, o VyOS opera predominantemente via linha de comando (CLI), o que torna a automação de backups uma necessidade fundamental para a resiliência do ambiente.
Neste tutorial, demonstraremos como configurar um sistema robusto de backup automático da configuração do VyOS. O método proposto utiliza scripts nativos e o agendador de tarefas cron do Linux subjacente ao VyOS. Esta abordagem garante que você tenha cópias versionadas das suas configurações, permitindo uma rápida recuperação em caso de desastre ou rollback após mudanças falhas.
Entendendo a Estrutura de Configuração no VyOS
Antes de automatizar o processo, é crucial entender onde e como o VyOS armazena suas configurações. Por padrão, o VyOS utiliza o comando save para persistir as alterações em memória RAM para o disco. O arquivo resultante é salvo em:
/opt/vyatta/etc/config/config.boot
Este arquivo contém a configuração completa do sistema em um formato legível por humanos, estruturado de maneira hierárquica similar ao CLI. Ao realizar o backup, estamos essencialmente copiando este arquivo específico. É importante notar que, embora existam comandos nativos como generate backup, eles criam arquivos compactados (tar.gz) que podem ser mais difíceis de versionar ou comparar em diffs simples. Para fins de administração de rede moderna e integração com sistemas externos, a cópia do arquivo config.boot é frequentemente preferida.
Criando o Diretório de Armazenamento Seguro
O primeiro passo técnico consiste em definir um local seguro dentro do sistema de arquivos onde os backups serão armazenados. Embora o VyOS tenha partições limitadas para dados persistentes, podemos criar um diretório dedicado dentro da área de configuração persistente.
- Acesse o shell do VyOS através da interface CLI e execute o comando
vconfigou pressioneCtrl+Dduas vezes para acessar o prompt do sistema operacional subjacente (Linux). - Crie um diretório específico para os backups. Recomendamos usar permissões restritas para evitar que usuários não autorizados modifiquem esses arquivos críticos.
Execute o seguinte comando no shell:
sudo mkdir -p /opt/vyatta/etc/config/backups
sudo chmod 700 /opt/vyatta/etc/config/backups
A flag -p garante que o diretório pai seja criado se não existir, e as permissões 700 garantem que apenas o root (usuário do script de backup) tenha acesso total, lendo e escrevendo, enquanto bloqueiam acesso a outros usuários.
Desenvolvendo o Script de Backup
Agora, criaremos um script shell simples que realiza a cópia da configuração atual, adicionando uma marca temporal ao nome do arquivo. Isso permite manter múltiplas versões históricas sem sobrescrever dados anteriores.
- No shell do VyOS, abra o editor de texto para criar o script. Utilizaremos o
nanoouvi.
sudo nano /opt/vyatta/etc/config/scripts/backup-vyos-config.sh
Insira o seguinte conteúdo no arquivo:
#!/bin/bash
# Configurações do Backup
CONFIG_SRC="/opt/vyatta/etc/config/config.boot"
BACKUP_DIR="/opt/vyatta/etc/config/backups"
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/config-${TIMESTAMP}.boot"
# Verifica se o arquivo de configuração original existe
if [ ! -f "$CONFIG_SRC" ]; then
echo "Erro: Arquivo de configuração fonte não encontrado."
exit 1
fi
# Realiza a cópia do arquivo
cp "$CONFIG_SRC" "$BACKUP_FILE"
# Verifica o sucesso da operação
if [ $? -eq 0 ]; then
echo "Backup realizado com sucesso: $BACKUP_FILE"
# Opcional: Remover backups antigos (ex: manter apenas os últimos 7 dias)
find "$BACKUP_DIR" -name "config-*.boot" -mtime +7 -delete
else
echo "Erro ao realizar o backup."
exit 1
fi
Após inserir o código, salve o arquivo (no nano, use Ctrl+O, Enter e saia com Ctrl+X). Em seguida, torne o script executável:
sudo chmod +x /opt/vyatta/etc/config/scripts/backup-vyos-config.sh
Este script faz três coisas fundamentais: copia o arquivo ativo, nomeia o backup com data e hora precisas e implementa uma política de rotação simples, apagando backups com mais de 7 dias para economizar espaço em disco.
Testando a Execução Manual
Antes de automatizar, é prática recomendada testar o script manualmente para garantir que ele funciona conforme esperado e que não há erros de permissão ou caminhos incorretos.
- No shell do VyOS, execute o script diretamente:
/opt/vyatta/etc/config/scripts/backup-vyos-config.sh
Você deve ver a mensagem "Backup realizado com sucesso" seguida do caminho completo do arquivo criado. Verifique se o arquivo foi realmente gerado listando o conteúdo do diretório de backups:
ls -l /opt/vyatta/etc/config/backups/
Se você vir um arquivo como config-20231027-143022.boot, o script está funcional. Volte para a CLI do VyOS com o comando exit.
Agendando o Backup Automático com Cron
O VyOS, sendo baseado em Debian/Ubuntu, utiliza o daemon cron para agendamento de tarefas. No entanto, a configuração do cron no VyOS requer atenção especial, pois o sistema operacional pode redefinir arquivos de configuração padrão durante atualizações ou reinicializações se não for persistido corretamente.
A maneira mais segura de adicionar um job ao cron no VyOS é através da interface de comando nativa, que garante a persistência da configuração do sistema.
- Na CLI do VyOS, entre no modo de configuração:
configure
- Navegue até o serviço cron. A estrutura de comandos do VyOS para tarefas agendadas é a seguinte:
set system task-scheduler task backup-config interval "1h"
set system task-scheduler task backup-config executable path "/opt/vyatta/etc/config/scripts/backup-vyos-config.sh"
Neste exemplo, configuramos o backup automático para ocorrer a cada hora (interval "1h"). Você pode ajustar este intervalo conforme a necessidade da sua infraestrutura. Para backups diários, utilize "1d". Para execuções em horários específicos, o VyOS também suporta agendamento baseado em tempo de dia, mas o intervalo é mais simples para começar.
- Saia do modo de configuração e salve as alterações:
exit
save
O VyOS agora registrará essa tarefa no sistema cron subjacente. Você pode verificar se a tarefa foi registrada corretamente acessando novamente o shell (vconfig) e listando os jobs do cron para o usuário root:
crontab -l
Você deverá ver uma linha referenciando o script backup-vyos-config.sh com o intervalo definido.
Estratégia de Backup Externo (Recomendado)
Embora o método acima proteja contra falhas de software ou configuração acidental, ele não protege contra falhas de hardware, corrupção do disco rígido ou ataques de ransomware que possam afetar o roteador localmente. Para uma estratégia completa de administração de rede, é imperativo enviar cópias desses backups para um servidor remoto.
Podemos modificar o script criado anteriormente para incluir a transferência via SCP (Secure Copy Protocol) ou rsync para um servidor Linux dedicado ou um serviço de armazenamento em nuvem compatível com S3.
Exemplo de adição ao script para envio via SCP:
# Variáveis de destino
REMOTE_USER="admin"
REMOTE_HOST="192.168.1.50"
REMOTE_DIR="/backups/vyos"
# Enviar o último backup gerado
LAST_BACKUP=$(ls -t ${BACKUP_DIR}/config-*.boot | head -n 1)
scp "$LAST_BACKUP" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/"
Para que isso funcione sem senha (ideal para automação), configure chaves SSH entre o VyOS e o servidor de destino. Note que gerenciar chaves SSH em sistemas embarcados requer cuidado, pois a perda da chave privada pode impedir o acesso remoto se a configuração for corrompida.
Procedimento de Restauração em Caso de Desastre
A eficácia do backup só é comprovada durante a recuperação. Se o VyOS perder a configuração ou falhar ao inicializar, siga estes passos para restaurar:
- Acesso Emergencial: Se o roteador não bootar, tente acessar via console serial ou, se possível, inicie em modo de recuperação (single user mode) se configurado.
- Localizar o Backup: Se os backups estão no disco local, acesse o shell e navegue até
/opt/vyatta/etc/config/backups. Identifique o arquivo mais recente ou aquele correspondente ao último estado conhecido como bom. - Copiar para Configuração Ativa: Copie o arquivo de backup para substituir a configuração atual:
cp /opt/vyatta/etc/config/backups/config-20231027-143022.boot /opt/vyatta/etc/config/config.boot
- Carregar a Configuração: No shell, execute o comando vyatta para carregar a configuração do arquivo:
vconfig load /opt/vyatta/etc/config/config.boot
Ou, se estiver na CLI normal após um reboot:
configure
load /opt/vyatta/etc/config/backups/config-20231027-143022.boot
commit
save
Este processo restaura a interface, rotas e regras de firewall para o estado em que estavam no momento do backup.
Melhores Práticas e Manutenção Contínua
A automação não é "configurar e esquecer". Administradores de rede devem revisar periodicamente a saúde do sistema de backups. Recomendamos as seguintes práticas:
- Monitoramento de Logs: Verifique os logs do VyOS (
/var/log/syslog) em busca de erros relacionados ao script de backup. Falhas silenciosas são perigosas. - Testes Regulares de Restauração: Pelo menos uma vez por trimestre, tente restaurar um backup em um ambiente de laboratório ou VM VyOS para garantir que o arquivo não está corrompido.
- Versionamento Externo: Se possível, integre os backups locais a um repositório Git externo. Isso permite rastrear mudanças exatas linha por linha e colaborar com outros administradores.
- Proteção contra Ransomware: Certifique-se de que o servidor remoto onde os backups são enviados tenha imutabilidade de objetos ou snapshots isolados, para que um ataque local não propague a corrupção para os backups remotos.
A implementação deste fluxo de trabalho garante que sua infraestrutura VyOS mantenha uma postura de alta disponibilidade. Ao combinar scripts simples em bash com as ferramentas nativas do VyOS e cron, você cria uma camada de segurança operacional essencial para qualquer ambiente de rede moderno.
Lembre-se: a configuração é tão valiosa quanto o hardware. Investir tempo na automação do backup da configuração VyOS economiza horas de trabalho manual em momentos de crise, permitindo que sua equipe se concentre na resolução de problemas reais de conectividade em vez de reconstruir configurações memorizadas.