Automaticamente il montaggio automatico dell'unità crittografata all'accesso dell'utente


18

Una directory crittografata / home viene montata automaticamente per me quando eseguo l'accesso. Ho un secondo disco rigido interno che ho formattato e crittografato con Utility Disco. Voglio che venga montato automaticamente quando eseguo l'accesso, proprio come la mia directory crittografata / home. Come faccio a fare questo?

Ci sono molte domande molto simili qui, ma le risposte non si applicano alla mia situazione. Potrebbe essere meglio chiudere / unire la mia domanda qui e modificare la seconda qui sotto, ma penso che potrebbe essere stata abbandonata (e quindi non essere mai contrassegnata come accettata).

Questa soluzione non è un metodo sicuro, elude la crittografia.
Questo richiede la modifica fstab, che richiede l'inserimento di una password aggiuntiva all'avvio. Non è automatico come il montaggio / home.
Questa domanda è molto simile, ma non si applica a un'unità crittografata. La soluzione non funzionerà per le mie esigenze.
Eccone uno ma è per le unità NTFS, il mio è ext4.

Posso riformattare e ricrittografare la seconda unità se una soluzione lo richiede. Ho eseguito il backup di tutti i dati altrove.


Quali FS usi per la crittografia? LUKS o ecrytpfs?
margherita

@AaronLewis Uso l'Utility Disco di Ubuntu per formattare l'unità, quindi selezionare la casella "Crittografa questa unità". Se dovessi indovinare andrei con ecryptfs, poiché questo è il modo in cui / home è crittografato per impostazione predefinita. Dal momento che è così facile da fare non ci ho mai pensato.
Tom Brossman,

Risposte:


5

Non hai più bisogno delle soluzioni sopra.

Prerequisiti:

  • un'installazione Ubuntu 14.04 LTS
  • una home directory crittografata (vedi https://help.ubuntu.com/community/EncryptedHome )
  • il desiderio di montare automaticamente un'unità crittografata secondaria [modifica] quando effettui l'accesso.

Nota: questo metodo è meno sicuro rispetto al montaggio manuale di un'unità crittografata. Se qualcuno ha un accesso fisico al tuo computer, sei disattento con la tua password di root o il tuo computer ha più account utente / ospite, questo metodo non è sicuro ; l'unità secondaria rimane montata quando ci si disconnette ma non si arresta il sistema, quindi i suoi contenuti sono visibili agli altri utenti.

Parte 1: crittografare l'unità secondaria.

  1. Nel trattino Unity digitare "dischi" e premere invio.
  2. Sotto "Dispositivi" fai clic sul disco rigido che desideri crittografare.
  3. Sotto "Volumi" fai clic sul pulsante ingranaggio / altre azioni.
  4. Fai clic su "Formato volume". Per tipo, seleziona "Crittografato, compatibile con i sistemi Linux". Dai un nome al tuo disco e assegnagli una passphrase forte.
  5. Fai clic su "Formato"

Parte 2: montare automaticamente l'HDD all'avvio del sistema.

  1. Tieni aperta l'applicazione "Dischi" e fai clic sull'ingranaggio.
  2. Fai clic su "Modifica opzioni di crittografia".
  3. Le "Opzioni di crittografia automatica" verranno attivate e il menu sottostante verrà disattivato. Disattiva le opzioni di crittografia automatica.
  4. Inserisci la passphrase da quando hai formattato il disco. Fai clic su "Ok".

Ora hai un disco rigido crittografato che si monterà automaticamente all'avvio del computer.


1
Mentre sono sicuro che qualcuno avrà un uso per questo, non è una risposta alla domanda come posta, che specifica che il montaggio secondario dovrebbe avvenire all'accesso dell'utente, al contrario dell'avvio del sistema. Ciò rende inappropriata l'affermazione iniziale secondo cui "Non sono più necessarie le soluzioni sopra" e invito l'autore a riformulare la risposta di conseguenza.
mc0e,

2
Penso che ti sbagli qui. Cioè, il mount secondario si verifica al login dell'utente (solo sull'account in cui è stata eseguita l'operazione che ho citato) e non un secondo prima. Quando mia moglie accede al suo account Ubuntu sullo stesso computer l'unità non è montata. Se prova a montarlo, chiede la chiave di crittografia. Sostengo, non hai bisogno delle risposte sopra.
prova

1
D'accordo, questo è di gran lunga il modo più semplice ora poiché sono l'unico utente sulla macchina. Non funzionerà per tutti ma se hai un'installazione Ubuntu e sei l'utente principale / admin, questa è la strada da percorrere. Dovrebbe esserci davvero una grande casella di controllo "Fai in modo che funzioni esattamente come crittografato / home" da qualche parte ormai, è un semplice caso d'uso.
Tom Brossman,

@tryion La partizione LUKS è sbloccata all'avvio del sistema, ma non montata. Quindi non appena il computer è acceso, è accessibile come una partizione non crittografata. La password è memorizzata in chiaro in /etc/crypttab. Nessuna password utente è necessaria per accedere alla partion. Quindi questa impostazione equivale a non avere affatto la crittografia e non è una risposta alla domanda.
Victor,

Ci sono opzioni per memorizzarlo altrove usando libsecret per decodificare per un utente specifico, e c'è una guida a cli per questo per utenti non-GUI / senza testa.
MrMesees,

10

Quando ho scritto questa risposta qualche anno fa, questo era il modo migliore per implementare la soluzione. Ora suggerirei di guardare la risposta successiva usando mount.ecryptfs_private.

Stavo anche cercando un modo per montare automaticamente un secondo volume di eCryptfs. La seguente raccolta di script e modifiche alla configurazione monterà in modo sicuro e automatico il volume all'accesso, sia sulla GUI che sulla CLI.

Esiste una soluzione migliore in fase di creazione (anche se penso che non sia del tutto pronta per il montaggio automatico al login dell'utente, in quanto tale script avrà una durata di conservazione limitata):

ecryptfs su hard disk troppo piccoli - come aggiungere collegamenti nella crittografia?

La sicurezza degli script dipende dalla crittografia della directory home con eCryptfs in modo che lo script e i file con la password per scartare la passphrase siano crittografati. Se lasci il tuo computer sbloccato con una shell root aperta dopo il login sarà possibile accedere alle password, tuttavia l'uso di sudo NOPASSWD consente il montaggio sicuro della partizione senza richiedere l'immissione della password o lasciare la passphrase in un file leggibile dall'utente.

Una carenza nota di questi script è che il secondo volume non verrà smontato al logout, in quanto tale non è particolarmente adatto per sistemi multiutente.

La mia soluzione è implementata con diverse parti, due script di shell, uno che esegue il montaggio effettivo e un altro che funge da wrapper.

Questo è lo script wrapper che convalida se la directory è già montata, in caso contrario chiamerà lo script di montaggio usando 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

Questo script chiama / home / johnf / scripts / mount_other_ecryptfs che è il seguente.

Si noti che questo script presuppone che sia abilitata la crittografia del nome file, in caso contrario sarà necessario modificare lo script per gestire il rilevamento (consultare ecryptfs-recover-private) oppure rimuovere l'opzione di montaggio ecryptfs_fnek_sig.

Quello che segue è lo 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}

Dovrai anche creare un file con la tua password, questo file sarà usato dal comando mount di eCryptfs:

/ Home / johnf / scripts / ecryptfs_passphrase:

passwd=secret_passphrase

Devi modificare le autorizzazioni su più file:

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

Prima di creare gli script è necessario creare una configurazione sudoers per consentire l'esecuzione dello script di montaggio utilizzando sudo senza immettere la password di sudo.

Aggiungi quanto segue a / etc / sudoers (o un file in /etc/sudoers.d). Dovrai sostituire johnf con il tuo nome utente. È necessario utilizzare un percorso assoluto per lo script di montaggio.

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

Il passaggio finale consiste nel chiamare lo script automount_ecryptfs all'accesso.

Su Ubuntu Unity (e probabilmente gnome) usa l'applet Startup Applications per creare un nuovo programma di avvio che chiama / home / johnf / scripts / automount_ecryptfs.

Per montare automaticamente il secondo volume di eCryptfs all'accesso in una shell bash, dovrai modificare il tuo file ~ / .bashrc. Aggiungi quanto segue:

/home/johnf/scripts/automount_ecryptfs

Con questa configurazione attiva ora dovresti montare automaticamente il tuo secondo volume eCryptfs.


Caspita, ottima risposta! Votato e accettato. Non posso ancora provarlo ma questo sembra molto completo.
Tom Brossman,

L'autore di mount.ecryptfs_privatenow consiglia l'uso ecryptfs-mount-private, anche da parte sua, di cui è uno script wrapper mount.ecryptfs_private. thesimplecomputer.info/… può valere la pena di essere letto per i meriti relativi di ecryptfs e LUKS.
mc0e,

9

Basandosi sulla risposta di @ johnf ma usando invece mount.ecryptfs_private :

  • criptato /home/bob/(es. su un SSD), usando la normale magia home dir criptata di Ubuntu.
  • crittografato /media/hdd/bob_extra/(ad es. su un HDD), da montare su /home/bob/extra. Questo dovrebbe essere montato automaticamente all'accesso, proprio come fa la home directory.
  • usa le stesse chiavi / credenziali per entrambi.

Crealo

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

Provalo

mount.ecryptfs_private extra

in esecuzione mount, dovresti vedere:

...
/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)

per smontare:

sudo umount /media/hdd/bob_extra

installazione automount

Crea /home/bob/bin/automount_ecryptfs.extra, che lo monterà se non è già stato montato.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

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

Renderlo eseguibile ( chmod +x), quindi aggiungerlo in /home/bob/.bashrc:

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

Quindi aggiungilo anche alle applicazioni di avvio di Gnome.


+1 Grazie per la risposta. Ora ho una configurazione molto più complicata con più SSD e collegamenti simbolici a un'unità condivisa, quindi non sarò in grado di testarlo. Spero che la crittografia di più HDD sarà semplice come crittografare / home un giorno.
Tom Brossman,

Vedi anche ecryptfs-mount-privatequale è simile più descritto. Ad esempio, può utilizzare automaticamente una chiave dal portachiavi dell'utente.
mc0e,

Questa risposta riguarda il montaggio di una directory privata eCryptfs. La domanda riguardava il montaggio di una partizione LUKS creata con l' utility Disks .
Victor,

1

Crea uno script nella tua home directory crittografata ~/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

Aggiungi a "Applicazioni di avvio":

sh ~/scripts/mount_storage.sh

Aggiungi 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

Devi aver creato il /storagemount point e cambiare l'UUID nello script sopra (trovalo con blkid).


C'è un modo semplice per far funzionare uno script come questo ogni volta che viene collegata una USB?
nulla101

Non ho provato questo, quindi non posso dirlo con certezza, ma non vedo perché no. Dovresti creare una regola udev che abbia come target un dispositivo USB specifico ed esegua lo script sopra. Questo post potrebbe essere un punto di partenza, ad esempio.
Raul Laasner

0

Temo che questa non sarà una risposta popolare ...

Non sarà possibile montare automaticamente alcuna partizione crittografata, senza aggirare la sicurezza della crittografia stessa.

Pensa a cosa significa " automaticamente " e capisci che significa automaticamente che anche loro potranno vedere i tuoi dati.


Ho usato 'Sicuro' soggettivamente, potrei rimuoverlo dalla domanda. Voglio solo montare l'unità crittografata piena di foto quando eseguo l'accesso, proprio come / home è. So che ciò è teoricamente possibile, dal momento che ho una terza unità (anche crittografata) come destinazione per Déjà Dup. Quell'unità viene montata solo quando viene avviata l'utilità di backup. Completamente automatico, ho la chiave salvata, quindi non la inserisco ogni volta. Sono a mio agio nel gestire automaticamente tutte le chiavi dopo aver inserito la password nella schermata di accesso. Qualche idea su come realizzarlo? Grazie.
Tom Brossman,

3
Automaticamente in questo contesto significa che dovrebbe essere montato dopo aver inserito la password di accesso. La password di accesso può essere la chiave, o più spesso la chiave della chiave, per la partizione crittografata. Questo è abbastanza sicuro (fornendo una buona password di accesso).
Javier Rivera,

Non verrà automaticamente montato su un altro computer, motivo per cui la maggior parte di noi crittografa alcuni dischi. Nel mio caso è un disco che utilizzo per fare backup. Lavoro in uno spazio condiviso e so che uno di voi ragazzi con molta conoscenza sarà in grado di aggirare tutto ciò che faccio con l'accesso fisico al mio disco / computer: voglio solo ridurre l'accessibilità ai miei file in modo che chiunque altro possa non farlo.
Ramon Suarez,

Rendendolo un processo automatico, sarebbe possibile che qualcuno che rubasse il tuo computer, potesse accedere alla chiave del tuo HD extra crittografato ?? (e poi ovviamente monta e accedi a questo HD)
miguelfg,

Scenario semplice e ovvio: collego un'unità USB a un server in ufficio per eseguire il backup dei dati. Porto l'unità USB a casa per garantire i backup fuori sede nel caso in cui si verifichi qualcosa di male sul server. Qualcuno entra nella mia macchina e prende il disco USB mentre sono al negozio sulla strada di casa. Ora devono 1) sapere dove si trova anche il server e 2) entrare in ufficio per decrittografare il disco. Quella parte è molto più difficile di "collegarla al loro computer a casa".
Ernie,

0

Procedere come segue dovrebbe essere sicuro. La richiesta della passphrase impedisce ad altri utenti di accedere al volume, anche se è montato.

1.Aprire dischi, selezionare l'unità e fare clic sul volume LUKS. Fare clic sulle ruote dentate e deselezionare "Impostazioni predefinite sessione utente". Scegli "Sblocca all'avvio del sistema" e "Richiedi ulteriori autorizzazioni per sbloccare": inserisci qui la descrizione dell'immagine

2.Fare clic sul volume del disco (sotto il volume LUKS). Fare clic sulle ruote dentate e deselezionare "Impostazioni predefinite sessione utente". Scegli "Installa all'avvio del sistema" e "Mostra nell'interfaccia utente": inserisci qui la descrizione dell'immagine

È inoltre possibile scegliere di richiedere un'autenticazione aggiuntiva per montare il volume, ma in tal caso il montaggio non sarebbe automatico per l'utente in questione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.