Безопасное автоматическое подключение зашифрованного диска при входе пользователя

18

Зашифрованный / home каталог автоматически монтируется для меня при входе в систему. У меня есть второй внутренний жесткий диск, который я отформатировал и зашифровал с помощью Дисковой утилиты. Я хочу, чтобы он автоматически монтировался при входе в систему, так же, как мой каталог зашифрованный / home. Как мне это сделать?

Здесь есть несколько очень похожих вопросов, но ответы не относятся к моей ситуации. Возможно, было бы лучше закрыть / объединить мой вопрос здесь и отредактировать второй ниже, но я думаю, что он, возможно, был заброшен (и поэтому никогда не будет помечен как принятый).

Это решение не является безопасным методом, оно обходит шифрование.
Этот требует редактирования fstab, что требует ввода дополнительного пароля при загрузке. Это не автоматически, как монтаж / дома.
Этот вопрос очень похож, но не относится к зашифрованному диску. Решение не будет работать для моих нужд.
Вот один, но это для дисков NTFS, у меня есть ext4.

Я могу переформатировать и повторно зашифровать второй диск, если решение требует этого. У меня есть все данные в другом месте.

Том Броссман
источник
Какую FS вы используете для шифрования? Удачи или ecrytpfs?
маргаритка
@AaronLewis Я просто использую Дисковую утилиту Ubuntu, чтобы отформатировать диск, а затем установите флажок «зашифровать этот диск». Если бы мне пришлось угадывать, я бы пошел с ecryptfs, так как это / home шифруется по умолчанию. Поскольку это так легко сделать, я никогда не смотрел на это.
Том Броссман

Ответы:

5

Вам больше не нужны решения выше.

Предпосылки:

  • установить Ubuntu 14.04 LTS
  • зашифрованный домашний каталог (см. https://help.ubuntu.com/community/EncryptedHome )
  • желание автоматически смонтировать вторичный зашифрованный диск [править] при входе в систему.

Примечание. Этот метод менее безопасен, чем монтирование зашифрованного диска вручную. Если кто-то имеет физический доступ к вашему компьютеру, вы небрежно относитесь к своему паролю root или у вашего компьютера несколько учетных записей пользователей / гостей, этот метод небезопасен ; дополнительный диск остается подключенным, когда вы выходите из системы, но не выключаете систему, поэтому его содержимое видимо другим пользователям.

Часть 1. Шифрование вторичного диска.

  1. В Unity Dash наберите «Диски» и нажмите Enter.
  2. Ниже «Устройства» нажмите на жесткий диск, который вы хотите зашифровать.
  3. Внизу «Объемы» нажмите на кнопку «Cog / More Actions».
  4. Нажмите «Форматировать объем». В качестве типа выберите «Зашифровано, совместимо с системами Linux». Назовите свой диск и дайте ему сильный пароль.
  5. Нажмите «Формат»

Часть 2. Автоматическое подключение жесткого диска при запуске системы.

  1. Оставьте приложение «Диски» открытым и нажмите на значок.
  2. Нажмите «Изменить параметры шифрования».
  3. «Параметры автоматического шифрования» будут включены, а меню ниже будет серым. Выключите автоматическое шифрование.
  4. Введите парольную фразу от того, когда вы отформатировали диск. Нажмите «ОК».

Теперь у вас есть зашифрованный жесткий диск, который будет автоматически подключаться при загрузке компьютера.

tryion
источник
1
Хотя я уверен, что кому-то это пригодится, это не ответ на поставленный вопрос, который указывает, что вторичное монтирование должно происходить при входе пользователя в систему, а не при запуске системы. Это делает первоначальное утверждение, что «вам больше не нужны решения выше» неуместно, и я приглашаю автора перефразировать ответ соответствующим образом.
mc0e
2
Я думаю, что вы не правы здесь. То есть вторичное монтирование происходит при входе пользователя в систему (только для той учетной записи, над которой была выполнена упомянутая мной операция), а не за секунду до этого. Когда моя жена входит в свою учетную запись Ubuntu на том же компьютере, диск не подключается. Если она пытается смонтировать его, он запрашивает ключ шифрования. Я утверждаю, вам не нужны ответы выше.
Tryion
1
Согласитесь, сейчас это самый простой способ, поскольку я единственный пользователь на этой машине. Это не будет работать для всех, но если у вас установлена ​​Ubuntu, и вы являетесь основным пользователем / администратором, это путь. К настоящему моменту где-то должен быть установлен большой флажок «Сделать так, чтобы он работал точно так же, как зашифрованный / домашний», это простой вариант использования.
Том Броссман
@tryion Раздел LUKS разблокируется при запуске системы, но не монтируется. Поэтому, как только компьютер включается, он становится доступным как незашифрованный раздел. Пароль хранится в открытом виде в /etc/crypttab. Для доступа к разделу пароль пользователя не требуется. Таким образом, этот параметр эквивалентен отсутствию шифрования и не является ответом на вопрос.
Виктор,
Существуют ли варианты его хранения в другом месте с использованием libsecret для дешифрования для конкретного пользователя, и есть ли справочник по этой теме для пользователей без графического интерфейса или без заголовка.
MrMesees
10

Когда я написал этот ответ несколько лет назад, это был лучший способ реализации решения. Теперь я предлагаю вам посмотреть на следующий ответ, используя вместо этого mount.ecryptfs_private.

Я также искал способ автоматического подключения второго тома eCryptfs. Следующая коллекция скриптов и модификаций конфигурации будет безопасно и автоматически монтировать ваш том при входе в систему, либо в GUI, либо в CLI.

Существует лучшее решение, которое находится в процессе создания (хотя я думаю, что оно не совсем готово к автоматическому подключению при входе пользователя в систему, так как этот сценарий будет иметь ограниченный срок годности.):

ecryptfs на слишком маленьком жестком диске - как добавить ссылки в шифрование?

Безопасность сценариев зависит от того, зашифрован ли ваш домашний каталог с помощью eCryptfs, так что сценарий и файлы с паролем для развёртывания вашей парольной фразы будут зашифрованы. Если вы оставите компьютер разблокированным с помощью корневой оболочки, открытой после входа в систему, вы сможете получить доступ к паролям, однако использование sudo NOPASSWD позволяет безопасно монтировать раздел, не требуя ввода пароля или оставляя парольную фразу в файле, читаемом пользователем.

Одним из известных недостатков этих сценариев является то, что ваш второй том не будет отключен при выходе из системы, так как он не особенно подходит для многопользовательских систем.

Мое решение состоит из нескольких частей, двух сценариев оболочки, один из которых выполняет фактическое монтирование, а другой служит оберткой для него.

Это скрипт-обертка, который проверяет, если каталог уже смонтирован, если нет, то он вызовет сценарий монтирования, используя sudo:

/ главная / johnf / скрипты / 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

Этот скрипт вызывает / home / johnf / scripts / mount_other_ecryptfs, который выглядит следующим образом.

Обратите внимание, что в этом сценарии предполагается, что у вас включено шифрование имени файла, в противном случае необходимо будет либо изменить сценарий для обработки обнаружения (посмотрите на ecryptfs-recovery-private), либо вы можете удалить опцию монтирования ecryptfs_fnek_sig.

Ниже приведен скрипт / 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}

Вам также нужно будет создать файл с вашим паролем, этот файл будет использоваться командой монтирования eCryptfs:

/ Главная / johnf / скрипты / ecryptfs_passphrase:

passwd=secret_passphrase

Вам необходимо изменить разрешения для нескольких файлов:

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

Перед созданием сценариев необходимо создать конфигурацию sudoers, чтобы разрешить выполнение сценария монтирования с использованием sudo без ввода пароля sudo.

Добавьте следующее в / etc / sudoers (или в файл /etc/sudoers.d). Вы захотите заменить johnf своим именем пользователя. Необходимо использовать абсолютный путь к скрипту монтирования.

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

Последний шаг - вызов скрипта automount_ecryptfs при входе в систему.

В Ubuntu Unity (и, возможно, gnome) используйте апплет Startup Applications, чтобы создать новую программу запуска, которая вызывает / home / johnf / scripts / automount_ecryptfs.

Чтобы автоматически смонтировать второй том eCryptfs при входе в оболочку bash, вам нужно изменить файл ~ / .bashrc. Добавьте следующее:

/home/johnf/scripts/automount_ecryptfs

С этой конфигурацией вы должны автоматически смонтировать второй том eCryptfs.

johnf
источник
Вау, отличный ответ! Проголосовал и принял. Пока не могу проверить, но это выглядит очень полным.
Том Броссман
Автор в mount.ecryptfs_privateнастоящее время рекомендует использование ecryptfs-mount-private, также он, который является сценарием обертки для mount.ecryptfs_private. thesimplecomputer.info/… может стоить прочитать об относительных достоинствах ecryptfs и LUKS.
mc0e
9

Основываясь на ответе @ johnf, но используя вместо этого mount.ecryptfs_private :

  • зашифрован /home/bob/(например, на SSD), используя обычную зашифрованную магию домашнего каталога Ubuntu.
  • в зашифрованном виде /media/hdd/bob_extra/(например, на жестком диске), для установки на /home/bob/extra. Это должно выполнить автоматическое подключение при входе в систему, как это делает домашний каталог.
  • использовать одинаковые ключи / учетные данные для обоих.

создать это

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

Проверь это

mount.ecryptfs_private extra

работает mount, вы должны увидеть:

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

размонтировать:

sudo umount /media/hdd/bob_extra

настроить автомонтирование

Создать /home/bob/bin/automount_ecryptfs.extra, который будет монтировать его, если он еще не был подключен.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

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

Сделайте его исполняемым ( chmod +x), затем добавьте его в /home/bob/.bashrc:

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

Затем добавьте его в приложения запуска Gnome.

rcoup
источник
+1 Спасибо за ответ. У меня сейчас гораздо более сложная установка с несколькими SSD и символическими ссылками на общий диск, поэтому я не смогу это проверить. Я надеюсь, что шифрование нескольких жестких дисков будет так же просто, как шифрование / home когда-нибудь.
Том Броссман
Смотрите также, ecryptfs-mount-privateкоторый похож больше признакам. Например, он может автоматически использовать ключ из набора ключей пользователя.
mc0e
Этот ответ о монтировании частного каталога eCryptfs. Речь шла о монтировании раздела LUKS, созданного с помощью утилиты Disks .
Виктор
1

Создайте скрипт в вашем зашифрованном домашнем каталоге ~/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

Добавить в «Startup Applications»:

sh ~/scripts/mount_storage.sh

Добавить к /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

Вам необходимо создать /storageточку монтирования и изменить UUID в приведенном выше скрипте (найдите его с помощью blkid).

Рауль Ласнер
источник
Есть ли простой способ заставить скрипт работать так, как только USB подключен?
naught101
Я сам не пробовал, поэтому не могу сказать наверняка, но не понимаю, почему нет. Вам нужно создать правило udev, которое предназначено для определенного USB-устройства и запускает приведенный выше скрипт. Этот пост может быть отправной точкой, например.
Рауль Ласнер
0

Я боюсь, что это не будет популярным ответом ...

Невозможно автоматически смонтировать любой зашифрованный раздел без обхода безопасности самого шифрования.

Подумайте, что означает « автоматически », и поймите, что автоматически означает, что они тоже увидят ваши данные.

Дастин Киркланд
источник
Я использовал «Безопасно» субъективно, я мог убрать это из вопроса. Я просто хочу, чтобы зашифрованный диск, полный фотографий, был подключен при входе в систему, как / home. Я знаю, что это теоретически возможно, так как у меня есть третий (также зашифрованный) диск в качестве места назначения для Déjà Dup. Этот диск монтируется только при запуске утилиты резервного копирования. У меня полностью сохранен ключ, поэтому я не вводю его каждый раз. Мне удобно, когда все мои ключи обрабатываются автоматически после того, как я ввел свой пароль на экране входа в систему. Есть идеи, как это сделать? Благодарю.
Том Броссман
3
Автоматически в этом контексте означает, что он должен быть подключен после ввода пароля для входа. Пароль для входа в систему может быть ключом или чаще ключом к вашему зашифрованному разделу. Это достаточно безопасно (дает хороший пароль для входа).
Хавьер Ривера
Он не будет автоматически подключен к другому компьютеру, поэтому большинство из нас шифрует некоторые диски. В моем случае это диск, который я использую для резервного копирования. Я работаю в общем пространстве и знаю, что один из вас, ребята с большими знаниями, сможет обойти все, что я делаю, с физическим доступом к своему диску / компьютеру: я просто хочу уменьшить доступ к своим файлам, чтобы кто-нибудь еще мог не делай этого.
Рамон Суарес
Сделав это автоматическим процессом, возможно ли, чтобы кто-то, кто украл ваш компьютер, мог получить доступ к ключу вашего зашифрованного дополнительного HD? (а затем, конечно, смонтировать и получить доступ к этому HD)
miguelfg
Простой, очевидный сценарий: я подключаю USB-накопитель к серверу в офисе для резервного копирования данных. Я забираю USB-накопитель домой, чтобы обеспечить резервное копирование вне сайта на случай, если на сервере произойдет что-то плохое. Кто-то врывается в мою машину и забирает USB-диск, пока я в магазине по дороге домой. Теперь они должны: 1) знать, где находится сервер, и 2) проникнуть в офис, чтобы расшифровать диск. Эта часть намного сложнее, чем «просто подключить ее к своему компьютеру дома».
Эрни
0

Выполнение следующих действий должно быть безопасным. Требование пароля блокирует доступ других пользователей к тому, даже если он смонтирован.

1. Откройте Диски, выберите диск и нажмите на том LUKS. Нажмите на шестерни и выберите «Настройки сеанса пользователя». Выберите «Разблокировать при запуске системы» и «Требовать дополнительную авторизацию для разблокировки»: введите описание изображения здесь

2. Нажмите на том диска (ниже тома LUKS). Нажмите на шестерни и выберите «Настройки сеанса пользователя». Выберите «Монтировать при запуске системы» и «Показать в пользовательском интерфейсе»: введите описание изображения здесь

Вы также можете выбрать дополнительную аутентификацию для монтирования тома, но в этом случае монтирование не будет автоматическим для данного пользователя.

ElToro1966
источник