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

Если bootstrap вернулась, все это означает, что juju смогла сказать сапожнику (основной части сервера-ассистента оркестра) для загрузки машины. Если у вас нет контроля мощности, определенного для профилей / систем в сапожнике, и / или у вас нет загрузки PXE по умолчанию на этом компьютере, вам все равно придется вручную перезагрузить сервер и привести к его загрузке PXE. что он устанавливает новый Ubuntu и запускает агенты juju при первой загрузке.

Кроме того, если вы не хотите, чтобы загрузочный лоток «брал» одну из ваших настоящих машин, вам нужно определить профиль для виртуальной машины внутри сапожника, а затем загрузить эту виртуальную машину. Другой способ взломать это на сервере сапожника, пока вы все еще просто возитесь с juju, - это просто прочитать файл предварительного семени, определенный для поддельной системы, и запустить агентов / zookeeper напрямую. Тем не менее, это выходит за рамки этого вопроса.

Голый металлический сюжет по-прежнему очень новенький в юю (он был таким же Доказательством концепции, как и все в 11.10), и все еще развивается. Я бы порекомендовал следовать его прогрессии в списке рассылки juju и в #juju на Freenode, так как он, вероятно, станет более плавным, так как примеры использования станут более понятными.

1
задан 13 April 2017 в 15:23

4 ответа

Основываясь на ответе @ 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

setup automount

Создайте /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.

9
ответ дан 25 May 2018 в 14:18
  • 1
    +1 Спасибо за ответ. У меня гораздо более сложная настройка теперь с несколькими SSD и символическими ссылками на общий диск, поэтому я не смогу проверить это. Я надеюсь, что шифрование нескольких жестких дисков будет таким же простым, как шифрование / домашнее когда-нибудь. – Tom Brossman 20 July 2012 в 01:05
  • 2
    См. Также ecryptfs-mount-private, который более похож. Например. он может автоматически использовать ключ из брелка пользователя. – mc0e 5 February 2016 в 16:23
  • 3
    Этот ответ касается установки частного каталога eCryptfs. Вопрос состоял в том, чтобы установить раздел LUKS, созданный с помощью утилиты Disks . – Victor 24 June 2017 в 00:05

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

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

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

следующий ответ

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

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

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

Это сценарий оболочки, который проверяет, если каталог уже установлен, если это не так, это будет вызовите сценарий монтирования, используя 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

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

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

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

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

/ home / johnf / scripts / 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) используйте апплет запуска приложений для создания новой программы запуска, которая вызывает /home/johnf/scripts/automount_ecryptfs.

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

/home/johnf/scripts/automount_ecryptfs

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

9
ответ дан 25 May 2018 в 14:18
  • 1
    Ничего себе, отличный ответ! Приобретен и принят. Не могу проверить его, но это выглядит очень полным. – Tom Brossman 21 March 2012 в 14:26
  • 2
    Автор mount.ecryptfs_private теперь рекомендует использовать ecryptfs-mount-private, также он, который является сценарием оболочки для mount.ecryptfs_private. thesimplecomputer.info/… может быть полезно прочитать для относительных достоинств ecryptfs и LUKS. – mc0e 5 February 2016 в 16:17

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

Добавить в «Запуск приложений»:

sh ~/scripts/mount_storage.sh

Добавить в /etc/sudoers: [ ! d2]

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

1
ответ дан 25 May 2018 в 14:18

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

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

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

-1
ответ дан 25 May 2018 в 14:18
  • 1
    Я использовал «Надежно» субъективно, я мог удалить его из вопроса. Я просто хочу, чтобы зашифрованный диск, полный фотографий, был смонтирован при входе в систему, точно так же, как / home. Я знаю, что это теоретически возможно, так как у меня есть третий (также зашифрованный) диск в качестве места назначения для Déjà Dup. Этот диск монтируется только тогда, когда запускается утилита резервного копирования. Полностью автоматический, у меня есть ключ, поэтому я не вхожу в него каждый раз. Мне удобно, когда все мои ключи обрабатываются автоматически после ввода пароля на экране входа в систему. Любая идея, как это сделать? Благодарю. – Tom Brossman 19 February 2012 в 17:41
  • 2
    Автоматически в этом контексте означает, что он должен быть установлен после ввода пароля для входа. Пароль входа в систему может быть ключом или, чаще всего, ключом к ключу, к вашему зашифрованному разделу. Это разумно безопасно (дает хороший пароль для входа в систему). – Javier Rivera 21 March 2012 в 20:08
  • 3
    Он не будет автоматически установлен на другом компьютере, и именно поэтому большинство из нас шифрует некоторые диски. В моем случае это диск, который я использую для создания резервных копий. Я работаю в общем пространстве и знаю, что один из вас, у которого есть много знаний, сможет обойти все, что я делаю, с физическим доступом к моему диску / компьютеру: я просто хочу уменьшить доступность моих файлов, чтобы кто-либо еще мог не делайте этого. – Ramon Suarez 28 March 2013 в 21:00
  • 4
    Сделав это автоматическим процессом, возможно ли, что кто-то, кто крадет ваш компьютер, может получить доступ к ключу вашего зашифрованного дополнительного HD? (а затем, конечно, установить и получить доступ к этому HD) – miguelfg 28 April 2017 в 13:03
  • 5
    Легкий, очевидный сценарий: я подключаю USB-накопитель к серверу в офисе для резервного копирования данных. Я забираю USB-накопитель домой, чтобы обеспечить резервное копирование вне сайта в случае, если что-то плохое происходит на сервере. Кто-то врывается в мою машину и берет диск USB, пока я нахожусь в магазине по дороге домой. Теперь им нужно: 1) знать, где находится сервер, и 2) прорваться в офис для дешифрования диска. Эта часть намного сложнее, чем «просто подключить ее к компьютеру дома». – Ernie 14 July 2017 в 00:05

Другие вопросы по тегам:

Похожие вопросы: