Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Information Security Squad

stay tune stay secure

⛹️♂️ 10 лучших инструментов шифрования файлов и дисков для Linux

Сегодня мы переключаем наше внимание на методы шифрования и предлагаем вам список лучших программ для шифрования файлов и дисков для вашей Linux-машины.

1. Tomb

Tomb — это бесплатный инструмент с открытым исходным кодом для простого шифрования и резервного копирования файлов в системах GNU / Linux.

Он состоит из простого скрипт оболочки, который реализует стандартные инструменты GNU наряду с cryptsetup и LUKS (криптографический API ядра Linux).

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

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

2. Cryptmount

Cryptmount — это утилита с открытым исходным кодом, созданная для операционных систем GNU / Linux и позволяющая пользователям монтировать зашифрованные файлы без прав пользователя root.

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

Мы уже рассматривали его в нашем обзоре:

3. CryFS

CryFS — это бесплатный облачный инструмент шифрования с открытым исходным кодом для безопасного хранения файлов в любом месте.

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

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

4. GnuPG

GnuPG, часто называемая GPG, означает GNU Privacy Guard и представляет собой бесплатную коллекцию криптографических инструментов с открытым исходным кодом, созданную в качестве замены пакета криптографического программного обеспечения Symantec PGP.

Он соответствует требованиям стандартов IETF OpenPGP и RFC 4889.

Мы рассмотрели GPG здесь немного подробнее.

5. VeraCrypt

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

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

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

6. EncFS

EncFS — это бесплатный и в основном инструмент с открытым исходным кодом для монтирования папок EncFS на Mac и Windows.

Вы можете использовать его для создания, редактирования, изменения и экспорта пароля папок EncFS, и он на 100% совместим с EncFS 1.7.4 на платформах GNU / Linux.

7. 7-zip

7-zip — популярная, бесплатная многоплатформенная утилита архивирования файлов для сжатия файлов (или групп файлов) в контейнеры, называемые архивами.

7-zip является одной из самых популярных утилит архивирования благодаря высокой степени сжатия в формате 7z, среди которых есть компрессия сжатия LZMA и LZMA2, плагин для менеджера FAR, интеграция с Windows Shell, шифрование AES-256 в форматах 7z и ZIP, а также другие функции.

8. dm-crypt

dm-crypt — это подсистема шифрования диска для шифрования дисков, разделов и переносимых контейнеров.

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

9. ecryptfs

eCryptfs — это бесплатная коллекция программного обеспечения для шифрования дисков в Linux с открытым исходным кодом.

Она призвана отразить функциональность GnuPG путем реализации POSIX-совместимого уровня шифрования на уровне файловой системы и является частью ядра Linux с момента выпуска версии 2.6.19.

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

10. cryptsetup

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

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

Материалы по теме:

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

Не стесняйтесь оставлять свои комментарии, вопросы и предложения ниже.

Шифрование дисков в 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 устройство.

Читать еще:  Exfat что за формат linux

Алгоритм 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 не рекомендуется для приложений, требующих шифрование на уровне файлов.

Системное администрирование и мониторинг Linux/Windows серверов и видео CDN

Статьи по настройке и администрированию Windows/Linux систем

  • Полезное
    • Карта сайта
    • Мой сайт-визитка
  • Рубрики
    • Linux
      • VoIP
      • Безопасность
      • Видеопотоки
      • Системы виртуализации
      • Системы мониторинга
    • Windows
    • Интересное
    • Сеть и Интернет
  • Мета
    • Войти
    • RSS Feed

Шифрование Linux (часть 1). Полное шифрование Ubuntu/Centos при установке (LUKS,cryptsetup)

Здравствуйте. Решил написать серию статей по криптованию. Что такое криптование, и какие есть шифры, алгоритмы и т.п. рассказывать не буду, так как есть море литературы, из которой можно почерпнуть все, что интересует по данному вопросу. Я буду использовать систему криптования dm-crypt, для управления которой используется утилита cryptsetup в которой есть встроенная поддержка LUKS для криптования операционных систем семейства Linux. В данном случаи это будут самые распространенные ОС – семейство deb (Ubuntu, Debian) и семейство rpm (Centos, Red Hat).

Начнем с самого простого метода – шифрование при установке ОС. Все действия я проделал на VMware workstation. Для начала возьмем Ubuntu 12.04 server. Процесс установки – стандартный, пока не дойдем до разметки диска. Где нам нужно выбрать Guided – use entire disk and set up encrypted LVM.

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

Далее все идет по старинке.
После перезагрузки нас попросят ввести пароль для разлочки диска с файловой системой.

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

Из вывода не понять – зашифровано диск или нет… Для этого мы можем посмотреть заголовок диска.

Как видно, диск зашифровано алгоритмом AES + cbc-essiv + sha256.
Точно такие же шаги нужно сделать для шифрования ОС семейства rpm (Centos, Red Hat). Хочу заметить, в Linux можно шифровать блочные устройства из-за существования initramfs – файловой системы, которая монтируется до того, как смонтируется рутовая файловая система. Об этом пойдет речь в следующей статье. А пока можно поэкспериментировать.
Посмотрим, сколько слотов ключей используется на данный момент для зашифрованного диска.

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

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

Здесь мы добавили 256 битный ключ, который можно ввести из клавиатуры (используется кодировка base64 ). Также можно добавить бинарный ключ, который с клавиатуры ввести нереально (для простых смертных). Такие ключики нужно сохранять на съемном носителе, на незашифрованной файловой системе или где-то на удаленном сервере. Это ключи типа

Теперь удалим ключ (в конце строки указывается номер слота, который нужно удалить).

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

Читать еще:  Open suse linux установка

Немного полезной информации можно почерпнуть здесь

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

В следующей статье пойдет речь об конкретной установке и настройке зашифрованной Ubuntu и удаленной разлочке.

Шифрование диска в Linux средствами loop-AES 2 0

Администрирование

Автор: Enqlave

Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 10 февраля в 03:31.

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

Примечание: Статья была впервые опубликована в электронном издании «Open Source» (выпуск №028 от 10.07.2008). Ее размещение на nixp.ru производится в соответствии с разрешением со стороны редакции и автора материала.

В нашем современном мире защита информации играет немалую роль. Особенно, если дело касается важных или секретных данных. Данная статья познакомит вас с одним из способов их защиты. Все мы люди, и ни для кого не секрет, что иногда попадаем в самые разнообразные ситуации. Например, человек в аэропорте оставляет ноутбук на пару минут для того, чтобы выпить чашечку кофе. По возвращении он констатирует факт кражи этого устройства. Конечно, если на нём кроме семейного альбома ничего другого не было, то цена стоимостью ноутбука будет являться платой за невнимательность и нерасторопность. Однако зачастую не такие люди оставляют подобную технику без присмотра, а те, у кого с ней плотно связана работа или собственное дело. Поэтому «подаренный» бизнес-план может обернуться скорее убытками нежели прибылью, если, конечно, мошенники не собираются сдать этот «подарок судьбы» на металлолом. Под впечатлением от подобного сообщения потерпевшего (пользователя OpenBSD) в одном из списков рассылки и была написана эта статья.

Средства и принцип работы

В статье рассматривается ядро операционной системы GNU/Linux (преимущественно, 2.6), для которого в своё время был разработан модуль, позволяющий «на лету» шифровать данные, записываемые на жёсткий диск. Основа работы такого алгоритма уходит далеко к корням создания псевдоустройства «loop device» («loopback device», vnd (vnode disk) или lofi (loopback file interface)) в UNIX-подобных операционных системах. Оно находится выше уровня диска и раздел на нём и представляет собой виртуальное устройство — некую прослойку между файловой системой и самим физическим носителем. Таким образом, все данные, которые записываются на физический диск, проходят через это устройство. Подобный подход используется при создании решений RAID. Большинству же это устройство знакомо по монтированию ISO-образов (mount -o loop -t iso9660 /path/to/image.iso /path/to/folder).

Итак, loop-AES — это модифицированная версия модуля loop для Linux-ядра. На стадии передачи данных от псевдоустройства к реальному этот модуль позволяет их шифровать с минимальной долей потери производительности при чтении/записи. После размонтирования устройства, естественно, файловая система на носителе остаётся зашифрованной и недоступной для обычного монтирования диска. Как видно из названия, используется один из лучших алгоритмов шифрования в настоящее время — AES (Rijndael). Также доступны модули с использованием алгоритмов Blowfish, Serpent, Twofish. Длина ключа варьируется от 128 до 256 бит.

  • В первую очередь понадобится рабочее ядро Linux (2.0—2.6) с отключенным модулем loop (CONFIG_BLK_DEV_LOOP=n). Он будет заменён на модуль с тем же самым названием, но с расширенным функционалом loop-AES.
  • Небезызвестный GnuPG (см. его обзор в статье «Защищаем себя средствами GnuPG»), а также sharutils — для генерирования ключей, которыми будут защищены псевдоустройства.
  • Сам loop-AES.
  • util-linux или util-linux-ng.

Если планируется шифровать также и основной (корневой) раздел на жёстком диске, то нужно будет установить ещё программу aespipe и dietlibc для создания и использования образа initrd (init RAM disk) и достать образ LiveCD-дистрибутива, в котором бы была поддержка нужных файловых систем, используемых в текущей рабочей системе.

Приступая к работе

Основное условие, которое следует выполнить перед началом работы, — это сделать резервные копии всех важных данных (особенно, если в дальнейшем будет зашифрован основной раздел).

Пересборка ядра необходима, потому что нужно убрать стандартную поддержку loop-устройства (если она включена в виде модуля или встроена в ядро) и обеспечить соответствие текущего ядра ветке исходников (обычно это /usr/src/linux). Итак, для этого нужно поставить в конфигурационном файле ядра константу CONFIG_BLK_DEV_LOOP равную n и пересобрать его.

Затем следует этап пересборки пакетов util-linux (until-linux-ng) с предварительно применённым патчем loop-AES, который можно найти в самом дистрибутиве loop-AES, либо по ссылкам (на момент написания статьи): util-linux-2.12r-20080303.diff.bz2 и util-linux-ng-2.13.1-20080303.diff.bz2 для util-linux 2.12r и util-linux-ng 2.13.1 соответственно. Программы, которые будут изменены — это swapon/swapoff (для возможности шифрования файлов подкачки), losetup (для создания шифрованных псевдоустройств) и mount (для поддержки монтирования зашифрованных loop-устройств).

Пересобрать GnuPG и aespipe статически (с флагом GCC -s) нужно для того, чтобы в дальнейшем они не зависели от библиотек, находящихся на основном разделе диска, что позволит его зашифровать без надобности доступа к разделу.

Компиляция самого loop-AES тоже очень проста, и, если вы хотите использовать не только алгоритм шифрования AES (Rijndael), но и Blowfish, Serpent и Twofish — то команде make нужно передать в качестве параметра EXTRA_CIPHERS=y. Стоит отметить, что дополнительные модули алгоритмов шифрования включены в дистрибутив loop-AES, начиная с версии 3.2a.

Шифрование файла подкачки

Сразу приступим к делу: на начальных этапах загрузки ОС нужно подключить модуль loop.ko (loop.o в более ранних версиях ядра Linux: 2.0—2.4) с помощью команды modprobe loop или прописав loop в файле /etc/modules (зависит от дистрибутива Linux), чтобы до монтирования файловых систем модуль был готов к работе.

После подключения модуля по умолчанию создаётся 8 loop-псевдоустройств (/dev/loop0 .. /dev/loop7). Любое из них по желанию можно использовать в качестве точки монтирования для раздела/файла подкачки и записать его в /etc/fstab:

Здесь /dev/sda2 — раздел подкачки (swap), /dev/loop6 — псевдоустройство, которое используется для монтирования, AES128 — алгоритм шифрования.

После создания такой записи в /etc/fstab выполнение команды: swapoff -a && swapon -a — приведет к созданию и шифрованию раздела/файла подкачки. Проверить, так ли это, можно командой losetup -a, она должна вывести примерно следующее:

Шифрование пользовательского раздела

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

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

После этой команды необходимо дважды ввести секретную фразу для доступа. (Чтобы сократить время генерирования ключа, нужно увеличить процессорное время: максимально использовать нагрузку на него (например, при помощи компиляции чего-то массивного), «побродить» по Интернету, передвигать курсор мыши и т.д.

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

$PASSPHRASE — секретная фраза, которую вы вводили для генерирования ключа, AES128 — алгоритм шифрования раздела, /path/to/keyfile.gpg — путь к сгенерированному ключу, /dev/loop7 — псевдоустройство loop, /dev/sda3 — дескриптор раздела.

Далее заполняем физическое устройство «случайными» данными через псевдоустройство loop:

И удаляем ассоциируемое с разделом loop-устройство:

В завершении необходимо отредактировать запись в /etc/fstab:

Теперь всё готово к созданию файловой системы на уровне loop. Для этого нужно воспользоваться командой:

(Она потребует ввода секретной фразы.)

Остаётся лишь создать файловую систему на псевдоустройстве:

Перед проверкой опять удаляем ассоциируемое с разделом loop-устройство:

После этого можно монтировать зашифрованный раздел командой:

Для автоматического монтирования раздела (удобно, если зашифрован основной — тогда не нужно вводить ключевую фразу перед каждым монтированием нового раздела) можно перенести информацию о шифровании из файла /etc/fstab в скрипт, который бы на этапе загрузки автоматически создавал эти loop-псевдоустройства:

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

Для проверки зашифрованных разделов нужно использовать команду fsck применительно к loop-устройствам (в это время раздел, проверка которого производится в данный момент, должен быть размонтирован):

Альтернативы и оценка производительности

loop-AES — не единственный способ зашифровать жёсткий диск. Наряду с ним существует и другая реализация подобной технологии: dm-crypt. Она также представляет собой модуль к ядру Linux. Управление осуществляется несколькими программами, входящими в пакет LUKS. LUKS предоставляют целую систему для управления зашифрованными разделами. Однако, судя по проведённым тестам, dm-crypt хоть и не намного, но уступает loop-AES в производительности: http://dev.riseup.net/grimoire/storage/encryption/benchmarks/dmcrypt-v-loopaes/. Как видно из графиков, loop-AES немного быстрее dm-crypt, если дело касается файловых операций (чтения/записи) — в том числе, при использовании RAID-массивов.

Также экспертиза показала, что с использованием оптимизаций для x86 алгоритм AES является лидером в скорости даже с длиной ключа в 256 бит.

Ссылка на основную публикацию
Adblock
detector