Guia técnico completo para implantação do Veeam Hardened Repository (repositório Linux imutável) em Ubuntu Server 22.04 LTS e 24.04 LTS, compatível com Veeam Backup & Replication 12.3 e v13. Abrange desde o particionamento XFS até o lockdown pós-configuração, incluindo sudoers granular conforme a KB4667 oficial da Veeam.
Como o Hardened Repository protege seus backups
O Veeam Hardened Repository combina dois mecanismos independentes de proteção que atuam em camadas distintas:
Imutabilidade via chattr +i (Linux immutable bit): após gravar cada arquivo de backup (.vbk, .vib, .vrb, .vbm), o Veeam aplica o atributo imutável do Linux usando chattr +i. Este atributo é gerenciado pelo kernel diretamente no sistema de arquivos e impede qualquer operação de escrita, renomeação ou exclusão — mesmo para o usuário root via SSH ou acesso local. O período de imutabilidade é registrado como extended attribute (user.immutable.until) em cada arquivo. O Veeam Data Mover remove o atributo apenas após a expiração do período configurado, nunca antes.
Single-use credentials: as credenciais do usuário veeamrepo são usadas uma única vez para instalar o Veeam Data Mover Service e configurar os certificados de autenticação mútua (SHA256RSA, RSA 2048-bit). Após essa etapa, toda comunicação passa a usar autenticação por certificado — as credenciais não são armazenadas no banco de dados do Veeam. Mesmo que o servidor VBR seja comprometido, o atacante não obterá credenciais para acessar e deletar os backups remotamente.
No VBR v13 (BYO Linux): o modelo de single-use credentials com SSH continua válido e suportado. O Veeam Infrastructure Appliance (VIA) introduz autenticação exclusivamente por certificado, eliminando o SSH durante todo o ciclo de vida — mas este guia cobre apenas o modelo BYO Linux.
- Versões suportadas e requisitos
- Requisitos de hardware e rede
- Instalação do Ubuntu Server
- Configuração do storage: particionamento e XFS
- Criação do usuário veeamrepo
- Configuração granular do sudoers (KB4667)
- Hardening do SSH
- Firewall UFW
- Hardening do sistema operacional
- Integração com o Veeam Backup & Replication
- Lockdown pós-configuração
- Validação e testes
- Limitações e restrições oficiais
- Troubleshooting
- Checklist de implantação
1. Versões suportadas e requisitos
Este guia cobre exclusivamente implantações com Ubuntu 22.04 LTS e 24.04 LTS no modelo BYO Linux, compatível com VBR 12.3 e VBR 13.
| Componente | VBR 12.3 | VBR 13 |
|---|---|---|
| Ubuntu 22.04 LTS (Jammy) | ✅ Suportado | ✅ Suportado |
| Ubuntu 24.04 LTS (Noble) | ✅ Suportado | ✅ Suportado |
| Kernel mínimo | 5.15 (Ubuntu 22.04) | 5.15 (22.04) / 6.8 (24.04) |
| Sistema de arquivos | XFS com reflink=1 | XFS com reflink=1 |
| Arquitetura | x86_64 (64-bit) | x86_64 (64-bit) |
| Shell obrigatório | /bin/bash | /bin/bash |
| Autenticação | Single-use credentials + certificado | Single-use + certificado (BYO) ou somente certificado (VIA) |
uname -r antes de colocar em produção.
2. Requisitos de hardware e rede
2.1 Hardware
| Componente | Mínimo | Produção recomendado |
|---|---|---|
| Tipo de servidor | Físico (fortemente recomendado) | Servidor físico dedicado (HPE ProLiant, Cisco UCS, Dell PowerEdge) |
| CPU | 4 cores x86_64 | 8–16 cores físicos |
| RAM | 8 GB | 16–32 GB |
| Disco SO | 60 GB SSD | 2× SSD 120 GB em RAID 1 via controladora hardware |
| Disco de dados | Conforme capacidade | RAID 6 ou RAID 60 com SAS/SATA/NL-SAS ou NVMe dedicados |
| Rede | 1 GbE | 10 GbE dedicado com NIC redundante |
| Boot | BIOS legacy | UEFI com Secure Boot habilitado |
2.2 Portas de rede
| Porta | Protocolo | Direção | Finalidade |
|---|---|---|---|
| 22 | TCP | VBR → Repositório | SSH — implantação inicial e gerenciamento |
| 2500–3300 | TCP | VBR / Proxy → Repositório | Veeam Data Mover — transferência de dados |
| 6162 | TCP | VBR → Repositório | Veeam Installer Service (implantação do Data Mover) |
3. Instalação do Ubuntu Server
3.1 Download e verificação da ISO
# Ubuntu 22.04.4 LTS — suportado até abril 2027 wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-live-server-amd64.iso wget https://releases.ubuntu.com/22.04/SHA256SUMS sha256sum --check --ignore-missing SHA256SUMS # Ubuntu 24.04.1 LTS — suportado até abril 2029 (recomendado para novas implantações) wget https://releases.ubuntu.com/24.04/ubuntu-24.04.1-live-server-amd64.iso wget https://releases.ubuntu.com/24.04/SHA256SUMS sha256sum --check --ignore-missing SHA256SUMS
3.2 Opções de instalação
- Selecione Ubuntu Server (minimized) — sem interface gráfica, menor superfície de ataque
- Selecione o kernel HWE (Hardware Enablement) quando oferecido
- Habilite UEFI Secure Boot nas configurações do servidor antes de iniciar
- Configure IP estático durante a instalação
3.3 Layout de particionamento recomendado
| Ponto de montagem | Tamanho | FS | Finalidade |
|---|---|---|---|
| /boot/efi | 512 MB | FAT32 | Partição EFI (UEFI) |
| /boot | 1 GB | ext4 | Kernel e initrd |
| / | 20 GB | ext4 | Sistema operacional raiz |
| /tmp | 5 GB | ext4 | Arquivos temporários |
| /var | 10 GB | ext4 | Logs e dados variáveis |
| /var/log | 10 GB | ext4 | Logs do sistema |
| /var/log/audit | 5 GB | ext4 | Logs de auditoria |
| /var/tmp | 5 GB | ext4 | Temporários persistentes |
| /home | 25 GB | ext4 | Home do usuário veeamrepo (usado pelo SOBR) |
| swap | = RAM | swap | Memória virtual |
| /mnt/backup | Disco dedicado inteiro | XFS | Dados de backup Veeam — volume imutável |
/home/veeamrepo/. Dimensione esse volume adequadamente.
4. Configuração do storage: particionamento e XFS
4.1 Identificar o disco de dados
# Listar discos disponíveis lsblk -d -o NAME,SIZE,TYPE,MODEL # Ver detalhes de um disco específico sudo fdisk -l /dev/sdb
4.2 Criar tabela GPT e partição
# Criar tabela GPT no disco de dados (substitua /dev/sdb pelo seu disco) sudo parted /dev/sdb --script mklabel gpt # Criar partição ocupando todo o disco sudo parted /dev/sdb --script mkpart primary xfs 0% 100% # Verificar sudo parted /dev/sdb print
4.3 Formatar com XFS e reflink habilitado
# Formatar com XFS — bloco 4K + reflink + CRC (obrigatório para Fast Clone) sudo mkfs.xfs -b size=4096 -m reflink=1,crc=1 /dev/sdb1 # Criar ponto de montagem sudo mkdir -p /mnt/backup # Obter UUID do disco (mais confiável que /dev/sdb1 no fstab) sudo blkid /dev/sdb1
# Adicionar ao /etc/fstab usando UUID (substitua pelo UUID retornado pelo blkid) echo 'UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/backup xfs defaults,noatime 0 2' \ | sudo tee -a /etc/fstab # Montar e verificar sudo mount -a df -hT /mnt/backup
4.4 Validar reflink
# Deve retornar "reflink=1"
sudo xfs_info /mnt/backup | grep reflink
Saída esperada:
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
reflink=1 rmapbt=1 reflink=1
mkfs.xfs -b size=4096 -m reflink=1,crc=1. Não é possível habilitar reflink em um volume XFS já formatado sem reformatar.
5. Criação do usuário veeamrepo
# Criar o usuário com home e bash como shell padrão sudo useradd -m -s /bin/bash veeamrepo # Definir senha (necessária para o processo de single-use credentials) sudo passwd veeamrepo # Adicionar ao grupo sudo — necessário APENAS durante o cadastro no Veeam sudo usermod -aG sudo veeamrepo # Verificar id veeamrepo
5.1 Configurar propriedade do diretório de backup
# O usuário veeamrepo deve ser dono do diretório de backup sudo chown veeamrepo:veeamrepo /mnt/backup sudo chmod 700 /mnt/backup # Verificar ls -la /mnt/ | grep backup
6. Configuração granular do sudoers (KB4667)
A Veeam publica a KB4667 com a lista exata de comandos sudo necessários para o Hardened Repository. Configure permissões granulares — em vez de sudo irrestrito — para reduzir a superfície de ataque.
visudo para editar o sudoers. Erros de sintaxe travam completamente o sudo no sistema. O visudo valida a sintaxe antes de salvar.
6.1 Criar arquivo sudoers dedicado
# Criar arquivo drop-in em /etc/sudoers.d/ (não editar /etc/sudoers diretamente)
sudo visudo -f /etc/sudoers.d/veeamrepo
Cole o conteúdo abaixo no editor. Permissões granulares para Ubuntu/Debian conforme KB4667:
# Veeam Hardened Repository — Granular sudo permissions (KB4667) # Ubuntu/Debian — VBR 12.3 / VBR 13 Defaults:veeamrepo !requiretty #MISC veeamrepo ALL=(ALL) NOPASSWD: /bin/whoami veeamrepo ALL=(ALL) NOPASSWD: /bin/uname veeamrepo ALL=(ALL) NOPASSWD: /bin/ls veeamrepo ALL=(ALL) NOPASSWD: /bin/test veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/id #MKDIR veeamrepo ALL=(ALL) NOPASSWD: /bin/mkdir -p /opt/veeam #RM veeamrepo ALL=(ALL) NOPASSWD: /bin/rmdir /opt/veeam veeamrepo ALL=(ALL) NOPASSWD: /bin/rmdir /opt/veeam/Upload veeamrepo ALL=(ALL) NOPASSWD: /bin/rm -rf /opt/veeam #CHATTR (gerencia imutabilidade) veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/chattr veeamrepo ALL=(ALL) NOPASSWD: /bin/chattr #LSATTR veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/lsattr veeamrepo ALL=(ALL) NOPASSWD: /bin/lsattr #CHMOD / CHOWN veeamrepo ALL=(ALL) NOPASSWD: /bin/chmod veeamrepo ALL=(ALL) NOPASSWD: /bin/chown #GETFATTR / SETFATTR (extended attributes — imutabilidade) veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/getfattr veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/setfattr #APT (Ubuntu/Debian — gerenciamento de pacotes Veeam) veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/apt-get install * veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/apt-get remove * veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/apt-get update veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/dpkg -i * veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/dpkg -r * veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/dpkg --configure * veeamrepo ALL=(ALL) NOPASSWD: /usr/bin/dpkg -l * #SYSTEMCTL (serviço Veeam Data Mover) veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl start veeamtransport veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl stop veeamtransport veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl restart veeamtransport veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl status veeamtransport veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl enable veeamtransport veeamrepo ALL=(ALL) NOPASSWD: /bin/systemctl disable veeamtransport #REBOOT / SHUTDOWN (opcional — para manutenção) veeamrepo ALL=(ALL) NOEXEC: /usr/sbin/reboot veeamrepo ALL=(ALL) NOEXEC: /usr/sbin/shutdown
6.2 Validar a sintaxe do arquivo
# Validar sintaxe do arquivo sudoers criado sudo visudo -cf /etc/sudoers.d/veeamrepo # Ajustar permissões (obrigatório) sudo chmod 0440 /etc/sudoers.d/veeamrepo
7. Hardening do SSH
7.1 Instalar chave pública SSH
# Criar diretório .ssh para o veeamrepo sudo -u veeamrepo mkdir -p /home/veeamrepo/.ssh sudo -u veeamrepo chmod 700 /home/veeamrepo/.ssh # Cole a chave pública do servidor VBR no arquivo authorized_keys sudo -u veeamrepo nano /home/veeamrepo/.ssh/authorized_keys sudo -u veeamrepo chmod 600 /home/veeamrepo/.ssh/authorized_keys
7.2 Configurar o sshd_config
# Backup antes de editar
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config
Ajuste as seguintes diretivas:
Port 22 # Desabilitar login root via SSH PermitRootLogin no # Desabilitar autenticação por senha — somente chave pública PasswordAuthentication no ChallengeResponseAuthentication no KbdInteractiveAuthentication no # Habilitar autenticação por chave pública PubkeyAuthentication yes # Restringir acesso apenas ao usuário veeamrepo AllowUsers veeamrepo # Timeout de sessão inativa ClientAliveInterval 300 ClientAliveCountMax 6 # Desabilitar X11 e TCP Forwarding X11Forwarding no AllowTcpForwarding no # Protocolo e algoritmos modernos Protocol 2 KexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
# Validar configuração antes de reiniciar sudo sshd -t # Reiniciar apenas se a validação passou sem erros sudo systemctl restart ssh sudo systemctl status ssh
8. Firewall UFW
# Garantir que o UFW está instalado sudo apt-get install -y ufw # Política padrão: bloquear tudo sudo ufw default deny incoming sudo ufw default deny outgoing # Permitir SSH apenas do IP do servidor VBR (substitua pelo IP real) sudo ufw allow from 192.168.10.10 to any port 22 proto tcp # Permitir Veeam Data Mover do VBR e dos proxies sudo ufw allow from 192.168.10.10 to any port 2500:3300 proto tcp sudo ufw allow from 192.168.10.20 to any port 2500:3300 proto tcp # Permitir Veeam Installer Service sudo ufw allow from 192.168.10.10 to any port 6162 proto tcp # Permitir DNS e NTP de saída sudo ufw allow out to any port 53 proto udp sudo ufw allow out to any port 123 proto udp # Permitir HTTP/HTTPS de saída para repositórios de updates sudo ufw allow out to any port 80 proto tcp sudo ufw allow out to any port 443 proto tcp # Ativar o UFW sudo ufw enable # Verificar regras sudo ufw status verbose
ufw allow from para cada IP de proxy nas portas 2500–3300.
9. Hardening do sistema operacional
9.1 Atualizações e patches
# Aplicar todas as atualizações disponíveis sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y # Instalar e configurar atualizações automáticas de segurança sudo apt-get install -y unattended-upgrades apt-listchanges sudo dpkg-reconfigure --priority=low unattended-upgrades
Confirme que a linha de security updates está ativa em /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
9.2 Desabilitar serviços desnecessários
# Listar serviços ativos sudo systemctl list-units --type=service --state=running # Desabilitar serviços não necessários sudo systemctl disable --now snapd snapd.socket snapd.seeded sudo systemctl disable --now avahi-daemon avahi-daemon.socket sudo systemctl disable --now bluetooth sudo systemctl disable --now cups cups-browsed sudo systemctl disable --now ModemManager # Remover o Snap completamente sudo apt-get purge snapd -y && sudo apt-get autoremove -y
ssh, cron, systemd-timesyncd, ufw, systemd-journald e veeamtransport (após instalação).
9.3 Configurar NTP
# Verificar serviço NTP sudo systemctl status systemd-timesyncd # Configurar servidor NTP interno (se disponível) sudo nano /etc/systemd/timesyncd.conf # Adicione: NTP=192.168.10.1 sudo systemctl restart systemd-timesyncd timedatectl status
9.4 Habilitar auditoria com auditd
# Instalar e habilitar auditd sudo apt-get install -y auditd audispd-plugins sudo systemctl enable --now auditd # Monitorar acesso ao diretório de backup e ao arquivo sudoers sudo auditctl -w /mnt/backup -p rwxa -k veeam_backup_access sudo auditctl -w /etc/sudoers.d/veeamrepo -p rwxa -k sudoers_veeam # Verificar regras ativas sudo auditctl -l
10. Integração com o Veeam Backup & Replication
10.1 Adicionar o servidor Linux como Managed Server
- Abra o console do VBR
- Vá em Backup Infrastructure → Managed Servers
- Clique em Add Server → Linux
- Preencha o DNS name ou IP do servidor Ubuntu
- Em Credentials, crie uma credencial Linux com o usuário
veeamrepoe a senha definida - Marque Elevate account privileges automatically → Add account to the sudoers file automatically
- Conclua o assistente — o Veeam instalará o Veeam Installer Service via SSH
10.2 Adicionar como Hardened Repository
- Vá em Backup Infrastructure → Backup Repositories
- Clique em Add Repository → Direct Attached Storage → Linux (Hardened)
- Selecione o servidor adicionado anteriormente
- Em Path to folder, informe:
/mnt/backup - Clique em Populate para confirmar a capacidade disponível
- Marque Use fast cloning on XFS volumes
- Em Make recent backups immutable for, defina o período (ex: 7, 14 ou 30 dias)
- Revise e clique em Apply
10.3 Configurar o job de backup
- Na etapa Storage, selecione o Hardened Repository como destino
- Configure retenção superior ao período de imutabilidade
- Clique em Advanced → aba Backup → selecione Forward Incremental
- Habilite Create synthetic full backups periodically ou Active full backup schedule
10.4 Backup Copy Jobs com imutabilidade
Para usar imutabilidade em Backup Copy Jobs, é obrigatório habilitar a política de retenção GFS:
- Na etapa Schedule do Backup Copy Job, habilite Keep certain full backups longer for archival purposes (GFS)
- Configure retenções semanais, mensais e anuais conforme a política da organização
11. Lockdown pós-configuração
Após o cadastro do repositório no Veeam e o primeiro backup bem-sucedido, remova o usuário veeamrepo do grupo sudo. As permissões granulares do /etc/sudoers.d/veeamrepo são suficientes para a operação contínua.
# Remover veeamrepo do grupo sudo após o cadastro no Veeam sudo deluser veeamrepo sudo # Verificar — não deve aparecer mais no grupo sudo getent group sudo # Confirmar que o sudoers granular ainda funciona sudo -u veeamrepo sudo -l
sudo usermod -aG sudo veeamrepo → atualizar → sudo deluser veeamrepo sudo.
12. Validação e testes
12.1 Verificar imutabilidade após o primeiro backup
# Listar atributos dos arquivos no diretório de backup sudo lsattr -la /mnt/backup/ # Ver o timestamp exato de expiração da imutabilidade sudo getfattr -n user.immutable.until /mnt/backup/NomeDoJob.vbk # Tentar deletar um arquivo imutável — deve falhar com "Operation not permitted" sudo rm /mnt/backup/NomeDoJob.vbk
Saída esperada do lsattr:
----i--------e-- /mnt/backup/VeeamJob-D2026-05-25T0300.vbk ----i--------e-- /mnt/backup/VeeamJob-D2026-05-25T0300.vbm ----i--------e-- /mnt/backup/VeeamJob-D2026-05-18T0300.vib
O flag i indica imutabilidade ativa. O flag e indica que o arquivo usa extensões (extents) no XFS — comportamento normal e esperado.
12.2 Verificar Fast Clone em operação
# Com Fast Clone, o uso real é menor que o aparente (blocos compartilhados) du -sh /mnt/backup/ df -hT /mnt/backup # Verificar estatísticas de reflink do XFS sudo xfs_quota -x -c 'report -h' /mnt/backup
12.3 Health Check no VBR
- Selecione o backup na view Home
- Botão direito → Health Check
- Aguarde a conclusão e verifique o resultado em History
13. Limitações e restrições oficiais
Conforme documentação oficial do Veeam Help Center (VBR 13):
- O repositório só pode ser associado a um único servidor VBR — não compartilhável entre múltiplas instâncias
- Não é suportado como destino de jobs de NAS Backup
- Não é suportado em storage NFS — apenas block storage local ou remotamente conectado (iSCSI, FC)
- Não suporta symlinks no caminho do repositório
- Backup Copy Jobs requerem GFS retention policy para usar imutabilidade
- Imutabilidade não deve ser usada em infraestruturas Nutanix Mine — discos thin-provisioned podem encher sem possibilidade de deleção
- Um Linux repository com role de mount server não pode ser promovido a Hardened Repository
- Um Veeam Infrastructure Appliance (VIA) não pode ser promovido a Hardened Repository manualmente
- Somente processos filhos do Veeam Data Mover Service podem rodar como root no repositório
14. Troubleshooting
| Erro / Sintoma | Causa provável | Solução |
|---|---|---|
| XFS reflink not supported | Volume formatado sem reflink=1 ou não é XFS | Reformatar com mkfs.xfs -b size=4096 -m reflink=1,crc=1. Não é possível habilitar sem reformatar. |
| Falha de conexão SSH durante o cadastro | UFW bloqueando, porta errada, usuário sem sudo, sshd não reiniciado | Verificar sudo ufw status. Testar SSH manualmente do VBR. Confirmar que veeamrepo está no grupo sudo. |
| Erro de permissão ao gravar backup | veeamrepo não é dono do diretório /mnt/backup | sudo chown veeamrepo:veeamrepo /mnt/backup && sudo chmod 700 /mnt/backup |
| Não é possível deletar backup — "file immutable" | Arquivo dentro do período de imutabilidade | Comportamento correto e esperado. Aguardar expiração ou usar "Remove from disk" no VBR após expiração. |
| Erro "sudo: command not allowed" durante implantação | Permissões granulares do sudoers incompletas | Adicionar temporariamente ao grupo sudo, concluir a implantação, remover do sudo e ajustar /etc/sudoers.d/veeamrepo. |
| SSH desconecta durante job longo | ClientAliveInterval/CountMax insuficiente | Aumentar ClientAliveInterval 300 e ClientAliveCountMax 6 no sshd_config e reiniciar o sshd. |
| Espaço esgotando com backups imutáveis | Período de imutabilidade maior que o esperado ou crescimento subestimado | Revisar ratio imutabilidade × retenção. Adicionar volumes ao SOBR como extents adicionais. |
| Falha ao atualizar VBR — repositório não responde | veeamrepo não está no grupo sudo | sudo usermod -aG sudo veeamrepo → executar atualização → sudo deluser veeamrepo sudo. |
| Certificado expirado — VBR não conecta ao repositório | Certificado SHA256RSA expirado | No console VBR: Backup Infrastructure → selecionar servidor → botão direito → Rescan. O VBR renovará os certificados. |
| lsattr não mostra flag "i" após backup | Período de imutabilidade definido como 0 ou job aponta para outro repositório | Verificar configuração do repositório no VBR (imutabilidade > 0 dias) e confirmar que o job usa o Hardened Repository. |
15. Checklist de implantação
Preparação do ambiente
- Servidor físico selecionado e disponível (HPE ProLiant ou equivalente certificado para Ubuntu)
- UEFI Secure Boot habilitado na BIOS/UEFI
- RAID 1 para o disco do SO, RAID 6/60 para os discos de dados
- ISO do Ubuntu Server baixada e hash SHA256 verificado
- IP estático, gateway, DNS e VLAN dedicada provisionados
- Planejamento de capacidade concluído (dados × período de imutabilidade × crescimento anual)
Instalação do SO
- Ubuntu 22.04 LTS ou 24.04 LTS instalado em modo minimizado (sem GUI)
- Kernel HWE selecionado durante a instalação
- Particionamento: / e /mnt/backup em discos separados
- Volume /mnt/backup formatado com XFS reflink=1,crc=1
- UUID do volume XFS configurado no /etc/fstab (não /dev/sdX)
- xfs_info confirmando reflink=1
- apt update && apt upgrade executado
Usuário e sudoers
- Usuário veeamrepo criado com shell /bin/bash
- Propriedade do /mnt/backup: veeamrepo:veeamrepo, permissão 700
- Arquivo /etc/sudoers.d/veeamrepo criado com permissões granulares (KB4667)
- Sintaxe validada com visudo -cf
- veeamrepo adicionado ao grupo sudo (temporário — para o cadastro)
Hardening
- Chave pública SSH do servidor VBR instalada em ~/.ssh/authorized_keys do veeamrepo
- sshd_config: PermitRootLogin no, PasswordAuthentication no, AllowUsers veeamrepo
- sshd reiniciado e acesso SSH validado com chave pública
- UFW ativado com regras restritivas (deny incoming/outgoing + exceções por IP)
- Snap removido
- Serviços desnecessários desabilitados
- unattended-upgrades configurado para security updates
- auditd instalado e regras de auditoria para /mnt/backup configuradas
- NTP sincronizado e correto (timedatectl status)
Integração Veeam
- Servidor adicionado ao VBR como Managed Server (Linux)
- Repositório adicionado como Hardened Repository
- Fast Clone (Use fast cloning on XFS volumes) habilitado
- Período de imutabilidade definido (menor ou igual à retenção do job)
- Job configurado com Forward Incremental + full periódico
- Primeiro backup executado com sucesso
- lsattr confirmando flag "i" nos arquivos de backup
- Health Check executado e aprovado no VBR
Lockdown pós-configuração
- veeamrepo removido do grupo sudo (deluser veeamrepo sudo)
- sudo -u veeamrepo sudo -l confirmando somente as permissões granulares
- Tentativa de deleção de arquivo imutável resultando em "Operation not permitted"
- Documentação do ambiente atualizada (IP, hostname, período de imutabilidade, data de instalação)