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

first_reboot

Настраиваем авторазблокировку

Хо­телось бы не вво­дить пароль при заг­рузке каж­дый раз. Для это­го нуж­но нас­тро­ить авто­раз­бло­киров­ку LUKS с помощью чипа TPM.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

IMG_9567


2. Сам пункт установки, как бы это не было комично, но на нескольких форумах я встречал вопрос о поиске данного пункта, установка предельно проста и интуитивно понятна, по тому я её коснусь вскользь, останавливаясь лишь на нескольких интересных моментах.

IMG_9572

3. В процессе установки нам будет предложено придумать и ввести пароль для суперпользователя (root).

IMG_9573

4. В процессе разметки диска выбираем вариант выделенный мной на изображении " Авто-использовать весь диск с шифрованием LVM ".

IMG_9574

5. Выбираем диск на который мы собираемся устанавливать систему

IMG_9575

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

IMG_9610

8. Запоминаем/записываем разметку, соглашаемся.

IMG_9606

9. И ждём целую кучу времени, в моём случае около 18 часов, пока стирались данные на моём жестком диске.

IMG_9609

10. Во время разметки диска вас попросят придумать и ввести пароль шифрования диска.

IMG_9612

11. После установки ОС "этот пункт я пропустил, так как он практически не отличается от установки любой другой ОС, где только и остаётся нажимать на (продолжить) " и перезагрузки нас встречает вот такой Grub загрузчик, выбираем первый пункт и загружаемся.

13. В консоли появляется (initramfs), для того чтоб загрузить нашу ОС зашифрованную LVM воспользуемся программой для управления шифрованными дисками Cryptsetup.
Внимание! Команды регистро зависимы.

IMG_9614

Вводим в консоль:
(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».

Внимание! Команды регистро зависимы.

IMG_9630

16. Перезагружаемся, выбираем в Grub загрузку ОС и видим просьбу ввести пароль, вводим пароль для загрузки, либо в экстренном случае, вводим фейковый пароль и все данные уничтожены ;)

Послесловие: после чего настраиваем свою ос как обычный Debian, устанавливая нужные нам программы, но уже имея в арсенале множество других, не переживая за сохранность данных в случае кражи или других непредвиденных обстоятельств, используя системы анонимности, редактируя фотографии (raw), играя в игры. ну и конечно перестаём переживать из за вирусов и остальной гадости на просторах великой паутины.

4jjwdo

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

Application → Kali Linux → Reporting Tools → Evidence Management → truecrypt

1

B. Отройте Terminal (Терминал), напечатайте truecrypt и нажмите enter (ввод). Мы видим, что truecrypt был успешно запущен.

1b

2. Это справочное меню. Увидеть это окно можно при использовании GUI-метод открытия, но после него вам придется ввести truecrypt в Терминал для его запуска.

2

3. Для создания нового Volume (Объем) нажмите на ‘Create Volume’ (Создать объем)

3

4. Как вы можете видеть, присутствуют две опции ‘Create an encrypted fine container’ (Создать зашифрованный файловый контейнер) и ‘Create a volume within a partition/drive’ (Создать объем в разделе/на диске). Если вы прочитаете описание, то вы поймете, какая опция подойдет вам. Здесь я просто показывают пример. Также у меня нет Pendrive для форматирования и создания объема. После выбора нужной опции нажмите Next (Далее).

4

5. И вновь, чтобы узнать подробности об опциях, вам следует прочитать описание. Я выбрал ‘Standard TrueCrypt Volume’ (Стандартный объем TrueCrypt). Нажмите Next (Далее).

5

6. В этом окне нужно указать место сохранения объема. Нажмите на Select File (Выбрать файл).

6

7. Выберите расположение, куда вы желаете сохранить объем. Впишите ваше имя и нажмите на Save (Сохранить).

7

8. Нажмите Next (Далее)

8

9. Вы можете выбрать Encryption Algorithm (Алгоритм шифрования). Я буду использовать настройки по умолчанию. Нажмите Next (Далее)

9

10. В этом окне вы можете увидеть ваше Total Free Space (Суммарное свободное пространство). Напишите размер объема. Также вы можете изменить MB на GB или KB. Просто нажмите на MB и выберите из выпадающего меню, затем нажмите Next (Далее).

10

11. Я бы посоветовал вам нажать на ‘Display Password’ (Отображать пароль), тогда вы сможете увидеть, что вы набираете, а затем напишите ваш пароль и нажмите Next (Далее).

11

12. Такое окно появится, если вы использовали короткий пароль, как сделал я. Если прочитать описание в этом окне, то вы заметите, что пароль должен быть длиннее 20 символов. Поэтому, если длина вашего пароля составляет больше, чем 20 символов, то это окно не появится. Нажмите на Yes (Да) для перехода к следующему этапу.

12

13. Нажмите на символ со стрелками «вверх» и «вниз» для просмотра выпадающего меню.

13

14. Как вы можете видеть, у нас есть возможность выбрать Volume filesystem type (Тип файловой системы объема). Выберите то, что вам необходимо, и нажмите Next (Далее).

14

15. В этом окне есть две опции ‘I will mount the volume on other platforms’ (Я буду использовать объем на других платформах) и ‘I will mount the volume only on Linux’ (Я буду использовать объем только в Linux). Прочитайте описания для получения дополнительных сведений, что показано на изображении под каждой из опций.

Здесь я выбираю первую опцию и нажимаю Next (Далее).

15

16. Пожалуйста, внимание на это окошко, потому что оно немного сбивает с толку. Прежде всего, я вам скажу, что если вы выбрали в предыдущем окне ‘I will mount the volume on other Platforms’, то тип вашей файловой системы поменяется на FAT в независимости от того, что вы выбрали ранее (шаг 14), поэтому не удивляйтесь тому, что выбрали ранее Linux Ext2, а объем создался с типом FAT. Нажмите OK.

16

17. Здесь я показываю, что происходит при выборе ‘I will mount the Volume only on Linux’. Как вы можете увидеть в описании, мы не можем использовать этот объем на других платформах за исключением Linux, а также если мы выбираем эту опцию, то не будут появляться окна, связанные с типом файловой системы FAT. Давайте выберем её и нажмем Next (Далее).

17

18. Здесь важно прочитать описание, а затем нажать на Format (Форматировать).

18

19. Поздравляю. Вы успешно создали объем TrueCrypt. Нажмите Ok.

19

20. Нажмите на Exit (Выход)

20

21. Теперь я собираюсь проверить объем, который мы создали. Прежде всего, выберите номер ‘1’ и нажмите на ‘Select File’ (Выбрать файл).

21

22. После нажатия на ‘Select File’ появится это окно. Теперь определите расположение сохраненного объема, выберите его и нажмите на Open (Открыть).

22

23. Нажмите на Mount (Монтировать)

23

24. До написания вашего пароля нажмите на ‘Display Password’ (Показывать пароль), установив соответствующую галочку, чтобы видеть, что вы набираете. Теперь введите ваш пароль и нажмите Ok.

24

25. Теперь нажмите правой кнопкой мыши на пути к объему, а затем на Open (Открыть)

25

26. Мы успешно смонтировали объем.

26

27. Если вы хотите размонтировать объем, то просто нажмите на Dismount (Размонтировать).

Читайте также: