Как установить Kali Linux на зашифрованную файловую систему

4.2.2 Установка Kali на полностью зашифрованную файловую систему

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

Перейти к содержанию книги Kali Linux Revealed

Режим управляемого разделения будет сочетать использование двух технологий: Linux Unified Key Setup (LUKS) для шифрования разделов и управления логическими томами (Logical Volume Management (LVM)) для динамического управления хранилищем. Обе функции также можно установить и настроить в режиме разделения вручную.

Введение в LVM

Давайте сначала обсудим LVM. Используя терминологию LVM, виртуальный раздел представляет собой логический том, который является частью группы томов или объединением нескольких физических томов. Физические тома являются реальными разделами (или виртуальными разделами, экспортируемыми другими абстракциями, такими как программное устройство RAID или зашифрованный раздел).

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

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

Введение в LUKS

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

Зашифрованный раздел подкачки

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

Настройка зашифрованных разделов

Процесс установки для зашифрованного LVM такой же, как и стандартная установка, за исключением этапа разбиения на разделы (рис. 4.20, «Управляемое разделение с зашифрованным LVM»), где вам необходимо будет выбрать Управляемый режим — использовать весь диск и настроить зашифрованный LVM («Guided — use entire disk and set up encrypted LVM.»). Конечным результатом будет система, которую нельзя загрузить или получить доступ до тех пор, пока не будет предоставлена кодовая фраза шифрования. Это зашифрует и защитит данные на вашем диске.

Как установить Kali Linux на зашифрованную файловую систему
Рисунок 4.20 Управляемое разделение с зашифрованным LVM

Установщик управляемого разделения автоматически назначит физические разделы для хранения зашифрованных данных, как это показано на Рисунке 4.21, «Подтвердить изменения таблицы разделов». На этом этапе установщик подтвердит изменения до того, как они будут записаны на диск.

Подтвердить изменения таблицы разделов
Рисунок 4.21 Подтвердить изменения таблицы разделов

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

Удаление данных в зашифрованном разделе
Рисунок 4.22 Удаление данных в зашифрованном разделе

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

Введете идентификационную фразу шифрования
Рисунок 4.23 Введете идентификационную фразу шифрования

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

Завершение управляемого разделения с зашифрованным LVM

Затем на экране отобразится итоговая схема разделения (рисунок 4.24, «Проверка разделения для зашифрованной установки LVM») так, что вы можете выставить настройки необходимым вам образом.

Проверка разделения для зашифрованной установки LVM
Рисунок 4.24 Проверка разделения для зашифрованной установки LVM

И наконец, после проверки настроек раздела, инструмент попросит вас подтвердить изменения, внесенные на диск, как это показано на рисунке 4.25, «Подтверждение форматирования разделов».

Подтверждение форматирования разделов
Рисунок 4.25 Подтверждение форматирования разделов

Далее процесс установки продолжится обычным образом, что подробно описано в разделе 4.2.1, «Настройка диспетчера пакетов (apt)».

4.3 Автоматическая установка Kali Linux

Установщики Debian и Kali являются довольно модульными: на базовом уровне, они просто выполняют множество скриптов (объединенных в крошечные пакеты под названием udeb—for µdeb или micro-deb) один за другим. Каждый из скриптов опирается на debconf (смотри «Инструмент debconf»), который взаимодействует с вами, пользователем и сохраняет параметры установки. В связи с этим, установщик может быть также автоматизирован через debconf preseeding, функцию, которая позволяет вам предоставлять автоматические ответы на вопросы установки.

4.3.1 Ответы пресидинга

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

С параметрами загрузки

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

Вы можете напрямую использовать полный идентификатор вопросов debconf (например, debian-installer/language=en), или вы можете использовать аббревиатуры для наиболее распространенных вопросов (например, language=en или hostname=duke). Смотри полный список сокращений в руководстве по установке Debian.

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

В разделе 9.3, «Создание живого пользовательского ISO образа Kali» вы также узнаете, каким образом изменить Isolinux конфигурации, когда вы создаете ваш собственный ISO образ Kali.

С Preseed файлом в Initrd

Вы можете добавить файл под названием preseed.cfg  в root установщика initrd (это тот initrd, который используется для запуска установщика). Обычно это требует восстановления исходного пакета debian-installer для генерации новых версий initrd. Тем не менее, live-build  предлагает удобный способ сделать это, что подробно описано в разделе 9.3 «Создание живого пользовательского ISO образа Kali».

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

С Preseed файлом в загрузочном носителе

Вы можете добавить файл preseed на загрузочный носитель (CD или USB-накопитель); затем выполняется пресидинг, а именно после монтирования носителя, что в свою очередь означает сразу после вопросов о языке и раскладки клавиатуры. Параметр загрузки preseed/file может использоваться для указания местоположения пресидинг файла (например, /cdrom/preseed.cfg  при установке с компакт-диска или /hd-media/preseed.cfg  при установке с USB- накопителя).

Вы можете не подвергать пресидингу ответы на вопросы о языке и стране, т.к. пресидинг файл загружается немного позже в этом процессе, после загрузки драйверов оборудования. Также большим плюсом является то что, live-build упрощает размещение дополнительного файла в сгенерированных ISO-образах (смотри раздел 9.3, «Создание живого пользовательского ISO образа Kali»).

С Preseed файлом, загруженным из сети

Вы можете получить доступ к preseed файлу в сети через веб-сервер и сказать установщику скачать preseed файл путем добавления параметра preseed/url=http://server/preseed.cfg  (или с помощью альтернативного url).

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

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

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

Для того, чтобы преодолеть ограничение того, что вы не можете подвергать пресидингу вопросы, связанные с языком, страной, и клавиатурой, вы можете добавить параметр загрузки auto-install/enable=true (или auto=true) . С этой опцией вопросы будут задаваться немного позже в процессе, а именно после того, как сеть будет настроена и, таким образом, после загрузки preseed файла.

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

4.3.2 Создание Preseed файла

Preseed файл является обычным текстовым файлом, в котором каждая строка содержит ответы на один Debconf вопрос. Строка разделяется на четыре поля, разделенные пробелом (пробелом или табуляцией). Например, d-i mirror/ suite string kali-rolling

Первое поле обозначает владельца вопроса. Например, «d-i» используется для вопросов, относящихся к установщику. Вы также можете увидеть имя пакета для вопросов, исходящих из пакетов Debian (как в этом примере: atftpd atftpd / use_inetd boolean false ).

  • Второе поле является идентификатором вопроса.
  • Третье поле указан тип вопроса.
  • Четвертое и заключительное поле содержат значение ожидаемого ответа. Обратите внимание, что он должен быть отделен от третьего поля одним пробелом; дополнительные пробельные символы считаются частью значения.

Самый простой способ написать preseed файл — это установить систему вручную. Затем команда debconf-get- selections –installer предоставит ответы, которые вы в свою очередь предоставили установщику. Вы можете получить ответы, направленные другим пакетам, с помощью debconf-get-selections. Однако, более чистым решением является запись файла preseed вручную, начиная с примера, а затем просматривая документацию. При таком подходе, лишь те вопросы, ответ по умолчанию на которые необходимо заменить, могут быть подвергнуты пресидингу. Укажите priority=critical параметр загрузки, чтобы поручить Deb-conf задавать критические вопросы и использовать ответы по умолчанию для других.

Приложение к руководству по установке

В приложении руководства по установке Debian, доступном в Интернете, содержится подробная документация по использованию файла preseed. Он также содержит подробный и прокомментированный образец файла, который может служить базой для локальных настроек.

https://www.debian.org/releases/stable/amd64/apb.html

https://www.debian.org/releases/stable/example-preseed.txt

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

4.4 ARM Установки

Kali Linux работает на самых разных устройствах на базе ARM (например, ноутбуки, встроенные компьютеры и платы для разработчиков, но вы не можете использовать традиционный установщик Kali на этих устройствах, поскольку они часто имеют конкретные требования в отношении ядра или конфигурации начального загрузчика. Чтобы сделать эти устройства более доступными для пользователей Kali, Offensive Security разработала сценарии для создания образов дисков, которые готовы для использования с различными ARM устройствами. Offensive Security предоставили подобные образы для загрузки на своем веб-сайте:

https://www.offensive-security.com/kali-linux-arm-images/

Ввиду того, что эти образы общедоступны, ваша задача по установке Kali на ARM устройство значительно упрощена.

Ниже приведены основные шаги:

  1. Загрузите образ для своего устройства ARM и убедитесь, что контрольная сумма соответствует той, которая указана на веб-сайте (смотри Раздел 2.1.3 «Проверка целостности и подлинности» для объяснения того, как это сделать). Обратите внимание, что образы обычно являются xz-сжатыми, таким образом, необходимо распаковать их с помощью unxz.
  2. В зависимости от слота расширения хранилища, доступного на вашем конкретном устройстве ARM, приобретите SD-карту, micro SD-карту или модуль eMMC, емкость которого не менее 8 ГБ.
  3. Скопируйте загруженный образ на устройство хранения с помощью dd. Это похоже на процесс копирования образа ISO на USB-накопитель (смотри Раздел 2.1.4 «Копирование образа на DVD-ROM или USB-накопитель»).

    ARM Установки

  4. Вставьте SD-карту/eMMC в ваше устройство ARM.
  5. Загрузите устройство ARM и войдите в него (пользователь «root», пароль «toor»). Если у вас нет подключенного экрана, вам нужно будет определить IP-адрес, назначенный через DHCP, и подключиться к этому адресу через SSH. На некоторых серверах DHCP есть инструменты или веб-интерфейсы, чтобы показать текущие leases. Если у вас нет ничего подобного, используйте сниффер для поиска траффика lease DHCP.
  6. Измените пароль root и сгенерируйте новые ключи хоста SSH, особенно, если устройство будет постоянно работать в общедоступной сети! Шаги являются довольно простыми, см. «Создание новых хост ключей SSH».
  7. Наслаждайтесь вашим новым устройством ARM, работающим на Kali Linux!

Специальные случаи и более подробная документация

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

Поскольку устройства ARM добавляются относительно часто, и их спецификации настолько динамичны, мы не будем описывать конкретные инструкции по установке для различных устройств ARM. Вместо этого обратитесь к выделенному разделу «Kali на ARM» документации веб-сайта Kali для получения более подробной информации о каждом устройстве ARM, поддерживаемом Offensive Security:

http://docs.kali.org/category/kali-on-arm

4.5 Устранение неполадок во время установки Kali Linux

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

Когда в программе установки произойдет сбой, она покажет вам довольно бесполезный экран, такой как тот, который показан на рисунке 4.26, «Сбой процесса установки».

Устранение неполадок во время установки Kali Linux
Рисунок 4.26 Сбой процесса установки

На этом этапе хорошо знать, что установщик использует несколько виртуальных консолей: главный экран, который вы видите, запускается либо на пятой консоли (для графического установщика, CTRL + Shift + F5 ), либо на первой консоли (для текстового установщика, CTRL + Shift + F1 ). В обоих случаях четвертая консоль (CTRL + Shift + F4 ) отображает журналы того, что происходит, и обычно вы можете увидеть там более полезное сообщение об ошибке, например, как показано на рисунке 4.27 «Экран журнала установки», который показывает, что установщику не хватает дискового пространства.

Экран журнала установки
Рисунок 4.27 Экран журнала установки

Вторая и третья консоли (CTRL + Shift + F2 и CTRL + Shift + F3  соответственно), хранят оболочки, которые вы можете использовать для более детального изучения текущей ситуации. Большинство инструментов командной строки предоставлены в BusyBox, поэтому набор функций довольно ограничен, но, тем не менее, этого достаточно для того, чтобы разрешить большинство проблем, с которыми вы возможно столкнетесь.

Что может быть сделано с помощью оболочки установщика

Вы можете проверить и изменить базу данных debconf с помощью debconf-get и debconf-set . Эти команды особенно удобны для тестирования значений пресидинга. Вы можете проверить любой файл (например, полный журнал установки, доступный в /var /log/syslog ) с помощью cat или других команд. Вы можете редактировать любой файл с помощью nano, включая все файлы, установленные в системе. Корневая файловая система будет смонтирована на /target после завершения этапа разбиение разделов процесса установки. После настройки сетевого доступа вы можете использовать wget и nc (netcat) для извлечения и экспорта данных по сети.

После того, как вы нажмете «Продолжить» на главном экране сбоя установки (Рисунок 4.26 «Сбой процесса установки»), вы будете возвращены на экран, который в нормальной ситуации вы бы никогда не увидели (главное меню, показанное на рисунке 4.28, «Главное меню установщика»), который в свою очередь позволяет вам запускать один шаг установки за другим. Если вам удалось устранить проблему, используя доступ к оболочке (примите наши поздравления!), вы можете повторить неудавшийся шаг.

Главное меню установщика
Рисунок 4.28 Главное меню установщика

Если вам не удалось разрешить проблему, вы можете захотеть составить отчет об ошибке. Данный отчет должен включать в себя журналы установщика, которые вы можете получить с помощью функции главного меню «Сохранить журналы исправления ошибок» («Save debug logs»). Она предлагает множество способов экспортировать журналы, как показано на рисунке 4.29, «Сохранить журналы исправления ошибок (1/2)».

Сохранить журнал исправления ошибок (1/2)
Рисунок 4.29 Сохранить журнал исправления ошибок (1/2)

Самый удобный способ и тот, который мы рекомендуем, — позволить установщику запустить веб-сервер, на котором размещаются файлы журнала (рисунок 4.30, «Сохранить журналы исправления ошибок (2/2)»). Затем вы можете запустить браузер с другого компьютера в той же сети и загрузить все файлы журналов и снимки экрана, которые вы сделали с помощью кнопки «Скриншот», доступной на каждом экране.

Сохранить журнал исправления ошибок (2/2)
Рисунок 4.30 Сохранить журнал исправления ошибок (2/2)

4.6 Подведем итоги

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

Основные моменты:

  • Системные требования Kali Linux варьируются от базового SSH сервера, который не имеет рабочего стола и которому достаточно 128 МБ ОЗУ (рекомендуется 512 МБ) и 2 ГБ дискового пространства, до очень требовательного kali- linux-full meta-package, который требует хотя бы 2048 МБ ОЗУ и 20 ГБ пространства на диске. Дополнительно ваша машина должна иметь центральный процессор, который поддерживал бы одну из следующих архитектур: amd64, i386, armel, armhf, или arm64.
  • Kali Linux может быть с легкостью установлен как в качестве основной операционной системы, так и наряду с другими операционными системами с помощью разбиения и изменения начального загрузчика или же в качестве виртуальной машины.
  • Чтобы гарантировать конфиденциальность ваших данных, вы можете настроить зашифрованные разделы. Это защитит ваши данные, если ваш ноутбук или жесткий диск будут потеряны или украдены.
  • Установщик также может быть автоматизирован с помощью debconf preseeding, функции, которая позволяет вам автоматически отвечать на вопросы установки.
  • Preseed файл является обычным текстовым файлом, в котором каждая строчка содержит ответ на один вопрос Debconf. Строчка разделена на четыре поля, которые разделены между собой пробелом (пробелами или табуляцией). Вы можете подвергнуть пресидингу ответы установщику с помощью параметров загрузки, используя preseed файл в initrd, preseed файл в загрузочном устройстве или же preseed файл из сети
  • Kali Linux работает на самых разных устройствах на базе ARM, таких как ноутбуки, встроенные вычислители и платы разработчиков. Установка ARM довольно проста. Загрузите нужный вам образ, запишите его на SD-карту, USB-накопитель или встроенный модуль мультимедиа-контроллера (eMMC), подключите его, загрузите устройство ARM, найдите свое устройство в сети, войдите в систему и измените Пароль SSH и ключи хоста SSH.
  • Вы можете отладить сбои, возникшие в процессе установки, с помощью виртуальных консолей (доступных путем нажатия CTRL+Shift и одной из функциональных клавиш), debconf-get и debconf-set команд, прочтения /var/log/syslog файла журнала, или же с помощью составления отчета об ошибках, включающего в себя файлы журнала, которые можно извлечь, используя функцию установщика «Сохранить журналы исправления ошибок».

Теперь, когда мы обсудили основы Linux и процесс установки Kali Linux, давайте обсудим процесс настройки системы, чтобы вы могли приступить к настройке Kali в соответствии с вашими потребностями.

Перейти к содержанию книги Kali Linux Revealed

Это интересно:

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *