Existem três métodos: configurar um volume criptografado em uma partição ( dm-crypt , configurado com cryptsetup ), configurar um arquivo que é um volume criptografado (truecrypt), configurar um diretório no qual cada arquivo é criptografado separadamente ( ecryptfs ou encfs ).
A configuração de um volume criptografado oferece um pouco mais de confidencialidade, porque os metadados (tamanho, tempo de modificação) de seus arquivos são invisíveis. No lado negativo, é menos flexível (você tem que decidir com antecedência sobre o tamanho do volume criptografado). A ecryptfs FAQ lista algumas diferenças entre as duas abordagens.
Se você optar por criptografar arquivo por arquivo, estou ciente de duas opções: ecryptfs e encfs . O primeiro usa um driver in-kernel enquanto o último usa o FUSE. Isso pode dar ecryptfs uma vantagem de velocidade; isso dá a encfs uma vantagem de flexibilidade, já que nada precisa ser feito como root. Um possível benefício de ecryptfs é que uma vez que você tenha feito a configuração inicial, você pode usar sua senha de login como uma senha do sistema de arquivos graças ao módulo pam_ecryptfs .
Para meu próprio uso em uma situação semelhante, escolhi encfs , porque não vi nenhum benefício real de segurança para outras soluções, por isso a facilidade de uso foi o fator determinante. O desempenho não foi um problema. O fluxo de trabalho é muito simples (a primeira execução de encfs cria o sistema de arquivos):
aptitude install encfs
encfs ~/.work.encrypted ~/work
... work ...
fusermount -u ~/work
Eu recomendo que você também criptografe seu espaço de troca e qualquer lugar onde arquivos temporários temporários possam ser gravados, como /tmp e /var/spool/cups (se você imprimir arquivos confidenciais). Use cryptsetup para criptografar sua partição swap. A maneira mais fácil de lidar com /tmp é mantê-lo na memória montando-o como tmpfs (isso pode dar um leve benefício de desempenho em qualquer caso).