Unidade criptografada com montagem automática e segura no login do usuário


18

Um diretório criptografado / inicial é montado automaticamente para mim quando eu faço login. Eu tenho um segundo disco rígido interno que eu formatei e criptografei com o Disk Utility. Eu quero que ele seja montado automaticamente quando eu fizer o login, assim como meu diretório criptografado / home. Como eu faço isso?

Existem várias perguntas muito semelhantes aqui, mas as respostas não se aplicam à minha situação. Talvez seja melhor fechar / mesclar minha pergunta aqui e editar a segunda abaixo, mas acho que ela pode ter sido abandonada (e, portanto, nunca ser marcada como aceita).

Esta solução não é um método seguro, contorna a criptografia.
Este requer edição fstab, o que requer a inserção de uma senha adicional na inicialização. Não é automático como montagem / casa.
Esta pergunta é muito semelhante, mas não se aplica a uma unidade criptografada. A solução não funcionará para minhas necessidades.
Aqui está um, mas é para unidades NTFS, o meu é ext4.

Posso formatar e criptografar novamente a segunda unidade, se uma solução exigir isso. Eu tenho todos os dados de backup em outro lugar.


Qual FS você usa para criptografia? LUKS ou ecrytpfs?
daisy

@AaronLewis Acabei de usar o Utilitário de Disco do Ubuntu para formatar a unidade e marque a caixa 'criptografar esta unidade'. Se eu tivesse que adivinhar, usaria ecryptfs, pois é assim que / home é criptografado por padrão. Desde que é tão fácil de fazer, eu nunca procurei.
Tom Brossman

Respostas:


5

Você não precisa mais das soluções acima.

Pré-requisitos:

  • uma instalação do Ubuntu 14.04 LTS
  • um diretório inicial criptografado (consulte https://help.ubuntu.com/community/EncryptedHome )
  • um desejo de montar automaticamente uma unidade criptografada secundária [editar] quando você efetuar login.

Nota: esse método é menos seguro do que montar uma unidade criptografada manualmente. Se alguém tiver acesso físico ao seu computador, você não se importar com sua senha root ou seu computador tiver várias contas de usuários / convidados, esse método não é seguro ; a unidade secundária permanece montada quando você efetua logout, mas não desliga o sistema, para que seu conteúdo fique visível para outros usuários.

Parte 1: Criptografar a unidade secundária.

  1. No traço do Unity, digite "disks" e pressione enter.
  2. Abaixo de "Dispositivos", clique no disco rígido que você deseja criptografar.
  3. Abaixo de "Volumes", clique no botão engrenagem / mais ações.
  4. Clique em "Formatar volume". Para o tipo, escolha "Criptografado, compatível com sistemas Linux". Dê um nome à sua unidade e forneça uma frase secreta forte.
  5. Clique em "Formatar"

Parte 2: Monte automaticamente o HDD na inicialização do sistema.

  1. Mantenha o aplicativo "Disks" aberto e clique na engrenagem.
  2. Clique em "Editar opções de criptografia".
  3. "Opções de criptografia automática" será ativada e o menu abaixo acinzentado. Desative as opções de criptografia automática.
  4. Digite a senha de quando você formatou o disco. Clique OK".

Agora você tem um disco rígido criptografado que será montado automaticamente quando o computador inicializar.


11
Embora eu tenha certeza de que alguém terá uma utilidade para isso, não é uma resposta à pergunta apresentada, que especifica que a montagem secundária deve ocorrer no logon do usuário, em vez da inicialização do sistema. Isso torna inadequada a afirmação inicial de que "Você não precisa mais das soluções acima" e convido o autor a reformular a resposta de acordo.
Mc0e

2
Eu acho que você está errado aqui. Ou seja, a montagem secundária ocorre no logon do usuário (apenas na conta em que a operação mencionada foi executada) e nem um segundo antes. Quando minha esposa faz login em sua conta Ubuntu no mesmo computador, a unidade não está montada. Se ela tentar montá-lo, ele solicitará a chave de criptografia. Eu afirmo que você não precisa das respostas acima.
tryion

11
Concordado, esta é de longe a maneira mais simples agora, pois sou o único usuário na máquina. Não funcionará para todos, mas se você possui uma instalação do Ubuntu e é o usuário principal / administrador, este é o caminho a seguir. Realmente deveria haver uma grande caixa de seleção "Faça com que isso funcione exatamente como criptografado / doméstico" em algum lugar agora, é um caso de uso simples.
Tom Brossman

@tryion A partição LUKS é desbloqueada na inicialização do sistema, mas não está montada. Assim que o computador é ligado, fica tão acessível quanto uma partição não criptografada. A senha é armazenada em texto não criptografado em /etc/crypttab. Nenhuma senha de usuário é necessária para acessar a partição. Portanto, essa configuração é equivalente a não ter criptografia e não é uma resposta para a pergunta.
Victor

Existem opções para armazená-lo em outro lugar usando o libsecret para descriptografar para um usuário específico, e existe um guia cli para isso para usuários não GUI / sem cabeça.
MrMesees 12/03/19

10

Quando escrevi essa resposta há alguns anos, essa era a melhor maneira de implementar a solução. Agora, sugiro que você olhe para a próxima resposta usando mount.ecryptfs_private.

Eu também estava procurando uma maneira de montar automaticamente um segundo volume do eCryptfs. A seguinte coleção de scripts e modificações de configuração montará seu volume com segurança e automaticamente no logon, na GUI ou na CLI.

Existe uma solução melhor que está em processo de criação (embora eu ache que ainda não esteja pronta para a montagem automática no login do usuário, pois esse script terá uma vida útil limitada).

ecryptfs no disco rígido muito pequeno - como adicionar links à criptografia?

A segurança dos scripts depende da criptografia do diretório pessoal com o eCryptfs, para que o script e os arquivos com a senha para desembrulhar sua senha sejam criptografados. Se você deixar seu computador desbloqueado com um shell raiz aberto após o login, será possível acessar as senhas; no entanto, o uso do sudo NOPASSWD permitirá a montagem segura da partição sem a necessidade de digitar a senha ou deixar a frase secreta em um arquivo legível pelo usuário.

Uma deficiência conhecida desses scripts é que seu segundo volume não será desmontado no logout, pois não é particularmente adequado para sistemas multiusuário.

Minha solução é implementada com várias partes, dois scripts de shell, um que executa a montagem real e outro que serve como invólucro.

Este é o script do wrapper que valida se o diretório já está montado; caso contrário, ele chamará o script de montagem usando o sudo:

/ home / johnf / scripts / automount_ecryptfs

#!/bin/bash

MOUNT_POINT=/home/johnf/slow

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  sudo /home/johnf/scripts/mount_other_ecryptfs
fi

Este script chama / home / johnf / scripts / mount_other_ecryptfs, que é o seguinte.

Observe que esse script pressupõe que você tenha a criptografia de nome de arquivo ativada; caso contrário, será necessário modificar o script para manipular a detecção (consulte ecryptfs-recover-private) ou você poderá remover a opção de montagem ecryptfs_fnek_sig.

A seguir está o script / home / johnf / scripts / mount_other_ecryptfs:

#!/bin/bash

ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`

printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}

Você também precisará criar um arquivo com sua senha, este arquivo será usado pelo comando eCryptfs mount:

/ home / johnf / scripts / ecryptfs_passphrase:

passwd=secret_passphrase

Você precisa modificar as permissões em vários arquivos:

chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase

Antes de criar os scripts, você precisa criar uma configuração de sudoers para permitir a execução do script de montagem usando o sudo sem inserir sua senha do sudo.

Adicione o seguinte a / etc / sudoers (ou um arquivo em /etc/sudoers.d). Você deseja substituir johnf pelo seu nome de usuário. É necessário usar um caminho absoluto para o script de montagem.

johnf   ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs

A etapa final é chamar o script automount_ecryptfs no login.

No Ubuntu Unity (e provavelmente gnome), use o miniaplicativo Startup Applications para criar um novo programa de inicialização que chame / home / johnf / scripts / automount_ecryptfs.

Para montar automaticamente o segundo volume do eCryptfs no logon em um shell bash, você deverá modificar seu arquivo ~ / .bashrc. Adicione o seguinte:

/home/johnf/scripts/automount_ecryptfs

Com essa configuração, você deve montar automaticamente seu segundo volume do eCryptfs.


Uau, ótima resposta! Votado e aceito. Ainda não posso testá-lo, mas isso parece muito completo.
Tom Brossman

O autor mount.ecryptfs_privateagora recomenda o uso ecryptfs-mount-private, também por ele, que é um script de wrapper para mount.ecryptfs_private. thesimplecomputer.info/… pode valer a pena ler os méritos relativos de ecryptfs e LUKS.
Mc0e

9

Com base na resposta do @ johnf, mas usando mount.ecryptfs_private :

  • criptografado /home/bob/(por exemplo, em um SSD), usando a magia de diretório doméstico criptografado normal do Ubuntu.
  • criptografado /media/hdd/bob_extra/(por exemplo, em um disco rígido), para ser montado /home/bob/extra. Isso deve ocorrer automaticamente no login, assim como o diretório home.
  • use as mesmas chaves / credenciais para ambos.

crie

mkdir /media/hdd/bob_extra
cp /home/bob/.ecryptfs/Private.sig /home/bob/.ecryptfs/extra.sig
echo "/media/hdd/bob_extra /home/bob/extra ecryptfs none 0 0" > /home/bob/.ecryptfs/extra.conf

teste-o

mount.ecryptfs_private extra

executando mount, você deve ver:

...
/media/hdd/bob_extra on /home/bob/extra type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=12345678abcdef,ecryptfs_fnek_sig=abcdef12345678)

desmontar:

sudo umount /media/hdd/bob_extra

montagem automática

Criar /home/bob/bin/automount_ecryptfs.extra, que o montará se ainda não tiver sido montado.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  mount.ecryptfs_private extra
fi

Torne-o executável ( chmod +x) e adicione-o em /home/bob/.bashrc:

...
/home/bob/bin/automount_ecryptfs.extra

Em seguida, adicione-o aos aplicativos de inicialização do Gnome também.


+1 Obrigado pela resposta. Agora, tenho uma configuração muito mais complicada com vários SSDs e links simbólicos para uma unidade compartilhada, portanto não poderei testar isso. Espero que criptografar vários HDDs seja tão simples quanto criptografar / em casa algum dia.
Tom Brossman

Veja também ecryptfs-mount-privatequal é semelhante, mais destacado. Por exemplo, ele pode usar automaticamente uma chave do chaveiro do usuário.
Mc0e

Esta resposta é sobre a montagem de um diretório privado eCryptfs. A questão era sobre a montagem de uma partição LUKS criada com o utilitário Disks .
213 Victor Victor

1

Crie um script no seu diretório inicial criptografado ~/scripts/mount_storage.sh::

#!/bin/bash

sudo cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file ~/keys/storage_keyfile
sudo mount /dev/mapper/storage /storage

Adicione a "Aplicativos de inicialização":

sh ~/scripts/mount_storage.sh

Adicionar a /etc/sudoers:

%sudo   ALL= NOPASSWD: /sbin/cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file *
%sudo   ALL= NOPASSWD: /bin/mount /dev/mapper/storage /storage

Você precisa ter criado o /storageponto de montagem e alterar o UUID no script acima (localize-o com blkid).


Existe uma maneira fácil de executar um script como esse sempre que um USB estiver conectado?
naught101 3/03

Eu não tentei isso sozinho, então não posso dizer com certeza, mas não vejo por que não. Você precisaria criar uma regra do udev que vise um dispositivo USB específico e execute o script acima. Esta postagem pode ser um ponto de partida, por exemplo.
Raul Laasner 03/03

0

Receio que esta não seja uma resposta popular ...

Não será possível montar automaticamente nenhuma partição criptografada, sem contornar a segurança da própria criptografia.

Pense no que significa " automaticamente " e entenda que significa automaticamente que eles também verão seus dados.


Eu usei 'Seguramente' subjetivamente, poderia removê-lo da questão. Eu só quero que a unidade criptografada cheia de fotos seja montada quando eu fizer login, exatamente como / home. Sei que isso é teoricamente possível, pois tenho uma terceira unidade (também criptografada) como destino para o Déjà Dup. Essa unidade só é montada quando o utilitário de backup é iniciado. Totalmente automática, tenho a chave salva para não inseri-la sempre. Sinto-me confortável em ter todas as minhas chaves manipuladas automaticamente depois de inserir minha senha na tela de login. Alguma idéia de como fazer isso acontecer? Obrigado.
Tom Brossman

3
Automaticamente, neste contexto, significa que ele deve ser montado depois que você digitar sua senha de login. A senha de login pode ser a chave, ou mais frequentemente a chave da chave, na sua partição criptografada. Isso é razoavelmente seguro (fornecendo uma boa senha de login).
Javier Rivera

Ele não será montado automaticamente em outro computador, razão pela qual a maioria de nós criptografa alguns discos. No meu caso, é um disco que eu uso para fazer backups. Eu trabalho em um espaço compartilhado e sei que um de vocês com muito conhecimento será capaz de contornar o que eu fizer com o acesso físico ao meu disco / computador: eu só quero reduzir a acessibilidade dos meus arquivos para que qualquer outra pessoa possa não faça isso.
Ramon Suarez

Ao torná-lo um processo automático, seria possível que alguém que roubasse seu computador pudesse acessar a chave do seu HD extra criptografado? (e depois, claro, montar e acesso este HD)
miguelfg

Cenário fácil e óbvio: conecto uma unidade USB a um servidor no escritório para fazer backup dos dados. Levo o drive USB para casa para garantir backups externos, caso algo de ruim aconteça com o servidor. Alguém entra no meu carro e pega o disco USB enquanto estou na loja a caminho de casa. Agora eles precisam 1) saber onde está o servidor e 2) invadir o escritório para descriptografar o disco. Essa parte é muito mais difícil do que "basta conectá-la ao computador em casa".
Ernie

0

O procedimento a seguir deve ser seguro. A exigência da frase secreta impede que outros usuários obtenham acesso ao volume, mesmo que ele esteja montado.

1. Abra os discos, escolha a unidade e clique no volume LUKS. Clique nas rodas dentadas e selecione "Padrões da sessão do usuário". Escolha "Desbloquear na inicialização do sistema" e "Requer autorização adicional para desbloquear": insira a descrição da imagem aqui

2.Clique no volume do disco (abaixo do volume LUKS). Clique nas rodas dentadas e selecione "Padrões da sessão do usuário". Escolha "Montar na inicialização do sistema" e "Mostrar na interface do usuário": insira a descrição da imagem aqui

Você também pode optar por exigir autenticação adicional para montar o volume, mas nesse caso a montagem não seria automática para o usuário em questão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.