Para entender a melhor solução para o seu problema, você precisa esclarecer o que está tentando alcançar. Em outras palavras, qual é o seu modelo de ameaça? Quem é seu atacante? Você menciona que, para contornar a criptografia, seria necessário "levar a máquina ao vivo" (pelo que suponho que você esteja falando de invasão), mas esse é o cenário mais provável para um servidor colocado. A criptografia de disco é principalmente usada no caso de roubo físico.
Você também precisa considerar quais dados você está protegendo. Você menciona "criptografar totalmente um disco", mas isso exige criptografia, por exemplo, / usr Se você está executando uma distribuição padrão, não há nada de interesse lá. Sem saber mais sobre o que o servidor irá conter, é difícil fazer recomendações.
Mas, para dar uma sugestão mais concreta, considere o seguinte servidor hipotético. Ele contém o seguinte:
- Um site simples mostrando alguns produtos
- Um aplicativo de pedido CRUD básico escrito em Rails / Django / whatever
- Um banco de dados Postgres para informações e pedidos do cliente
Destes componentes, apenas o banco de dados realmente precisa ser protegido, então aqui está como eu abordaria isso:
- Deixar a maior parte da máquina sem criptografia (mas fazer o máximo possível do FS somente leitura)
- Crie uma partição separada para o banco de dados e criptografe-a com uma senha strong usando qualquer um dos sistemas de criptografia disponíveis do Linux (ecryptfs, etc.).
- Após cada reinicialização, faça o login e monte a partição com a chave, que é armazenada em outro lugar.
- Em uma reinicialização, o servidor deve me alertar
Você menciona o TPM, mas o TPM não ajuda em vários casos, como se um invasor obtivesse privilégios de administração. O TrueCrypt tem o rejeitado suporte para o TPM por esse motivo.