В данной статье описывается метод создания загрузочной флешки с системой Kali Linux, функционал которой позволяет создать зашифрованный раздел, где будут храниться все её параметры, установленные программы и данные. Шифрование производится посредством алгоритма aes c ключом 256 бит (настроить шифрование вы можете на свой вкус, изучив команду cryptsetup).

1. Создание загрузочной флешки


Для записи образа используйте программу Rufus. Выберите устройство, на которое будет распакован образ, далее выберите iso-образ системы и из выпадающего списка выберите DD-образ.

image

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

image

Структура разделов:

— 2.80 ГБ – образ системы Kali Linux;
— 102 Мб – загрузчик;
— 11,42 Гб – нераспределённая область, которая будет использоваться для шифрования.

2. Создание зашифрованного раздела и установка его параметров


Выполните загрузку с флешки и выберите пункт меню Live(686-pae).

image

Запустите терминал и выполните команду gparted для запуска редактора разделов.

image

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

image

Далее выберите нераспределённое место на диске и создайте новый раздел(ext4).

image

После создания раздела откройте терминал и выполните команду fdisk –l | grep /dev/ для отображения доступных устройств. Нас интересует устройство /dev/sdb3.

image

Для шифрования раздела введите команду cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3, далее введите YES.

image

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

Подключите зашифрованный раздел командой cryptsetup luksOpen /dev/sdb3 usb_part_open, введите пароль. Раздел инициализируется, как устройство с именем usb_part_open.

image

Выполните команду fdisk –l | grep /dev/ и убедитесь, что устройство /dev/mapper/usb_part_open подключено.

image

Заполните устройство случайными, псевдослучайными числами либо нулями выполнив одну из команд на ваше усмотрение:

dd if=/dev/random of=/dev/mapper/usb_part_open — данная команда заполнит устройство случайными числами. Операция будет выполняться продолжительное время(считать в днях);

dd if=/dev/urandom of=/dev/mapper/usb_part_open — данная команда заполнит устройство псевдослучайными числами. Операция будет выполняться продолжительное время(считать в часах);

dd if=/dev/zero of=/dev/mapper/usb_part_open — заполнение нулями.

image

Выполните форматирование заполненного случайными числами раздела командой mkfs.ext4 /dev/mapper/usb_part_open.

image

Присвойте разделу название “persistence” командой e2label /dev/mapper/usb_part_open persistence.

image

Монтируйте данный раздел к заранее созданной папке, к примеру, /mnt/usb_part командой mount /dev/mapper/usb_part_open /mnt/usb_part (обычно в новых версиях системы данная команда не требуется, раздел автоматически подключается после форматирования и определяется в проводнике).

image

Создайте конфигурационный файл в корне зашифрованного раздела командой echo “/ union” > /mnt/usb_part/persistence.conf.

image

Закройте зашифрованный раздел командой cryptsetup luksClose /dev/mapper/usb_part_open.

image

Перезагрузите систему и выполните вход под Live USB Encrypted Persistence.

image

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

image

Создание зашифрованной системы завершено.

3. Проверка работоспособности


При первой загрузке ОС в режиме Encrypted Persistence на зашифрованном разделе создаются системные файлы и папки, для их просмотра выполните следующие действия:

— Перезагрузите систему в незашифрованном режиме Live(686-pae).

image

— подключите зашифрованный раздел как устройство командой cryptsetup luksOpen /dev/sdb3 usb_part_open.

image

— Откройте проводник и выберите подключенное устройство persistence. Вы увидите созданный ранее конфигурационный файл persistence.conf и системные папки. В папке rw находится наша зашифрованная система, под которой мы загружаемся. Следовательно, в папке rw сохраняются все изменения произведённые в системе загруженной в зашифрованном режиме.

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

image

Спасибо за внимание!
Поделиться с друзьями
-->

Комментарии (18)


  1. zartarn
    24.01.2017 16:30
    +1

    зачем копипаста мануала на хабре?


    1. justhawk
      24.01.2017 16:36

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


      1. iig
        25.01.2017 00:01

        Если висит ружьё (описаны 3 способа заполнения раздела — random, urandom, zero) — ожидается, что оно выстрелит. В смысле в чем разница, кроме времени выполнения?


        1. justhawk
          25.01.2017 00:23

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


          1. iig
            25.01.2017 01:03

            Хотелось больше конкретики. Что можно получить из забитого нулями раздела, зашифрованного AES? Какая атака возможна, если для заполнения использовали нули?


            1. justhawk
              25.01.2017 01:37

              Для заполнения использовал urandom. Разные источники по разному пишут. Вообще сам по себе алгоритм aes очень хорош, поэтому многие утверждают, что диск достаточно забить нулями, но лучше подстраховаться и заполнить по urandom. О возможных атаках судить не могу, но дело это однозначно не быстрое, и результатом её успешного завершение могут служить — расположение зашифрованных фрагментов данных, которые ещё нужно расшифровать. Слишком трудоёмко.


    1. cyber_genius
      24.01.2017 16:49
      +2

      На самом деле у них на сайте не очень толковая инструкция, я когда тоже самое делал пришлось гуглить не мало.


      1. zartarn
        24.01.2017 16:51

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


  1. vlade11115
    24.01.2017 17:07

    А есть инструкция как сделать так же, но ещё и оставить обычный ntfs раздел который будет виден из Windows?


    1. justhawk
      24.01.2017 17:13

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


    1. zartarn
      24.01.2017 18:41

      нешифрованый — делается точно так же почти. шифрованый — как то не нужно было. А вообще вин10 умеет монтировать линуховские фс


  1. Zoomerman
    24.01.2017 20:07
    +1

    Специально зашел в статью, чтобы прочитать мотивы автора к её написанию…
    В интернете много инструкций разбросано частями по разным мануалам — в каждом случае есть уникальные факторы (оборудование, версии ПО и пр.). Так теперь надо на хабр выкладывать компиляции мануалов даже без комментариев что это и зачем нужно?
    А по существу — беглым взглядом видно, что инструкция для черных пентестеров создавалась.
    Хотя и в честной практике она может быть использована, но в каких случаях и кем именно — автор либо не знает, либо…


    1. justhawk
      24.01.2017 20:23

      Черные пентестеры занимаются взломом aes шифрования? И чем написанное мной им в этом поможет? Статья описывает создание зашифрованной флешки, а как её люди будут использовать это уже их дело.


  1. nazarpc
    24.01.2017 21:15

    Было бы не плохо над катом разместить интро о том, что вообще происходит и зачем.


    1. vlade11115
      24.01.2017 21:23

      Kali — система для пентестинга, рекомендуется к установке на live-носители (USB или CD), но тогда по умолчанию недоступно сохранение изменений (настроек например). Для этого существует persistence — постоянное хранение. Но тогда становится небезопасно, поэтому persistence область дополнительно шифруется. В статье мануал по собиранию этого всего добра.


      1. nazarpc
        24.01.2017 21:24

        Это в статью нужно добавить для тех, кто после будет читать.


        1. justhawk
          24.01.2017 21:46

          Разместил информацию в шапке.


  1. DarkTiger
    26.01.2017 12:43

    Ее бы на SD-шную карточку к raspberry Pi засандалить, но тормозить все тогда будет просто страшно, там и без шифрования-то не сахар