Kali linux шифрование диска
Обновлено: 04.07.2024
Немногие дистрибутивы Linux имеют такое громкое имя в мире ИТ-безопасности, как Kali Linux. Хотя это современная система с рядом инструментов для тестирования на проникновение и криминалистического анализа - в конечном итоге только от нас зависит, для каких целей мы будем ее использовать.
Kali является последователем BackTrack Linux - за его развитием стоит наступательная безопасность. Вся продукция этой компании используется в целях безопасности, включая обучение и сертификацию. Ее клиентами являются такие организации, как IBM, Армия США, ВВС США, Amazon, JP Morgan и другие.
Этот дистрибутив работает на широком диапазоне HW (включая устройства ARM), но не предъявляет к нему слишком высоких требований. Основная цель этого Linux - не ежедневная надежная работа на загруженном сервере или рабочем столе. Предполагается скорее краткосрочный запуск live-версии с USB или другого носителя. Завершите задание, исчезните и не оставите следа - Кали в этом на вершине. Слоган также о многом говорит: «Чем тише ты становишься, тем больше слышишь». Практически все в этом дистрибутиве является секретным и эффективно использует инструменты проникновения или криминалистики.
Если вы новичок в Linux, вы ожидаете, что после установки сразу же появятся игры, офисные пакеты, графика и другие функции, которые Kali унаследует от своего родительского Debian, и возможно, выбрав что-то из другого дистрибутива.
Система также может быть размещена на зашифрованных дисках или дисках BTRFS, по умолчанию она предлагает инструменты виртуализации виртуальных машин - VMware, VirtualBox, Hyper-V и Vagrant, а также контейнерные технологии Docker и LXC / LXD. Она использует Digital Ocean для облачных решений. Список предлагаемых инструментов расширяется с каждой последующей редакцией Kali. Что касается версий, отметим еще «Роллинг релизную модель», которой разработчики решили следовать. Это логично, мы не ожидаем от этого Linux «знаменитой» стабильности Debian, а, наоборот - стабильности от последних версий инструментов. Они часто содержат ошибки, но также содержат новые полезные функции программ. Текущая версия дистрибутива - 2021.1 и содержит ядро 5.10.0.
Из других особенностей Kali Linux определенно стоит упомянуть следующие:
В дистрибутиве хорошо проработанная документация. Кроме того, вы можете бесплатно скачать книгу, описывающую основы работы с ней. Выше мы уже упоминали о возможности прохождения различных видов обучения или сертификации.
Kali Linux не является типичным «хакерским» дистрибутивом. Если мы хотим запустить, например, какой-то тест на проникновение, мы не готовим его на лотке после одного щелчка. Нам нужно уметь находить его хотя бы по назначению, а также уметь его использовать.
Множество пакетов из репозиториев Debian и сама система позволяют вам настраивать ее по своему вкусу, но стоит ли терять конфиденциальность вашей машины? В конце концов, это и есть цель Kali - быть самым тихим и универсальным «носителем» средств безопасности.
Не могу не думать, что Kali Linux напоминает мне авианосец будущего. Во время развертывания он практически незаметен и не только имеет огромный «оружейный» арсенал программ, но и идеально подходит для их проецирования куда-либо еще. Таким образом, он сохраняет - или приобретает - контроль над целыми областями ИТ-среды.
Шифрование дисков в Linux реализуется с помощью подсистемы dm-crypt Crypto API (встроено в ядро начиная с версии 2.6). Подсистема dm-crypt работает благодаря модулю ядра, который отображает шифрованный диск в виртуальное устройство. На вид оно ничем не отличается от обычного блочного устройства хранения данных. Для управления ключами шифрования используется раздел LUKS (Linux Unified Key Setup). Формат LUKS позволяет использовать до восьми ключей шифрования для одного раздела.
Как устроен раздел LUKS
Раздел LUKS имеет следующий формат.
Он начинается с заголовка phdr , далее за ним следуют слоты с ключевыми данными (KM1, KM2, . KM8). За ключевыми данными располагаются данные, шифрованные мастер‑ключом.
Заголовок phdr хранит информацию о протоколе и режиме шифрования, длину ключей, идентификатор UUID и контрольную сумму мастер‑ключа.
В LUKS для одного зашифрованного раздела зарезервировано восемь слотов, в каждом из которых может храниться отдельный ключ. Любой из восьми ключей может быть использован для расшифровки раздела.
Заголовок и слоты ключей можно хранить на другом физическом носителе, отдельно от зашифрованных данных, тем самым реализуя многофакторную защиту. Но при утрате заголовка или слотов получить доступ к зашифрованным данным становится невозможно.
Для управления шифрованием дисков используется утилита cryptsetup.
С помощью этой утилиты возможно:
- создавать шифрованные разделы LUKS;
- открывать и закрывать разделы LUKS;
- управлять слотами ключей;
- дампить заголовок LUKS и мастер‑ключ.
Для работы cryptsetup требуются права суперпользователя и пароль шифрования.
Шифруем
Переходим к практике! Шифровать мы будем только рутовый раздел. Есть, конечно, экзотические кейсы, когда, помимо раздела root , шифруется еще и раздел boot , но такая конфигурация поддерживается не всеми загрузчиками и не считается стандартной и рекомендованной. Мы же вообще не будем использовать загрузчик, так что оставляем boot в покое и шифруем все остальное.
Начнем собирать нашу систему, загрузившись с установочного диска.
Для начала разметим диск следующим образом: sda1 для / boot , sda2 для / . Схему разделов выбираем GPT.
$ parted / dev/ sda mklabel gpt mkpart primary fat32 1MiB 501MiB
$ parted / dev/ sda set 1 esp on
$ parted / dev/ sda mkpart primary btrfs 501MiB 100%
Далее создадим наш LUKS на sda2.
$ cryptsetup luksFormat / dev/ sda2
WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda2:
Verify passphrase:
cryptsetup luksFormat /dev/sda2 18.16s user 1.88s system 80% cpu 24.742 total
Взглянем теперь на LUKS.
$ cryptsetup luksDump / dev/ sda2
LUKS header information
Version: 2
Epoch: 3
Metadata area: 16384 [bytes]
Keyslots area: 16744448 [bytes]
UUID: e04b5b87-6bfc-4f73-83b0-36f91d52f141
Label: (no label)
Subsystem: (no subsystem)
Flags: (no flags)
Data segments:
0: crypt
offset: 16777216 [bytes]
length: (whole device)
cipher: aes-xts-plain64
sector: 512 [bytes]
Keyslots:
0: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
PBKDF: argon2i
Time cost: 7
Memory: 483194
Threads: 2
Salt: a8 d7 82 ce 89 c8 0f d6 29 18 83 e5 5d 9d a7 f1
a2 6d 66 81 70 db c4 82 cc fb ae 81 4c 7f ed 0c
AF stripes: 4000
AF hash: sha256
Area offset:32768 [bytes]
Area length:258048 [bytes]
Digest ID: 0
Tokens:
Digests:
0: pbkdf2
Hash: sha256
Iterations: 149967
Salt: 87 ac 6f 61 75 fb 91 14 63 5d ca 5d 1c 25 ef 42
7b af 51 63 34 eb 26 d5 d7 be 7a 78 7b 2a 25 f1
Digest: da e7 fd 26 59 85 5d 5e 34 79 2a fa 20 95 f1 83
13 10 0d 0e a3 58 a6 0e 33 b0 f0 73 e8 0a a1 1e
Видно, что мы задействовали один из восьми доступных слотов с ключами — доступ к нему ограничен паролем.
Алгоритм шифрования по умолчанию ( aes-xts-plain64 ) нас устроит. Перечень всех поддерживаемых алгоритмов зависит от ядра (загляни в / proc/ crypto ). Можно протестировать работу с ними.
$ cryptsetup open / dev/ sda2 cryptroot
Enter passphrase for /dev/sda2:
После этих манипуляций у нас в системе стал доступен новый раздел cryptroot .
$ lsblk / dev/ sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 8G 0 disk
├─sda1 8: 1 0 500M 0 part
└─sda2 8: 2 0 7. 5G 0 part
└─cryptroot 253: 0 0 7. 5G 0 crypt
Создадим на разделах файловые системы.
Для продолжения установки примонтируем наши разделы.
$ mount / dev/ mapper/ cryptroot / mnt -o subvol = @root, ssd, noatime, space_ cache, compress = zstd $ mount / dev/ mapper/ cryptroot / mnt/ home -o subvol = @home, ssd, noatime, space_ cache, compress = zstdЗаглядывая одним глазом в вики, устанавливаем систему обычным образом.
Не забудем включить хук encrypt при создании initramfs .
HOOKS =( base udev autodetect keyboard keymap modconf block encrypt filesystems )Финальный этап — настройка UEFI для загрузки нашего ядра. Напоминаю, что мы обойдемся без GRUB и будем загружать ядро напрямую, используя фичу EFISTUB.
Добавляем запись в UEFI.
--unicode 'cryptdevice=/ dev/ sda2: cryptroot root=/ dev/ mapper/ cryptroot rootflags=subvol=@root rw initrd=\ initramfs-linux. img' \Особое внимание обрати на параметры ядра! Без них система просто не сможет найти шифрованный раздел.
Перезагружаемся и убеждаемся, что все работает, как мы хотели: на этапе загрузки требуется ввод пароля для расшифрования раздела.
first_reboot
Настраиваем авторазблокировку
Хотелось бы не вводить пароль при загрузке каждый раз. Для этого нужно настроить авторазблокировку LUKS с помощью чипа TPM.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
2. Сам пункт установки, как бы это не было комично, но на нескольких форумах я встречал вопрос о поиске данного пункта, установка предельно проста и интуитивно понятна, по тому я её коснусь вскользь, останавливаясь лишь на нескольких интересных моментах.
3. В процессе установки нам будет предложено придумать и ввести пароль для суперпользователя (root).
4. В процессе разметки диска выбираем вариант выделенный мной на изображении " Авто-использовать весь диск с шифрованием LVM ".
5. Выбираем диск на который мы собираемся устанавливать систему
7. Выбираем способ разметки, по моему мнению первый пункт вполне подходит под наши нужды, в том числе упрощает установку без необходимости самому назначать размеры каталогов\разделов.
8. Запоминаем/записываем разметку, соглашаемся.
9. И ждём целую кучу времени, в моём случае около 18 часов, пока стирались данные на моём жестком диске.
10. Во время разметки диска вас попросят придумать и ввести пароль шифрования диска.
11. После установки ОС "этот пункт я пропустил, так как он практически не отличается от установки любой другой ОС, где только и остаётся нажимать на (продолжить) " и перезагрузки нас встречает вот такой Grub загрузчик, выбираем первый пункт и загружаемся.
13. В консоли появляется (initramfs), для того чтоб загрузить нашу ОС зашифрованную LVM воспользуемся программой для управления шифрованными дисками Cryptsetup.
Внимание! Команды регистро зависимы.
Вводим в консоль:
(initramfs) crypysetup luksOpen /dev/sda5 sda1_crypt
*после чего вас просят ввести пароль для зашифрованного раздела: Enter passphrase for /dev/sda5:
(initramfs) lvm vgchange -ay
(появляются активированные зашифрованные разделы): 2 logical volume(s) in volume group "kali" now active
(initramfs) exit
15. И конечно глупо не воспользоваться функцией которую предоставляет Kali Linux: пароль-разрушитель, ввод которого приведет к уничтожению, а не дешифровке данных с вашего диска во время загрузки системы , в случае если введён неправильный (экстренный пароль) «Emergency self-destruction of LUKS».
Внимание! Команды регистро зависимы.
16. Перезагружаемся, выбираем в Grub загрузку ОС и видим просьбу ввести пароль, вводим пароль для загрузки, либо в экстренном случае, вводим фейковый пароль и все данные уничтожены ;)
Послесловие: после чего настраиваем свою ос как обычный Debian, устанавливая нужные нам программы, но уже имея в арсенале множество других, не переживая за сохранность данных в случае кражи или других непредвиденных обстоятельств, используя системы анонимности, редактируя фотографии (raw), играя в игры. ну и конечно перестаём переживать из за вирусов и остальной гадости на просторах великой паутины.
TrueCrypt – это программное обеспечение для выполнения и обработки «на лету» зашифрованного объема (запоминающее устройство). Шифрование «на лету» означает, что данные автоматические шифруются перед сохранением и дешифруются после загрузки без вмешательства со стороны пользователя. Данные, сохраненные в зашифрованном объеме, не могут быть прочитаны (дешифрованы) без использования правильного пароля/файла (файлов) ключей или правильных ключей шифрования. Вся файловая система зашифрована (например, имена файлов, имена папок, содержание каждого из файлов, свободное пространство, метаданные и т.д.)
Application → Kali Linux → Reporting Tools → Evidence Management → truecrypt
B. Отройте Terminal (Терминал), напечатайте truecrypt и нажмите enter (ввод). Мы видим, что truecrypt был успешно запущен.
2. Это справочное меню. Увидеть это окно можно при использовании GUI-метод открытия, но после него вам придется ввести truecrypt в Терминал для его запуска.
3. Для создания нового Volume (Объем) нажмите на ‘Create Volume’ (Создать объем)
4. Как вы можете видеть, присутствуют две опции ‘Create an encrypted fine container’ (Создать зашифрованный файловый контейнер) и ‘Create a volume within a partition/drive’ (Создать объем в разделе/на диске). Если вы прочитаете описание, то вы поймете, какая опция подойдет вам. Здесь я просто показывают пример. Также у меня нет Pendrive для форматирования и создания объема. После выбора нужной опции нажмите Next (Далее).
5. И вновь, чтобы узнать подробности об опциях, вам следует прочитать описание. Я выбрал ‘Standard TrueCrypt Volume’ (Стандартный объем TrueCrypt). Нажмите Next (Далее).
6. В этом окне нужно указать место сохранения объема. Нажмите на Select File (Выбрать файл).
7. Выберите расположение, куда вы желаете сохранить объем. Впишите ваше имя и нажмите на Save (Сохранить).
8. Нажмите Next (Далее)
9. Вы можете выбрать Encryption Algorithm (Алгоритм шифрования). Я буду использовать настройки по умолчанию. Нажмите Next (Далее)
10. В этом окне вы можете увидеть ваше Total Free Space (Суммарное свободное пространство). Напишите размер объема. Также вы можете изменить MB на GB или KB. Просто нажмите на MB и выберите из выпадающего меню, затем нажмите Next (Далее).
11. Я бы посоветовал вам нажать на ‘Display Password’ (Отображать пароль), тогда вы сможете увидеть, что вы набираете, а затем напишите ваш пароль и нажмите Next (Далее).
12. Такое окно появится, если вы использовали короткий пароль, как сделал я. Если прочитать описание в этом окне, то вы заметите, что пароль должен быть длиннее 20 символов. Поэтому, если длина вашего пароля составляет больше, чем 20 символов, то это окно не появится. Нажмите на Yes (Да) для перехода к следующему этапу.
13. Нажмите на символ со стрелками «вверх» и «вниз» для просмотра выпадающего меню.
14. Как вы можете видеть, у нас есть возможность выбрать Volume filesystem type (Тип файловой системы объема). Выберите то, что вам необходимо, и нажмите Next (Далее).
15. В этом окне есть две опции ‘I will mount the volume on other platforms’ (Я буду использовать объем на других платформах) и ‘I will mount the volume only on Linux’ (Я буду использовать объем только в Linux). Прочитайте описания для получения дополнительных сведений, что показано на изображении под каждой из опций.
Здесь я выбираю первую опцию и нажимаю Next (Далее).
16. Пожалуйста, внимание на это окошко, потому что оно немного сбивает с толку. Прежде всего, я вам скажу, что если вы выбрали в предыдущем окне ‘I will mount the volume on other Platforms’, то тип вашей файловой системы поменяется на FAT в независимости от того, что вы выбрали ранее (шаг 14), поэтому не удивляйтесь тому, что выбрали ранее Linux Ext2, а объем создался с типом FAT. Нажмите OK.
17. Здесь я показываю, что происходит при выборе ‘I will mount the Volume only on Linux’. Как вы можете увидеть в описании, мы не можем использовать этот объем на других платформах за исключением Linux, а также если мы выбираем эту опцию, то не будут появляться окна, связанные с типом файловой системы FAT. Давайте выберем её и нажмем Next (Далее).
18. Здесь важно прочитать описание, а затем нажать на Format (Форматировать).
19. Поздравляю. Вы успешно создали объем TrueCrypt. Нажмите Ok.
20. Нажмите на Exit (Выход)
21. Теперь я собираюсь проверить объем, который мы создали. Прежде всего, выберите номер ‘1’ и нажмите на ‘Select File’ (Выбрать файл).
22. После нажатия на ‘Select File’ появится это окно. Теперь определите расположение сохраненного объема, выберите его и нажмите на Open (Открыть).
23. Нажмите на Mount (Монтировать)
24. До написания вашего пароля нажмите на ‘Display Password’ (Показывать пароль), установив соответствующую галочку, чтобы видеть, что вы набираете. Теперь введите ваш пароль и нажмите Ok.
25. Теперь нажмите правой кнопкой мыши на пути к объему, а затем на Open (Открыть)
26. Мы успешно смонтировали объем.
27. Если вы хотите размонтировать объем, то просто нажмите на Dismount (Размонтировать).
Читайте также: