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

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

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

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

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

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

Этот способ шифрования предполагает наличие какой-то системы-прослойки, которая расположена поверх основной файловой системы и которая защищает файлы пользователя без вмешательства в нижележащие разделы. Рассмотрим, какие же утилиты шифрования этого типа нам предлагает ОС Ubuntu:

  • eCryptfs – это многоуровневая система шифрования Linux. В Ubuntu именно данный способ используется для шифрования домашней папки пользователя. Файл, зашифрованный этим способом, будет расшифрован в том случае, если у Вас есть ключ.
  • EncFS – этот метод позволяет установить зашифрованную файловую систему. Используется библиотека FUSE и модуль ядра Linux. Эта система опять же создается поверх существующей файловой системы, как и в первом случае, она не является шифрованным блочным устройством.

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

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

  • Loop-AES – это скоростная и прозрачная файловая система, также с помощью этого метода можно зашифровать и раздел подкачки в Linux. Advanced Encryption Standard (AES) — симметричный алгоритм блочного шифрования.
  • TrueCrypt – это свободное программное обеспечение с открытым исходным кодом для шифрования диска, программа функционирует, как под ОС Windows, так и под Linux. Но, как нам известно, разработчики прекратили поддерживать TrueCrypt, поэтому шифрование с помощью данной программы сейчас применяется нечасто.
  • dm-crypt/LUKS – поддерживает шифрование целых дисков, съемных носителей, разделов, томов RAID, логических томов и файлов. dm-crypt – позволяет создавать криптоконтейнер с помощью device-mapper и CryptoAPI ядра. LUKS (Linux Unified Key Setup) — протокол шифрования блочного устройства. Используя пакет dm-crypt, в папке /dev/mapper мы можем создать виртуальное блочное устройство с прозрачным шифрованием, как для файловой системы, так и для пользователя. Причем вся информация расположена на зашифрованном физическом разделе. Когда мы записываем данные на виртуальное устройство, они моментально шифруются и происходит их запись на диск, при чтении с виртуального устройства выполняется обратная операция.

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

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

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

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

На вкладке Settings изменим порядок загрузки Boot Order на "(1) CDROM (2) Hard Disk", чтобы сервер в первую очередь пытался загрузиться с подключенного ISO-образа:

Выбираем нужный нам образ на вкладке CDRom (в нашем случае — Ubuntu 16.04 amd64), нажимаем Mount.

Заходим во вкладку Network, нажимаем на ссылку с IP-адресом вашего сервера, нам откроется окно с параметрами нашей сети, эта информация крайне важна для дальнейшей установки:

Затем нажимаем на кнопку Reboot и ждем, когда виртуальный сервер перезагрузится.

Теперь необходимо подключиться к серверу по VNC и приступить к установке дистрибутива Ubuntu Server 16.04. Нажмите на кнопку VNC на главном экране панели управления, затем HTML5 VNC Client SSL. В новом окне браузера откроется VNC-консоль. Вы должны увидеть начальный экран установочного диска Ubuntu:

Теперь последовательно выполняем все шаги установочного процесса — отмечаем свое местоположение, раскладку клавиатуры и т.д. Обязательно необходимо указать настройки Вашей сети, полученные в панели управления сервером — ввести IP-адрес, шлюз, DNS-серверы и т.д.:

Далее, после указания имени пользователя и пароля для нового пользователя системы, программа установки предложит Вам зашифровать домашний каталог. Система будет монтировать его каждый раз при входе в систему и размонтировать при выходе, это будет совершенно незаметно для пользователя, но в тоже время данные будут зашифрованы. При таком варианте установки, swap-раздел также будет зашифрован автоматически. Обязательно соглашаемся, выбираем ответ Yes:

Далее продолжаем инсталляцию в штатном режиме, производим разметку дисков и завершаем установку.

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

  • на вкладке Settings опять поменяем порядок загрузки Boot Order, вернув значение "(1) Hard Disk (2) CDROM";
  • на вкладке CDRom выполним команду Unmount;
  • перезагрузим сервер.

При первом подключении к серверу система потребует ввести логин и пароль, которые мы задали при установке.

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

Этот ключ необходимо сохранить в надежном месте, он нужен для восстановления данных вручную, если "что-то пойдет не так".

Шифрование домашнего каталога после установки Ubuntu

Рассмотрим случай, когда операционная система уже установлена, но возникла необходимость зашифровать свой домашний каталог. Неужели в этом случае, нужно переустанавливать систему заново? К счатью, в этом нет необходимости. В Ubuntu есть возможность зашифровать домашний каталог пользователя методом eCryptfs на уже установленной системе, всего лишь при помощи нескольких команд в консоли. Для начала обновим индекс репозиториев нашей системы:

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

Теперь установим утилиты для шифрования:

Под своей учетной записью Вы не сможете зашифровать свою же домашнюю директорию, поэтому необходимо создать нового пользователя с возможностью выполнения команд sudo. Вводим в консоли команду, чтобы создать новую учетную запись пользователя “exampleuser”:

Указываем информацию о новом пользователе и задаем ему пароль. Чтобы новый пользователь мог воспользоваться sudo , внесем его в одноименную группу:

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

где username — имя пользователя, домашний каталог которого вы хотите зашифровать.

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

Для того, чтобы зашифровать swap-раздел, необходимо выполнить следующую команду:

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

На этом все, шифрование домашней директории завершено.

Шифрование всего жесткого диска

В предыдущих разделах мы рассмотрели методы шифрования домашней папки пользователя в Ubuntu с использованием утилиты ecryptfs и применили шифрование на уровне файловой системы. Этот метод, конечно же, имеет свои преимущества, но иногда этого бывает недостаточно. Дело в том, что корневой раздел все-таки не шифруется, и квалифицированный злоумышленник может получить список файлов из домашней папки пользователя, даже учитывая, что сам домашний каталог зашифрован. Для более надежной защиты можно применить методы блочного шифрования, т.е. зашифровать весь диск на более низком уровне. Далее мы покажем, как создать один большой зашифрованный раздел, поверх которого мы смонтируем обычные разделы /home, /swap (они образуют виртуальную группу LVM), оставив только один маленький незашифрованный раздел /boot. Пользователь должен будет вводить пароль при каждой загрузке сервера. Начиная с версии Ubuntu 12.10 данная опция присутсвует в стандартном инсталляторе операционной системы.

И так, вновь вернемся к пошаговой инсталляции операционной системы с установочного образа, как было описано в первом разделе. Домашний каталог в этом случае можно не шифровать, ведь у Вас будет зашифрован уже весь диск. В момент, когда инсталлятор предложит выбрать вариант разметки диска, необходимо выбрать опцию «Авто – использовать весь диск с шифрованным LVM» (“Guided – use entire disk and set up encrypted LVM”):

Далее выберем диск для разметки и выполним разметку. Затем идет очень важный этап, на котором нужно выбрать ключевую фразу для шифрования. Рекомендуем выбирать фразу из 20 знаков и более c использыванием цифр, букв и специальных символов.

Далее система сообщает, какие разделы будут отформатированы, соглашаемся с внесением изменений и заканчиваем установку как обычно. На этом шифрование всего диска завершено.

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

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

TrueCrypt больше не поддерживается, но dm-crypt и LUKS — отличный вариант с открытым исходным кодом, позволяющий шифровать и использовать шифрованные данные.

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

В мае этого года остановилась разработка приложения TrueCrypt, известного инструментального средства с открытым исходным кодом, предназначенного для шифрования дисков. Как многие из вас знают, это был один из весьма надежных инструментов, предназначенных для шифрования дисков. Прискорбно видеть исчезновение инструмента такого калибра, но величие мира с открытым исходным кодом таково, что есть несколько других инструментов с открытым исходным кодом, которые помогут вам достичь безопасности с помощью шифрования дисков, у которых, к тому же, есть много конфигурационных настроек. Мы рассмотрим два из них — dm-crypt и LUKS — в качестве альтернативы TrueCrypt для платформы Linux. Давайте начнем с краткого рассмотрения dm-crypt, а затем — LUKS.

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

Ресурсы

Шаг 01: Рассматриваем Dm-crypt

Название приложения dm-crypt является сокращением от device mapper- crypt (шифрование при отображении устройства). Как следует из названия, оно базируется на отображении устройств — фреймворке ядра Linux, предназначенном для отображения блочных устройств на виртуальные блочные устройства более высокого уровня. При отображении устройств можно пользоваться несколькими функциями ядра, такими как dm-cache (создает гибридные тома), dm-verity (предназначена для проверки целостности блоков, является частью Chrome OS) и также очень популярным Docker. Для криптографических целей в dm-crypt применяется фреймворк ядра Linux Crypto API.

Итак, если подвести итог, то приложение dm-crypt является подсистемой шифрования на уровне ядра, предлагающее прозрачное шифрование диска: это означает, что файлы доступными сразу после монтирования диска — для конечного пользователя нет видимой задержки. Чтобы шифровать с использованием dm-crypt вы можете просто указать один из симметричных шифров, режим шифрования, ключ (любого допустимого размера), режим генерации IV, а затем в /dev создать новое блочное устройство. Теперь при любой записи на это устройство будет происходить шифрование, а при чтении — расшифровка. Вы можете как и обычно смонтировать на этом устройстве файловую систему, либо можете использовать устройство dm-crypt для создания других конструкций, таких как RAID или том LVM. Таблица соответствия для dm-crypt задается следующим образом:

Здесь значение start-sector (начальный сектор), как правило, равно значению 0, значение size (размер) равно размеру устройства, указываемую в секторах, а target name является именем, которое вы хотите присвоить зашифрованному устройству. Таблица целевого отображения target-mapping table состоит из следующих разделов:

Шаг 02: Рассматриваем LUKS

Как мы уже видели на предыдущем шаге, приложение dm-crypt может самостоятельно шифровать / расшифровывать данные. Но у него есть несколько недостатков — если приложением dm-crypt пользоваться непосредственно, то оно не будет создавать на диске метаданные, и это может стать серьезной проблемой в случае, если вы хотите обеспечить совместимость между различными дистрибутивами Linux. Кроме того, приложение dm-crypt не поддерживает использование несколько ключей, тогда как в реальных ситуация очень важно пользоваться несколькими ключами.

Именно по этим причинам на свет появилась методика LUKS (Linux Unified Key Setup — Унифицированная настройка ключей в Linux). LUKS является в Linux стандартом шифрования жестких дисков и стандартизация позволяет обеспечить совместимость различных дистрибутивов. Также поддерживается использование нескольких ключей и парольных фраз. В рамках такой стандартизации к зашифрованным данным добавляется заголовок LUKS и в этом заголовке присутствует вся информация, необходимая для настройки. Когда есть такой заголовок с данными, то пользователи могут легко перейти на любой другой дистрибутив. Сейчас в проекте dm-crypt рекомендуется использовать LUKS в качестве предпочтительного способа настройки шифрования диска. Давайте рассмотрим, как установить утилиту cryptsetup и как ее использовать для создания томов на основе LUKS.

Шаг 03: Установка

Функциональные возможности уровня ядра, которые применяются в dm-crypt, уже есть во всех дистрибутивах Linux; нам нужно к ним только интерфейс. Мы будем пользоваться утилитой cryptsetup, с помощью которой можно создавать тома с использованием dm-crypt, стандарта LUKS, а также старого и доброго приложения TrueCrypt. Для того, чтобы установить cryptsetup на дистрибутивах Debian / Ubuntu, вы можете воспользоваться следующими командами:

Первая команда синхронизирует индексные файлы ракета с содержимым их репозиториев: она получает информацию о последних версиях всех доступных пакетов. Вторая команда загрузит и установит на ваш компьютер пакет cryptsetup. Если вы используете дистрибутив RHEL/Fedora/CentOS, то для установки утилиты cryptsetup вы можете воспользоваться командой yum.

Шаг 04: Создание целевого файла

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

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

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

В результате в каталоге /home/nitish будет создан файл с именем basefile, имеющий размер в 128 МБ. Однако, учтите, что на выполнение этой команды может потребоваться достаточно большое время; в системе, которой пользовался наш эксперт, на это потребовался час времени.

Шаг 05: Создаем dm-crypt LUKS

После того, как вы создали целевой файл, в этом файле необходимо создать раздел LUKS. Этот раздел служит в качестве основного слоя, на базе которого строится все шифрование данных. Кроме этого, в заголовке этого раздела (LUKS header) содержится вся информация, требуемая для совместимости с другими устройствами. Чтобы создать раздел LUKS применяется команда cryptsetup:

После того, как вы согласитесь с тем, что данные, находящиеся внутри файла basefile, будут безвозвратно удалены, введете парольную фразу, а затем — ее подтверждение, будет создан раздел LUKS. Вы можете проверить это с помощью следующей команды file:

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

Шаг 06: Создаем и монтируем файловую систему

Контейнер LUKS, который мы создали на предыдущем шаге, теперь доступен в виде файла. В нашем примере, это /home/nitish/basefile. Утилита cryptsetup позволяет открывать контейнер LUKS как независимое устройство. Чтобы сделать это, сначала отобразите файл контейнера на имя устройства, а затем смонтируйте устройство. Команда, осуществляющая отображение, выглядит следующим образом:

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

Шаг 07: Файловая система — продолжение

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

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

Теперь выполняем монтирование:

Для перекрестной проверки воспользуйтесь командой df –h — вы в конце списка смонтированные устройств увидите устройство "/dev/mapper/volume1". Видно, что заголовок LUKS уже занимает в устройстве уже некоторое место.

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

Шаг 08: Использование шифруемого диска

Мы выполнили несколько шагов для того, чтобы достичь этого результата, и если вам не очень понятно, как все это работает, вы, скорее всего, запутаетесь в том, что нужно сделать только один раз (требуется для установки), и в том, что нужно делать регулярно при использовании шифрования. Давайте рассмотрим следующий сценарий: вы успешно выполнили все описанные выше шаги, а затем выключили компьютер. На следующий день, когда вы запускаете ваш компьютер, вы не в состоянии найти смонтированное устройство — куда оно делось? Чтобы со всем этим разобраться, нужно иметь в виду, что после запуска системы нужно смонтировать контейнер LUKS, а перед остановкой компьютера — размонтировать.

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

Откройте файл LUKS (т.е. /home/nitish/basefile) и введите пароль. Команда выглядит следующим образом:

После того, как файл будет открыт, смонтируйте его (если он не монтируется автоматически):

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

После того, как все сделаете, размонтируйте устройство следующим образом:

После успешного размонтирования, закройте файл LUKS:

Шаг 09: Резервное копирование

Большинство потерь данных, хранящихся в контейнере LUKS, связаны с повреждением заголовка LUKS или слотов с ключами. Кроме того, что даже из-за случайной перезаписи в память заголовка могут быть повреждены заголовки LUKS, в реальных условиях также возможен полный выход жесткого диска из строя. Лучший способ защититься от таких проблем — это резервное копирование. Давайте посмотрим, какие доступны варианты резервного копирования.

Чтобы создать резервную копию файла заголовка LUKS, укажите в команде параметр luksHeaderBackup:

Или, если вы хотите восстановить файл из резервной копии, то укажите в команде параметр luksHeaderRestore:

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

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

Шаг 10: Различные настройки

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

Чтобы сделать дамп заголовка LUKS, в команде cryptsetup есть параметр luksDump. Он позволит вам сделать снимок файла заголовка LUKS того устройства, которое вы используете. Пример команды выглядит следующим образом:

В начале данной статьи мы упоминали о том, что LUKS поддерживает работу с несколькими ключами. Давайте сейчас это увидим в действии, добавив новый слот ключа (прим.пер.: слот ключа — место под ключ):

Эта команда добавляет ключ к слоту ключа с номером 1, но только после того, как вы введете текущий пароль (ключ, присутствующий в слоте ключа 0). Всего есть восемь слотов ключей, и вы можете расшифровывать данные с использованием любого ключа. Если вы после того, как добавили второй ключ, сделаете дамп заголовка, вы увидите, что второй слот ключа занят.

Вы можете удалить слоты с ключами следующим образом:

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

необходимо зарегистрироваться,
для того что бы оставить комментарий

Безопасность и конфиденциальность очень важны, для тех, кто хранит важные данные на компьютере. Ваш домашний компьютер находится в безопасности, но с ноутбуком или другими переносными устройствами ситуация очень сильно меняется. Если вы носите свой ноутбук с собой почти везде и к нему могут иметь доступ посторонние лица, возникает вопрос — как защитить свои данные от чужого вмешательства. Именно от физических атак, где каждый желающий может попытаться получить данные из 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, для этого используйте такую команду:

apt-get install cryptsetup

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

yum install cryptsetup-luks

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

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

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

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

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

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

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

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

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

cryptsetup -y -v luksFormat /dev/sda6

WARNING!
========
This will overwrite data on /dev/sda6 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

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

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

cryptsetup luksOpen /dev/sda6 backup2

Enter passphrase for /dev/sda6

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

ls -l /dev/mapper/backup2

lrwxrwxrwx 1 root root 7 Oct 19 19:37 /dev/mapper/backup2 -> ../dm-0

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

cryptsetup -v status backup2

/dev/mapper/backup2 is active.
type: LUKS1
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/sda6
offset: 4096 sectors
size: 419426304 sectors
mode: read/write
Command successful.

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

cryptsetup luksDump /dev/sda6

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

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

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

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

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

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

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

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

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

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

$ mount /dev/mapper/backup2 /backup2

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

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

cryptsetup luksClose backup2

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

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

cryptsetup luksOpen /dev/sda6 backup2

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

mount /dev/mapper/backup2 /backup2

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

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

sudo umount /backup2

$ fsck -vy /dev/mapper/backup2

$ mount /dev/mapper/backup2 /backu2

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

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

cryptsetup luksDump /dev/sda6

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

cryptsetup luksAddKey /dev/sda6

Enter any passphrase:

Enter new passphrase for key slot:
Verify passphrase:

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

cryptsetup luksRemoveKey /dev/sda6

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

Выводы

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

Плюсы:

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

Минусы:

  • LUKS поддерживает шифрование только до восьми паролей. Это значит что только восемь пользователей с разными паролями могут иметь доступ к устройству.
  • LUKS не рекомендуется для приложений, требующих шифрование на уровне файлов.
Ссылка на основную публикацию
Шампанское шато тамань брют отзывы
Производитель: ООО «Кубань-Вино» Сбор винограда: 2016 Происхождение: Краснодарский край, Россия Сорт винограда: Шардоне, Рислинг и иные белые На отзыве у...
Что означает ошибка 110
Ошибка 110 в Android происходит главным образом при обновлении или установке приложений из Google Play. Случается это из-за несовместимости ОС:...
Что означает ошибка 963
Ошибки в Google Play дело достаточно частое, это не удивительно, ведь Плей маркет – это один из крупнейших магазинов приложений....
Шапка для твиттера 1500х500
Please complete the security check to access www.canva.com Why do I have to complete a CAPTCHA? Completing the CAPTCHA proves...