Configurando um Veeam Linux Hardened Repository utilizando Ubuntu

Para evitar a perda de arquivos de backup devido a Ransomware, malware ou até mesmo ações não planejadas, é recomendado usar repositórios de backup imutáveis e a regra arquitetônica de proteção de dados 3-2-1-1-0.
Uma das opções disponíveis desde a versão 11 do Veeam Backup & Replication é utilizar um servidor Linux, aproveitando os recursos nativos de proteção de arquivos deste sistema operacional, como repositório de backup.
O Veeam Hardened Linux Repository oferece suporte aos seguintes recursos:
- Imutabilidade dos arquivos: podemos especificar o período e os arquivos de backup permanecerão imutáveis. Durante esse período, os arquivos de backup não poderão ser modificados ou excluídos.
- Credenciais de uso único: este é um dos pontos de segurança mais críticos. As credenciais de usuário do Linux são usadas apenas durante a implantação inicial do Veeam Data Mover. Esta operação só acontece ao adicionar o servidor Linux à infraestrutura de backup. Estas credenciais não são armazenadas na infraestrutura de backup. Mesmo que o servidor Veeam Backup & Replication esteja comprometido, o invasor não poderá obter as credenciais e conectar-se ao repositório protegido.
Instalação do Linux Ubuntu Server
A primeira etapa da instalação é selecionar o kernel “HWE”, que é o kernel “Hardware Enablement”. Se você não vir a opção de kernel HWE, então você está inicializando no modo BIOS legado. UEFI com UEFI Secure Boot ativado é recomendado:

A instalação será iniciada:

Finalizada esta etapa, selecionar o idioma desejado:

Selecione continuar sem realizar o update:

Selecione a configuração desejada para o teclado:

Selecione a opção de instalação Ubuntu server:

Selecione as opções de rede:

Se for necessário, configure o proxy de rede:

Aguarde a verificação, mantenha os valores default e clique em “Done”:

Selecionar a opção Custom Storage Layout:

Vamos ter que montar manualmente as partições, conforme as melhores práticas do CIS Benchmarks for Ubuntu Linux 20.04 LTS STIG:

Selecione freespace e adicione uma partição GPT:

Se esse hardened repository tornar parte de um repositório Scale-out Backup Repository, haverá dados temporários em /home/<username>/.
Portanto, criamos esta partição com 25 GB de tamanho. O ponto de montagem pode ser selecionado diretamente no menu suspenso. O sistema de arquivos permanece inalterado em ext4:

Para a partição /tmp, o caminho deve ser especificado manualmente:

O mesmo para /var:

O mesmo para /var/log:

O mesmo para /var/log/audit:

O mesmo para /var/tmp:

Por fim, adicione o sistema de arquivos raiz (“/”) sem especificar o tamanho. Ele ocupará todo o espaço livre disponível:

No final, devemos ter a seguinte configuração de partição:

A lista de “devicesdisponíveis” está agora reduzida ao volume de dados de backup. Este deve ser montado em /mnt/backup e usar o sistema de arquivos XFS:

Selecionar XFS e /mnt/backup:

Clicar em Done:

Aparecerá o aviso abaixo. Selecionar Continue:

Preencher os campos. Criar um usuário. Neste exemplo, criamos o usuário “veeamadmin”:

- Your name: XXXXX
- Your server´s name: vm05-ubuntu-vhr
- Pick a username: veeamadmin
- Choose a password: XXXXX
Pule o upgrade por enquanto, selecionando Continuar:

O usuário root não possui uma senha padrão no Ubuntu (outras distribuições podem exigir uma senha root). Isso significa que o root não consegue fazer login em uma máquina Ubuntu. O servidor OpenSSH é necessário para adicionar o servidor ao Veeam Backup & Replication como um repositório protegido. Habilite essa opção e continue:

Como queremos um Ubuntu Linux mínimo, mantemos tudo desmarcado na seleção de software (padrão):

A instalação será retomada. O processo demora alguns minutos:

Temos que aguardar que apareça a opção Reboot Now:
Logar com o usuário criado (veeamadmin):

Verifique que a conectividade está ok. Não devem ocorrer mensagens com “DUP. Você pode parar o “ping” pressionando CTRL+C.
ping 8.8.8.8

Obter e anotar o endereço IP do servidor
ip a

10.80.50.109
Finalizada a instalação do Ubuntu neste momento
Garantindo acesso de leitura e escrita ao usuário
Vamos agora dar permissão de escrita para o veeadmin no diretório de backup, para que possamos realizar a instalação dos serviços Veeam.
- sudo -s
- groupadd backupadmins
- usermod -aG backupadmins veeamadmin

- chown veeamadmin:backupadmins /mnt/backup
- chmod 2775 /mnt/backup
- ls -al

Configuração do Veeam Backup & Replication
Vamos agora ir até o console do VBR server para associar o servidor Ubuntu ao inventário.
Ir até Backup Infrastructure, selecionar Managed Servers e clicar em Add Server.
Selecionar Linux.

Digitar o endereço IP do novo servidor Linux:

Adicione as credenciais.
Importante: selecionar a opção “single-use credentials for hardened repository”:

Insira o usuário e a senha criada no momento da instalação do servidor Ubuntu:

Clicar em Next:

Clicar em Yes:

Selecionar Apply:

O VBR relizará a instalação dos serviços de transporte e de controle de imutabilidade:

Clicar em Next. Verificar o sumário e clicar em Finish:

O servidor Ubuntu deverá aparecer na relação dos “Managed Servers”:

Vamos agora adicionar um novo Backup Repository. Selecionar a opção Backup Repositories e clicar em Add Repository:

Neste exemplo, estamos utilizando uma VM (não recomendado para ambientes de produção). Por isso, vamos escolher a opção Direct Attached Repository:

Selecionar a opção Linux (Hardened Repository):

Atribuir um nome para este repositório. Por exemplo: Ubuntu-VHR:

Selecionar o servidor e clicar em Populate. Selecionar o caminho /mnt/backup/:

A opção Path to Folder será preenchida com o caminho /mnt/backup/
- Clicar em Populate e conferir a volumetria.
- Selecionar a opção Fast Cloning on XFS Volumes.
- Selecionar o período de imutabilidade. Por exemplo 07 dias. Selecionar a quantidade de tarefas concorrentes que este repositório tratará. Por exemplo, selecionas 04 tarefas concorrentes

Selecionar o Mount Server desejado. Vamos manter o padrão:

Rever as configurações e clicar em Apply:

O repositório de backup será criado:

O repositório deve aparecer na relação dos disponíveis para uso:

Criando um job de backup para teste
Vamos criar um job de backup para teste:


Selecionar o Hardened Repository criado:

Clicar em Next. Criar um Schedule:

Selecionar “Run the job when I click Finish”. Clicar em Finish. Acompanhar o job finalizar:

O tentarmos apagar os arquivos de backup (full ou incremental) ocorre um erro pois o repositório é imutável:


Se analisarmos os arquivos e diretórios de backup:
- cd /mnt/backup/Ubuntu-VHR-Test_1
- ls
Temos os arquivos de backup full (.vbk), incrementais (.vib) e os metadados (vbm):

Se tentarmos remover um arquivo, mesmo com permissão elevada, a operação não é permitida:

Fortalecendo a segurança
Até este momento, temos o seguinte cenário:
- Uma instalação mínima do Ubuntu com inicialização UEFI Secure;
- Apenas uma conta de usuário com permissões sudo completas e a conta root está bloqueada (sem senha)
A conta de usuário “veeamadmin”, que foi criada durante o processo de instalação, tem permissões root completas (administrativas) porque é membro do grupo “sudo”.
“sudo” é o comando que permite executar um comando como root (administrador no Linux). Cada membro do grupo “sudo” pode executar todos os comandos com “sudo” no Ubuntu.
Ao instalar o hardened repositório, são necessárias permissões “sudo” ou “su”. Após a instalação, “sudo” ou “su” não são mais necessários a partir da V12. “su” (usuário substituto) neste contexto significa que um usuário pode inserir a senha root para se tornar root. Conforme mencionado anteriormente, o root atualmente não possui senha. Isso significa que não se pode usar “su” para mudar para o usuário root.
No entanto, ao remover o usuário “veeamadmim” posteriormente do grupo “sudo”, não há mais usuário administrativo/root utilizável disponível.
Nem mesmo um simples comando de “shutdown” ou “reboot” seria possível.
A recomendação da Veeam é atribuir para o usuário “veeamadmin” apenas comando “su” de shutdown e reboot.
Para isso, é preciso copiar e colar os comandos abaixo:
- sudo bash -c “echo ‘veeamadmin ALL = (root) NOEXEC: /usr/sbin/reboot’ >> /etc/sudoers”
- sudo bash -c “echo ‘veeamadmin ALL = (root) NOEXEC: /usr/sbin/shutdown’ >> /etc/sudoers”

Mesmo que alguém descubra a senha do usuário “veeamadmin” e obtenha acesso ao console local (ou SSH, se habilitado), ainda assim não poderá causar nenhum dano. As permissões não poderão ser elevadas para root por meio de um comando “su” ou “sudo”.
O sistema está protegido e os backups passam a ser armazenados em um repositório imutável, criando uma camada adicional de proteção dentro da política de cybersegurança da organização.
Referências:
https://helpcenter.veeam.com/docs/backup/hyperv/hardened_repository.html?ver=120
https://www.veeam.com/blog/installing-ubuntu-linux-veeam-hardened-repository.html
https://www.veeam.com/blog/backup-repository-security-disa-stig-ubuntu-step-by-step-guide.html
Discover more from CloudnRoll
Subscribe to get the latest posts sent to your email.
