Linux создать шифрованный диск

Установка системы с шифрованием всего диска

Содержание

Описание руководства

Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестком диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1) , а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим 2) 3) .

Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера 4) , поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.

Установка

Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с alternate в названии.

Загрузите систему с alternate — диска, выберите язык и приступите к установке:

Выберите ручной режим разметки диска:

Если у вас новый диск или, если вы хотите очистить на нем таблицу разделов, выберите строку с названием диска:

и создайте на нем новую таблицу разделов:

После этого, создайте на диске раздел /boot, выбрав указателем свободное место на диске:

Укажите небольшой объем, от 300 МБ до 1ГБ, т.к. для /boot этого будет вполне достаточно:

В списке «использовать как» укажите /boot, не забудьте сделать раздел загрузочным:

Далее, не размечая оставшееся место, переходим в пункт «Настроить шифрование для томов»:

Соглашаемся записать изменения:

Выбираем «Create encrypted volumes»:

Далее выбираем (при помощи кнопки Space ) свободное место на диске и жмём «Продолжить»:

Если у вас нет паранойи, можете просто нажать «Настройка раздела закончена», если есть — установите параметр «Стереть данные» в «Да»:

Снова соглашаемся на запись изменений на диск:

Далее выбираем «Finish»:

Далее установщик попросит вас ввести парольную фразу, которой он «закроет» диск:

После этого подтвердите пароль:

Если вы используете слишком простой пароль 5) , установщик попросит подтверждения:

После создания шифрованного тома, нужно настроить LVM:

Снова соглашаемся на запись изменений:

Создаем группу томов:

И указываем в качестве устройств для группы только что созданный шифрованный диск:

После этого создаем логические тома:

Пример для swap:

Аналогично создаем диски для root и home, выделяя им желаемый объем. Если у вас большой диск — можете оставить некоторый его объем свободным, позднее вы сможете добавить его к любому логическому тому 6) .

После этого выбирайте «Закончить»:

Теперь нужно назначить файловые системы и точки монтирования для созданных дисков:

Выбирайте разделы, находящиеся в блоках, начинающихся на LVM, они названы, согласно именам, данным им вами при создании логических томов, например, в данном случае, это LV home, LV swap и LV root. Стоит заметить, что раздел root 7) не нужно делать загрузочным, т.к. роль загрузочного у нас выполняет отдельный раздел /boot.

По окончании, выбирайте «Закончить разметку и записать изменения на диск»:

И снова соглашаемся с записью изменений на диск (заодно можно ещё раз проверить все ли вы правильно разметили):

Далее продолжайте установку системы как обычно. Когда установщик спросит вас, зашифровать ли домашний каталог — откажитесь, ведь ваш диск уже зашифрован.

После завершения установки и перезагрузки система предложит вам ввести пароль для разблокировки шифрованного диска. Введите пароль и нажмите Enter .

Изменение пароля

Работа с live-cd

Загрузитесь с live-cd 8) , выберите «Попробовать Ubuntu» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните:

После успешной установки, переходите к этапу «Смена пароля».

Смена пароля

Описание

При установке диск шифруется при помощи связки LUKS и dm-crypt. LUKS использует в качестве идентификаторов доступа key slots, которые в данном случае выступают в виде пароля, однако могут быть и ключом. Всего доступно 8 слотов. По умолчанию (при создании шифрованного диска) используется слот 0.

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

Читайте также:  Реаниматоры windows для usb

Для операций со слотами — сначала нужно определиться с диском, на котором установлено шифрование. Выполните в терминале команду

Вывод будет примерно следующим:

Она даст вам список разделов на диске. Нужно найти тот раздел, на котором присутствует зашифрованный раздел. В данном случае это sda5.

Теперь можно просмотреть состояние слотов на этом разделе:

Видим, что слот 0 содержит пароль, а слоты 1-7 имеют статус DISABLED.

Устанавливаем новый ключ

Ввиду того, что необходим как минимум один активный слот, сменить пароль в обычном понимании на таком диске невозможно. Однако, можно создать пароль в другом слоте, а потом удалить первый слот. Чтобы создать новый ключ, выполните:

Если теперь посмотреть слоты, то станет видно, что статус ENABLED стоит теперь уже у двух слотов:

Теперь можно удалить старый пароль, находящийся в слоте 0:

И видим, что слот 0 стал DISABLED.

Заключение

Вот и все. Информация на диске надёжно защищена. Однако, не стоит забывать, что существует большое количество различных угроз, и ваши данные все еще могут быть доступны злоумышленнику, в то время, пока компьютер включён, все диски «открыты». И конечно же, в случае кражи, шифрование спасет ваши данные от злоумышленника, но не вернет их вам, так что не забывайте делать резервные копии.

Ссылки

Статья написана по мотивам вот этой вот статьи.

Источник

Создание зашифрованного LUKS-раздела на Linux

Операционные системы семейства Linux предоставляют функцию шифрования жестких дисков через специальные утилиты. Рассмотрим одну из них под названием LUKS. В качестве примера используется Ubuntu Server 18.04.

Предварительная подготовка

Утилиту LUKS используют в качестве стандарта для защиты дисков в Linux-системах. Ее преимущества:

  • Она бесплатна.
  • Совместима с 99% операционных систем Linux/Unix.
  • Позволяет сбросить пароль или кодовую фразу в случае утери либо компрометации.

Прежде чем шифровать диск, необходимо определиться с выбором. Запустим в терминале следующую утилиту:

Она отобразит информацию о свободных томах, а также о разделах, которые доступны для защиты:

Скриншот №1. Перечень свободных логических дисков.

Выберем один из списка и перейдем к редактированию. В качестве примера будем использовать раздел /dev/sdb.

Запустим программу parted, указав выбранный том:

sudo parted /dev/sdb

Администратору будет доступен функционал утилиты через терминал.

Важно! Чтобы получить подробную информацию об утилите parted, введите ключ help.

Получив доступ к parted, разметим выбранный раздел соответствующим образом. Отредактируем под GPT:

Программа отобразит предупреждение о том, что вся информация будет удалена во время выполнения операции. Вводим «Yes»:

Скриншот №2. Удаление данных с тома.

После окончания операции создадим новый том как основной:

mkpart primary 1 -1

Его метка будет отображаться как «1». По окончании выходим из программы через команду quit.

Генерация ключа

Создадим ключ шифрования, используя команду DD:

sudo dd if=/dev/urandom of=/root/secret.key bs=1024 count=2

, где /root/secret.key — имя генерируемого ключа. Пользователь указывает его самостоятельно.

Теперь отредактируем права доступа к файлу:

sudo chmod 0400 /root/secret.key

Присвоим ему функцию на чтение «без редактирования».

Шифрование раздела

Следующий этап — шифрование данных. По умолчанию LUKS интегрирована в большинство дистрибутивов. Если утилита недоступна, установим её, используя стандартные средства установки. Для примера с Ubuntu Server:

sudo apt-get install cryptsetup

После установки создадим шифрованный том с использованием сгенерированного ключа:

cryptsetup luksFormat /dev/sdb1 /root/secret.key

Программа выдаст предупреждающее сообщение о том, что информация будет удалена после форматирования. Вводим «Yes»:

Скриншот №3. Стирание диска.

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

cryptsetup luksAddKey /dev/sdb1 /root/secret.key —key-file=/root/secret.key

После выполнения операции перейдем к конфигурированию. Сначала создадим промежуточный вариант подключения к шифрованному объекту. Для этого воспользуемся функцией LuksOpen:

cryptsetup luksOpen /dev/sdb1 secret —key-file=/root/secret.key

По окончании устройство будет доступно по пути /dev/mapper/secret.

Следующим шагом указываем размер тома, который требуется зашифровать:

cryptsetup resize secret

В нашем примере имя тома — secret. Если для опции resize не указываются дополнительные флаги, она занимает весь раздел. Смонтируем точку доступа для файловой структуры ext4 с именем тома secret:

Для проверки правильности выполненных действий вводим:

cryptsetup -v status secret

Монтирование тома

Раздел зашифрован — смонтируем его для операционной системы. Указываем точку входа для тома secret, а потом задаем права на доступ:

sudo mkdir -p /secret
sudo chmod 755 /secret

Через команду mount подключим раздел к ОС:

mount /dev/mapper/secret /secret

После этого проверим выполнение операции:

Чтобы постоянно не подключить LUKS-раздел к операционной системе, активируем автомонтирование тома.

Важно! Использование автоматического режима монтирования также автоматически расшифровывает том в момент его подключения к ОС.

Определим идентификатор защищенного диска:

ls -l /dev/disk/by-uuid

Он обозначается термином UUID. Поскольку наименование сложное для запоминания, выгрузим его имя в отдельный файл:

Читайте также:  Планировка выключения компьютера windows 10

Важно! После знака «=» идет идентификатор, который используется в примере.

Создадим ссылку на сгенерированный ранее ключ secret.key:

sudo echo «secret UUID=$ /root/secret.key luks» >> /etc/crypttab

Последний шаг — добавляем соответствующие строки в файл монтирования разделов fstab:

sudo echo «/dev/mapper/secret /secret auto» >> /etc/fstab

Указав в терминале команду sudo mount –a, зашифрованный раздел автоматически будет подключаться при старте операционной системы.

Источник

Шифрование дисков в Linux

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

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

Методы шифрования данных в Linux

Шифрование на уровне файловой системы:

  • 1. eCryptfs — это криптографическая файловая система Linux. Она хранит криптографические метаданные для каждого файла в отдельном файле, таким образом, что файлы можно копировать между компьютерами. Файл будет успешно расшифрован, если у вас есть ключ. Это решение широко используется для реализации зашифрованной домашней директории, например, в Ubuntu. Также ChromeOS прозрачно встраивает эти алгоритмы при использовании сетевых устройств для хранения данных (NAS).
  • 2. EncFS — обеспечивает шифрованную файловую систему в пространстве пользователя. Она работает без каких-либо дополнительных привилегий и использует библиотеку fuse и модуль ядра для обеспечения интерфейса файловой системы. EncFS — это свободное программное обеспечение и она распространяется под лицензией GPL. В наши дни эта файловая система уже устарела потому что в ней было найдено несколько уязвимостей. Вместо неё популярность набирают другие утилиты.

Блочное шифрование на уровне устройства:

  • Loop-AES — быстрая и прозрачная файловая система, а также пакет для шифрования раздела подкачки в Linux. Исходный код программы давно не изменялся. Она работает с ядрами 4.x, 3.x, 2.2, 2.0.
  • TrueCrypt — это бесплатное решение с открытым исходным кодом для шифрования диска в операционных системах Windows 7 / Vista /XP / Mac OS X, а также в Linux.
  • dm-crypt+LUKS — dm-crypt — это прозрачная подсистема для шифрования диска в ядре 2.6 и более поздних версиях. Поддерживается шифрование целых дисков, съемных носителей, разделов, томов RAID, программного обеспечения, логических томов и файлов.

В этой инструкции мы рассмотрим шифрование жесткого диска на Linux с помощью алгоритма Linux Unified Key Setup-on-disk-format (LUKS).

Как работает LUKS?

LUKS (Linux Unified Key Setup — протокол шифрования блочного устройства. Но мы забежали далеко наперед, чтобы понять как это работает, нужно скачала разобраться с другими технологиями, используемыми в этом способе.

Чтобы выполнить шифрование диска linux используется модуль ядра dm-crypt. Этот модуль позволяет создавать в каталоге /dev/mapper виртуальное блочное устройство с прозрачным для файловой системы и пользователя шифрованием. Фактически все данные лежат на зашифрованном физическом разделе. Если пользователь пытается записать данные на виртуальное устройство, они на лету шифруются и записываются на диск, при чтении с виртуального устройства, выполняется обратная операция — данные расшифровываются с физического диска и передаются в открытом виде через виртуальный диск пользователю. Обычно для шифрования используется метод AES, потому что под него оптимизированы большинство современных процессоров. Важно заметить, что вы можете шифровать не только разделы и диски, но и обычные файлы, создав в них файловую систему и подключив как loop устройство.

Алгоритм LUKS определяют какие действия и в каком порядке будут выполняться во время работы с шифрованными носителями. Для работы с LUKS и модулем dm-crypt используется утилита Cryptsetup. Ее мы и рассмотрим далее.

Утилита Cryptsetup

Утилита Cryptsetup позволят облегчить шифрование раздела Linux с помощью модуля dm-crypt. Давайте сначала ее установим.

В Debian или Ubuntu, для этого используйте такую команду:

suduo apt install cryptsetup

В дистрибутивах, основанных на Red Hat это будет выглядеть так:

sudo yum install cryptsetup-luks

Синтаксис запуска команды такой:

$ cryptsetup опции операция параметры_операции

Рассмотрим основные операции, которые можно сделать с помощью этой утилиты:

  • luksFormat — создать зашифрованный раздел luks linux;
  • luksOpen — подключить виртуальное устройство (нужен ключ);
  • luksClose — закрыть виртуальное устройство luks linux;
  • luksAddKey — добавить ключ шифрования;
  • luksRemoveKey — удалить ключ шифрования;
  • luksUUID — показать UUID раздела;
  • luksDump — создать резервную копию заголовков LUKS.
Читайте также:  Как удалить пустую папку linux

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

Шифрование диска Linux

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

1. Создание раздела

В этом примере мы будем шифровать раздел /dev/sda6, но вместо него вы можете использовать целый жесткий диск или просто один файл, заполненный нулями. Создаем шифрованный раздел:

sudo cryptsetup -y -v luksFormat /dev/sdb1

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

Выполните такую команду чтобы открыть только что созданный раздел с помощью модуля dm-crypt в /dev/mapper, для этого понадобится ввести пароль, с которым выполнялось шифрование luks linux:

sudo cryptsetup luksOpen /dev/sdb1 backup2

Теперь вы можете увидеть новое виртуальное устройство /dev/mapper/backup2 созданное с помощью команды luksFormat:

ls -l /dev/mapper/backup2

Чтобы посмотреть состояние устройства выполните:

sudo cryptsetup -v status backup2

А с помощью следующей команды вы можете сделать резервную копию заголовков LUKS на всякий случай:

cryptsetup luksDump /dev/sdb1

Ну, можно сказать, раздел готов. И что самое интересное, теперь вы можете им пользоваться так же, как и любым другим обычным разделом в каталоге /dev. Его можно форматировать с помощью стандартных утилит, записывать на него данные, изменять или проверять файловую систему и т д. Нельзя только изменить размер. То есть все полностью прозрачно, как и сказано в начале статьи.

2. Форматирование раздела

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

dd if=/dev/zero of=/dev/mapper/backup2

Работа утилиты может занять несколько часов, чтобы иметь возможность наблюдать за процессом, используйте pv:

pv -tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M

Когда процесс завершится мы можем отформатировать устройство в любую файловую систему. Например, отформатируем в ext4:

sudo mkfs.ext4 /dev/mapper/backup2

Как видите, все команды cryptsetup применяются к физическому разделу, в то время как остальные команды для работы с дисками — к нашему виртуальному.

3. Монтирование раздела

Теперь можно примонтировать только, что созданную файловую систему:

sudo mount /dev/mapper/backup2 /backup2

4. Отключение раздела

Все работает, но как отключить устройство и защитить данные. Для этого выполните:

sudo umount /backup2

sudo cryptsetup luksClose backup2

5. Повторное монтирование

Чтобы снова получить возможность работать с зашифрованным разделом с помощью LUKS linux необходимо опять его открыть:

sudo cryptsetup luksOpen /dev/sdb1 backup2

Теперь можем монтировать:

sudo mount /dev/mapper/backup2 /backup2

6. Проверить файловую систему luks

Поскольку после открытия раздела с помощью luks linux, этот раздел воспринимается системой, как и все другие, вы можете просто использовать утилиту fsck:

sudo umount /backup2

sudo fsck -vy /dev/mapper/backup2

sudo mount /dev/mapper/backup2 /backu2

7. Изменить парольную фразу luks

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

sudo cryptsetup luksDump /dev/sdb1

Затем создадим новый ключ:

sudo cryptsetup luksAddKey /dev/sdb1

И удалим старый:

sudo cryptsetup luksRemoveKey /dev/sdb1

Сейчас вам придется ввести еще старый пароль.

Выводы

Вот и все теперь вы знаете как зашифровать раздел в Linux, а также понимаете как все это работает. Кроме того, шифрование дисков в Linux по алгоритму LUKS открывает широкие возможности для полного шифрования устанавливаемой системы.

Плюсы:

  • LUKS шифрует все блочное устройство, и поэтому очень хорошо подходит для защиты содержимого переносных устройств, таких как мобильные телефоны, съемные носители или жесткие диски ноутбуков.
  • Вы можете использовать на серверах NAS для защиты резервных копий
  • Процессоры Intel и AMD с AES-NI (Advanced Encryption Standard) имеют набор команд, которые могут ускорить процесс шифрования на основе dm-crypt в ядре Linux начиная с 2.6.32.
  • Работает в том числе и с разделом подкачки, так что ваш ноутбук может использовать функцию спящего режима, или гибернации полностью безопасно.

Минусы:

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

Источник

Оцените статью