Criptografando sua Home com Gocryptfs para tristeza do meliante

Já pensou ter seu notebook roubado? Seus dados ali... acessíveis para qualquer um. Não, não precisam saber sua senha para acessar sua home. Basta mudar um parâmetro no boot! Mas imagina a cara do meliante ao descobrir que seus dados estão encriptados!

[ Hits: 66 ]

Por: Xerxes em 27/04/2026


Introdução



A criptografia de disco inteiro (LUKS) é excelente, mas às vezes você não quer (ou não pode) formatar o disco inteiro. Talvez você já tenha seu Arch Linux ou CachyOS rodando liso em um sistema de arquivos Btrfs e queira apenas proteger seus dados pessoais — suas chaves SSH, senhas salvas no navegador, fotos e documentos. É aqui que entra a criptografia de diretório.

Por muito tempo usei o eCryptfs, que é até opção no instalador do Linux Mint. Mas aparentemente existe algo mais moderno. Hoje, vamos conversar sobre o Gocryptfs, uma solução mais nova, segura e, de acordo com minha amiga Gemnini, mais rápida.

Linux: Criptografando sua Home com Gocryptfs para tristeza do meliante

Por que abandonar o eCryptfs e adotar o Gocryptfs?

De acordo com a Gemini, eis os motivos:

1. Segurança Autenticada (AES-GCM): O eCryptfs usa criptografia legada que protege contra leitura, mas não contra modificação. O Gocryptfs usa AES-GCM (Galois/Counter Mode), que é criptografia autenticada. Se um único bit do arquivo cifrado for alterado fora do sistema, o Gocryptfs bloqueia a leitura.

2. Arquitetura FUSE vs. Kernel: O eCryptfs roda no espaço do kernel. Um bug lá pode causar um Kernel Panic. O Gocryptfs roda em espaço de usuário (FUSE).

3. Desempenho Bruto: Em processadores modernos com instruções AES-NI nativas (como a linha AMD Ryzen ou Intel Core), a aceleração por hardware anula o gargalo do FUSE. O Gocryptfs voa.

4. Amigável ao Btrfs: Diferente do LUKS, o Gocryptfs encripta arquivo por arquivo. Isso permite que seus snapshots do Btrfs continuem funcionando perfeitamente, fazendo o backup da versão cifrada dos arquivos.

Explicando o funcionamento do Gocryptfs

Para o Gocryptfs funcionar, precisamos lidar com duas pastas:
  • O Cipherdir (Diretório Cifrado): onde seus dados ficarão fisicamente de forma ilegível.
  • O Mountpoint (Ponto de Montagem): a "lente" pela qual você acessa seus dados normalmente.

Aviso de Segurança Crítico: não realize este processo logado na interface gráfica com o usuário em questão. Faremos tudo via terminal TTY como root.

Passo a Passo

Avisos: artigo testado com Arch Linux, porém facilmente adaptável para outras distros. Considere que seu usuário se chama xerxes. Substitua pelo seu nome real. E, por fim, antes de realizar o procedimento realize cópia de segurança dos seus arquivos, pois se algo der errado o estrago não será grande.

Passo 1: Instalação e Preparação do FUSE

Instale as ferramentas e prepare o sistema para permitir que o gerenciador de login (LightDM/GDM) acesse a pasta criptografada.

sudo pacman -S gocryptfs pam_mount rsync --noconfirm

Liberar acesso global ao FUSE (importante para evitar loop de login, que eu tive):

sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf

Passo 2: Dropando para o TTY

Pressione Ctrl + Alt + F3 e logue como root.

Passo 3: Preparando o Terreno

Faça da sua home o seu backup e ajuste as permissões:

cd /home

mv xerxes xerxes.backup

mkdir xerxes.cipher xerxes

chown xerxes:xerxes xerxes.cipher xerxes

chmod 700 xerxes.cipher xerxes

Passo 4: Inicializando o Cofre

Execute o comando gocrypts como se fosse seu usuário:

su -c "gocryptfs -init /home/xerxes.cipher" xerxes

Use a mesma senha do seu login. Salve a Master Key em papel.

Passo 5: Montagem Manual e Migração

O FUSE bloqueia o root por padrão. Para que o processo ocorra sem erros de permissão e faça a cópia excluindo a lixeira:

su -c "gocryptfs -allow_other /home/xerxes.cipher /home/xerxes" xerxes

su -c "rsync -aP --exclude='.local/share/Trash/' /home/xerxes.backup/ /home/xerxes/" xerxes

Passo 6: Retorno Seguro à Interface Gráfica

Para evitar o erro "directory not empty" e o "login loop" no LightDM:

1. Saia do diretório home para não travar a desmontagem:

cd /

2. Desmonte a home:

su -c "fusermount -u /home/xerxes" xerxes

3. Limpe arquivos e resquícios criados pelo login no TTY:

rm -rf /home/xerxes/.* /home/xerxes/* 2>/dev/null

4. Monte novamente com permissão para outros usuários (essencial para o LightDM gravar o .Xauthority):

su -c "gocryptfs -allow_other /home/xerxes.cipher /home/xerxes" xerxes

5. Volte para a interface gráfica (Ctrl + Alt + F7) e logue normalmente.

Passo 7: Automação com PAM (Login Único)

Agora no ambiente gráfico, abra o terminal e automatize a montagem para não digitar a senha duas vezes (pelo menos foi o que a Gemini disse. Não cheguei a testar digitar duas vezes. Fiz logo a configuração com medo de quebrar o sistema). O comando a seguir já faz as edições necessárias. Copie e dê Enter:

sudo tee /etc/security/pam_mount.conf.xml << 'EOF' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> <pam_mount> <debug enable="0" /> <volume user="xerxes" fstype="fuse" options="nodev,nosuid,quiet,allow_other,config=/home/%(USER).cipher/gocryptfs.conf" path="gocryptfs#/home/%(USER).cipher" mountpoint="/home/%(USER)" /> <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_other" /> <mntoptions require="nosuid,nodev" /> <logout wait="0" hup="0" term="0" kill="0" /> <mkmountpoint enable="1" remove="true" /> </pam_mount> EOF

Habilite o módulo no sistema (mesma coisa, copie e dê Enter):

sudo tee -a /etc/pam.d/system-login << 'EOF' auth optional pam_mount.so session optional pam_mount.so EOF

Conclusão e Limpeza

Reinicie e logue. Se tudo estiver lá, confirme a montagem com:

mount | grep gocryptfs

Saída exemplo:

/home/xerxes.cipher on /home/xerxes type fuse.gocryptfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,default_permissions,allow_other,max_read=1048576)

Por fim, remova o backup inseguro:

sudo rm -rf /home/xerxes.backup

Obs.: criptografia não substitui backup. Mantenha seus dados seguros em uma unidade externa!
   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Criando um painel de controle (Dashboard) para seu servidor com o Homepage

Introdução ao gerenciador de janelas i3

Instalação do Gentoo GNU/Linux em um SSD NVMe (UEFI/GPT)

Porque eu uso Linux Mint

Arch BSD - Instalação em VirtualBox

Leitura recomendada

Double Dragon: chkrootkit e portsentry, agora vai rolar pancadaria nos intrusos!

Attik Firewall

Implementação de OpenVAS-5 em Ubuntu 10.04.4 LTS

PHPIDS - PHP Intrusion Detection System, deixe seu site livre de intrusos!

Verificação de integridade de arquivos - Ferramenta OSSEC

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts