Criptografando o disco de um servidor remoto
Resposta
A criptografia de disco completo em um servidor remoto usa LUKS2 com a senha inserida na inicialização por meio de um console fora de banda ou um shell SSH dropbear no initramfs. Protege contra apreensão de disco e recuperação de unidades desativadas. Não protege um servidor em execução, cujas chaves estão na RAM.
Seja preciso sobre a ameaça que ela endereça
A criptografia de disco completo protege dados em repouso. Depois que a máquina é inicializada e o volume é desbloqueado, a chave está na memória do kernel e o sistema de arquivos é legível por qualquer coisa com privilégios suficientes — incluindo, em uma plataforma virtualizada, um operador de hipervisor que pode despejar a RAM da VM.
Então, a criptografia de disco completo derrota: apreensão de hardware desligado, discos saindo do data center no fim da vida útil e uma cópia fria da imagem do disco virtual. Não derrota: um atacante no sistema em execução, ou um adversário no nível do hipervisor contra uma VM em execução. Esses são os limites honestos, e qualquer guia que os ignore está vendendo conforto.
O problema do desbloqueio remoto
Em um laptop, você digita a senha na inicialização. Em um servidor a dois mil quilômetros de distância, algo tem que fornecê-la, e as soluções óbvias todas frustram o propósito — um keyfile no mesmo disco, ou uma chave armazenada pelo provedor, significa que a criptografia é decorativa.
Há duas respostas corretas. Em nossos servidores dedicados e GPU, use o console fora de banda: IPMI dá a você a tela de inicialização e você digita a senha como faria localmente. Em uma VPS, coloque dropbear-initramfs no ramdisk inicial para que a máquina inicialize o suficiente para aceitar uma conexão SSH, você desbloqueia por essa conexão e a inicialização continua.
Configurando
O caminho limpo é criptografar no momento da instalação. Inicialize um ISO personalizado pela mídia virtual, particione com um /boot não criptografado e um contêiner LUKS2 para todo o resto, e instale nele. Escolha Argon2id como função de derivação de chave — é o padrão do LUKS2 e é memory-hard, o que importa contra força bruta.
Peça LUKS no provisionamento em qualquer plano dedicado, GPU ou de armazenamento e nós fazemos o particionamento; você insere a senha pelo console no primeiro boot e ela nunca toca nossa infraestrutura. Não há cobrança e não há caminho de recuperação, o que é a mesma afirmação dita duas vezes.
- cryptsetup luksFormat --type luks2 --pbkdf argon2id /dev/sdaX
- /boot não criptografado, todo o resto dentro do contêiner
- apt install dropbear-initramfs em uma VPS para desbloqueio remoto
- Adicione sua chave SSH a /etc/dropbear/initramfs/authorized_keys
- Teste uma reinicialização completa antes de colocar qualquer coisa nele
- Mantenha um segundo slot de chave com uma senha armazenada em algum lugar seguro
Duas coisas que as pessoas erram
A primeira é ter apenas um slot de chave. LUKS2 suporta oito; use pelo menos dois, com o segundo contendo uma senha longa e aleatória guardada em um gerenciador de senhas. Uma única senha esquecida é irrecuperável, e irrecuperável significa irrecuperável.
A segunda é não testar uma reinicialização antes de colocar dados na máquina. Um initramfs dropbear mal configurado transforma a primeira reinicialização não planejada em uma máquina que nunca mais volta. Reinicialize deliberadamente, duas vezes, enquanto ela ainda está vazia.
Perguntas frequentes
01 Meu provedor pode ler um disco criptografado?
Não em repouso. Em uma VM em execução, um operador de hipervisor pode, em princípio, ler a memória do convidado, que contém a chave — isso é verdade para todo provedor de virtualização. Bare metal com LUKS remove essa interface.
02 Como desbloqueio um servidor que não posso tocar?
Console IPMI fora de banda em servidores dedicados e GPU, ou dropbear-initramfs em um VPS — a máquina inicializa o suficiente para aceitar SSH, você desbloqueia por ele e a inicialização continua.
03 E se eu esquecer a senha?
Os dados estão perdidos. Não há recuperação, nenhum backdoor e nenhuma chave em posse do provedor. Use pelo menos dois slots de chave LUKS, com o segundo contendo uma senha longa e aleatória em um gerenciador de senhas.
Relacionados