Установка Linux Ubuntu 10.04 и 12.04 на шифрованный системный раздел
Сопутствующие статьи
Поделитесь этим сайтом с друзьями!
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354. Или на телефон +7(928)274-0281. Даже небольшая сумма может помочь написанию новых статей :) Или поделитесь ссылкой на эту статью со своими друзьями. |
Если вам нужно установить на шифрованный диск Ubuntu 14.04 - читайте другую статью, Установка Убунту 14.04 на зашифрованный диск. Шифрование данных на дискеЭто единственный надежный способ защиты информации, в условиях, когда возможен физический доступ посторонних людей к компьютеру. Пароль на запуск любой операционной системы - Windows, Linux или Mac OS, может спасти только от детей. Любой специалист обойдет парольную защиту за пару минут - примерно столько времени нужно для того, чтобы воткнуть в компьютер флешку и загрузить свою операционную систему с нее. А вот зашифрованные данные вскрыть уже гораздо труднее. Или вообще невозможно без цифрового ключа или ключевой фразы. Конечно существуют разные алгоритмы шифрования и внутри этих алгоритмов существуют разные параметры - все это влияет на устойчивость к взлому. При использовании нестойких алгоритмов или уязвимых параметров можно получить доступ к зашифрованным фалам и папкам. Но в общем случае можно считать что шифрование это надежная защита данных. Наиболее распространенный способ защиты данных это шифрование файлов. На диске создается шифрованная папка, в нее записываются файлы. Теоретически это надежно, если используется алгоритм AES, ключи большой длины. Но остается неочевидная уязвимость данных при таком способе шифрования. Дело в том, что операционная система остается незащищенной. А это дает злоумышленнику возможность установить в систему специальную программу, (кейлогер, руткит) которая будет запускаться при старте ОС и отслеживать действия пользователя и таким образом рано или поздно злоумышленник получит пароль или ключевой файл для доступа к зашифрованным папкам и файлам. Либо сможет получить сами эти данные после того, как пользователь откроет зашифрованный файл. Значит, действительно стойкая защита данных на диске это шифрование не отдельных файлов и папок, а всего раздела. Более того, для надежной защиты необходимо шифрование всего диска. "На поверхности" не должно оставаться ничего. В этой статье будет дана инструкция как создать шифрованный системный раздел и диск в ОС Linux Ubuntu. Шифрованная файловая система в Linux поддерживается на уровне ядра операционной системы. То есть не нужно искать какие-то навороченные криптографические программы и более того, использование шифрованных разделов Linux происходит прозрачно - пользователю ничего не нужно знать о шифровании и ничего не нужно делать для шифрования своих файлов и папок. Для того, чтобы создать надежную шифрованную систему под Linux нужно понимать какие части этой системы нужно защищать. Их четыре:
Защищать нужно все эти области. В статье будет рассмотрена упрощенная конфигурация - swap и /boot на отдельных разделах, а root и /home совмещены на одном разделе. Но для более сложных случаев технология защиты будет такая же. С шифрованием областей root, swap и /home никаких трудностей нет, а вот с защитой /boot есть проблема. Дело в том, что из этой области системный загрузчик запускает initrd и ядро Linux. Если эту область зашифровать, тогда загрузчик не сможет запустить ядро и соответственно запуск ОС будет невозможен. То есть зашифровать /boot нельзя, но и оставлять открытой тоже нельзя, ведь в этом случае будет возможна подмена ядра, на другое, содержащее зловредный код, который перехватит пароль для расшифровки диска.. Выход в том, чтобы разместить раздел /boot на съемном носителе, на флешке. Флешка будет своего рода электронным ключом к системе. Без нее запуск ОС с зашифрованного диска будет невозможен. То есть защита раздела /boot осуществляется на физическом уровне - извлечением его из компьютера. Таким образом общая схема защиты такова:
Установка шифрованной Убунты будет выполняться с использованием Ubuntu Live. Почему именно Live? Ведь дистрибутив Alternate позволяет сделать тоже самое без плясок с бубном, там опции шифрования есть в установщике. Лично мне не нравится то, что Alternate это исключительно установочный дистрибутив, больше его никак нельзя использовать - ни для диагностики, ни для работы. К тому, же установщик Alternate работает в консоли, а это как-то архаично в 21 веке. Так, что Live. Эта инструкция применима к двум LTS релизам 10.04 и 12.04, в обоих случаях все делается одинаково. Хотя на практике проверено только на этих двух релизах, на других это тоже должно работать. После загрузки в Live нужно будет подключение к Интернет, потому, что в Live релизах нет пакета lvm2 - его придется скачивать и устанавливать. Итак, инструкция шаг за шагом. Установка LVMУстановить подключение к Интернет. Затем выполнить две команды: sudo apt-get update Можно заранее скачать, записать на флешку или диск пакеты libdevmapper-event, lvm2, watershed и затем установить их командой dpkg. Но Интернет все равно потребуется на финальной стадии. Подготовка жесткого диска и флешкиНа жестком диске нужно создать один пустой, неразмеченный в файловую систему раздел. Разметка диска может быть MS-DOS или GPT - это неважно. Этот раздел будет выполнять роль криптоконтейнера.
На флешке также нужно создать один раздел, но с файловой системой Ext3. Шифрование системного дискаШифрование всего раздела на жестком диске выполняется командой: sudo cryptsetup --cipher aes-xts-plain --key-size 512 --verify-passphrase luksFormat /dev/sda1 Важное примечание. Эта команда выдаст запрос и на его подтверждение нужно ввести слово YES, именно так, заглавными буквами. Этот запрос сделан для того, чтобы убедиться в том, что у вас на клавиатуре включен именно английский язык! После этого нужно будет дважды ввести ключевую фразу. Эта фраза должна быть длинной и не должна содержать часто повторяющихся знаков. В идеале это должен быть произвольный набор букв и цифр. Эту фразу лучше придумать заранее, еще до начала работы по созданию системы. При вводе ключевой фразы, в терминале не будут отображаться никакие знаки, поэтому печатать нужно внимательно. Но фраза будет запрошена дважды, так что если вы ошибетесь программа об этом сообщит.
После успешного создания криптоконтейнера, для дальнейшей работы нужно подключить этот шифрованный диск: sudo cryptsetup luksOpen /dev/sda1 crypted Эта команда выдаст запрос на ключевую фразу, которая была введена в предыдущей команде. Создание шифрованных разделовСледующий этап это создание шифрованных разделов внутри криптоконтейнера LUKS. Для создания этих разделов используется механизм LVM. sudo pvcreate /dev/mapper/crypted Примечание. Размер swap раздела должен быть примерно на 30% больше чем размер оперативной памяти. Раздел root не менее 5-7 Гигабайт. Установка Ubuntu на шифрованный дискПосле создания зашифрованных разделов нужно запустить инсталлятор, ярлык которого есть на рабочем столе. Установка обычная, важно лишь до запуска установщика отмонтировать флешку куда будет записан /boot, и правильно указать разделы для установки.
На этот запрос нужно ответить "Да". Это флешка, куда нужно будет устанавливать /boot раздел. Такой запрос будет выдан если вы забудете отмонтировать флешку до запуска установщика. Далее нужно выбрать ручную разметку диска:
И вот таким образом подключить разделы:
Шифрованные разделы для установки Ubuntu это /dev/mapper/ubunu-root, /dev/mapper/ubunu-swap. Раздел /boot на флешке (это sdb1). В окне установщика, на этапе шаг 8 нужно нажать кнопку "Дополнительно" и убедиться в том, что загрузчик будет установлен на флешку:
В Ubuntu 12.04 и разделы и загрузчик в одном окне:
После этого в окне шага 8 нужно нажать кнопку "Установить" и дождаться окончания установки. По завершении установки, установщик предложит перезагрузить компьютер. Перезагружать нельзя! Нужно остаться в Live Ubuntu. Дело в том, что в установленной на жесткий диск Ubuntu нет пакета lvm2, а это означает, что загрузка системы с жесткого диска будет невозможна. Установка LVM на жесткий дискДля установки lvm2 в свежеустановленную Ubuntu на жестком диске, нужно выполнить следующие команды: sudo mount /dev/mapper/ubuntu-root /mnt Далее нужно подключиться к Интернет и затем выполнить еще команды: sudo cp /etc/resolv.conf /mnt/etc/resolv.conf Примечание 1. В Ubuntu 12.04 вместо cut -d ' ' -f 9 нужно писать cut -d ' ' -f 11! Кроме того, я советую после команды echo ... /etc/crypttab выполнить команду cat /etc/crypttab для проверки того, что строка записана верно:
Вы можете изучить формат файла /etc/crypttab и сделать запись вручную, без использования команды echo. Особенно в том случае, если вы используете эту инструкцию для другого дистрибутива. Или, перед выполнением полной команды echo, выполнить ее в усеченном формате, с выводом только в терминал. Чтобы убедиться в том, что строка формируется правильно. Примечание 2. После предпоследней команды будут сообщения об ошибках, их можно игнорировать. Теперь можно перезагружать компьютер и пользоваться установленной зашифрованной Ubuntu. Конечно в BIOS необходимо указать загрузку с той флешки, где установлен раздел /boot! В установленной таким способом Ubuntu можно использовать даже спящий режим (hibernate), без опасения, что содержимое памяти, сброшенное на диск, станет доступно злоумышленнику. Примечание 1Важно понимать, что даже при таком тотальном шифровании сохраняются уязвимости.
Также необходимо понимать, что шифрование это защита на то время когда ваш компьютер выключен, а вас рядом нет. Но когда вы работаете на компьютере сохраняется возможность попадания на ваш компьютер вредоносных программ из Интернет. Такие программы могут "украсть" вашу информацию в то время как вы пользуетесь компьютером и Интернет. Поэтому важно принимать и общие меры защиты. Не "шарахаться" где попало в Интернет. Не устанавливать непроверенные программы. Использовать брандмауэр. А при более серьезных требованиях к безопасности нужно использовать другие средства, например tcb, SELinux, iptables. Примечание 2Сделайте копию загрузочной флешки, проще всего командой dd. Запишите этот образ на другую флешку или на лазерный диск. Копия на другую флешку удобнее поскольку при необходимости вы сразу ее сможете использовать. Но в любом случае эту копию, на чем бы она ни была, нужно будет хранить в защищенном месте. А после обновления ядра или загрузчика необходимо будет обновлять копию флешки. Примечание 3В каком-нибудь другом дистрибутиве, дополнительно может потребоваться еще и пересборка initrd, с поддержкой luks. P.S. Если вы живете в г. Краснодар, для вас есть простой способ установить Ubuntu Linux на шифрованный системный раздел - позвоните по телефону, который указан ниже и договоритесь со специалистом. Подробнее... Иван Сухов, 2012, 2017 г При написании этой статьи была использована информация из публикации в блоге Андреаса Хёртера.
Поделитесь этим сайтом с друзьями!
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354. Или на телефон +7(928)274-0281. Даже небольшая сумма может помочь написанию новых статей :) Или поделитесь ссылкой на эту статью со своими друзьями. |
Copyright digital.workshop 1999 - 2021.
Это произведение доступно по лицензии Creative Commons Attribution-NoDerivs 3.0. |
Developed by digital.workshop |