Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране
Актуализирано собствено ръководство за криптиране на пълен диск в Runet V0.2.

Каубойска стратегия:

[A] Windows 7 блокира системното криптиране на инсталираната система;
[B] GNU/Linux блоково системно криптиране (Debian) инсталирана система (включително /boot);
[C] Настройка на GRUB2, защита на буутлоудъра с цифров подпис/удостоверяване/хеширане;
[D] почистване - унищожаване на некриптирани данни;
[E] универсално архивиране на криптирана ОС;
[F] атака <в [C6]> цел - GRUB2 товарач;
[G] Полезна документация.

╭───Схема #стая 40# :
├──╼ Инсталиран Windows 7 - пълно системно криптиране, не скрито;
├──╼ Инсталиран GNU/Linux (Debian и производни дистрибуции) - пълното криптиране на системата не е скрито(/, включително /boot; swap);
├──╼ независими буутлоудъри: VeraCrypt буутлоудър, инсталиран в MBR, GRUB2 буутлоудър, инсталиран в разширен дял;
├──╼ не е необходимо инсталиране/преинсталиране на ОС;
└──╼ използван криптографски софтуер: VeraCrypt; Криптонастройка; gnupg; морско конче; hashdeep; GRUB2 - Безплатно/Безплатно.

Горната схема частично решава проблема с „дистанционното зареждане на флаш устройство“, позволява ви да се наслаждавате на криптирана Windows / Linux OS и да обменяте данни чрез „криптиран канал“ от една операционна система към друга.

Ред за зареждане на компютър (една от опциите):

  • включване на машината;
  • изтегляне на програмата за зареждане на VeraCrypt (правилното въвеждане на парола ще продължи да зарежда Windows 7);
  • натискането на клавиша "Esc" ще зареди GRUB2 буутлоудъра;
  • GRUB2 буутлоудър (избор на дистрибуция/GNU/Linux/CLI), ще изисква удостоверяване на GRUB2 суперпотребител <login/password>;
  • след успешно удостоверяване и избор на дистрибуция, ще трябва да въведете парола, за да отключите "/boot/initrd.img";
  • след въвеждане на правилни пароли в GRUB2 "изисква се" въвеждане на парола (трета по ред парола за BIOS или парола за потребителски акаунт в GNU/Linux - не се взема предвид) за отключване и зареждане на GNU/Linux OS или автоматична замяна на секретния ключ (две пароли + ключ или парола + ключ);
  • външно проникване в конфигурацията на GRUB2 ще замрази процеса на зареждане на GNU/Linux.

Проблемно? Добре, нека да автоматизираме процесите.

При разделяне на твърд диск (MBR таблица) Един компютър може да има не повече от 4 основни дяла или 3 основни и един разширен, както и неразпределена област. Разширен раздел, за разлика от основния, може да съдържа подраздели. (логически дискове=разширен дял). С други думи, „разширеният дял“ на HDD замества LVM за текущата задача: пълно системно криптиране. Ако вашият диск е разделен на 4 основни дяла, трябва да използвате lvm или transform (с форматиране) раздел от основен към разширен или компетентно използвайте всичките четири раздела и оставете всичко както е, като получите желания резултат. Дори ако имате само един дял на вашия диск, Gparted ще ви помогне да разделите вашия твърд диск (за допълнителни секции) без загуба на данни, но все пак с малка цена за такива действия.

Схемата на разположението на твърдия диск, спрямо който ще бъде вербализирана цялата статия, е представена в таблицата по-долу.

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране
Таблица (№ 1) на раздели 1TB.

Трябва да имате нещо подобно.
sda1 - основен дял #1 NTFS (криптиран);
sda2 - маркер за разширена секция;
sda6 - логическо устройство (на него е инсталиран буутлоудърът GRUB2);
sda8 - суап (криптиран суап файл / не винаги);
sda9 - тест логически диск;
sda5 - логическо устройство за любопитните;
sda7 - GNU/Linux OS (пренесена OS към криптирано логическо устройство);
sda3 - основен дял #2 с Windows 7 (криптиран);
sda4 - основен дял #3 (съдържа некриптиран GNU / Linux, използван за архивиране / не винаги).

[A] Windows 7 Block System Encryption

A1. VeraCryptПълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Изтеглите от официалния сайтили от огледало SourceForge инсталационна версия на криптографския софтуер VeraCrypt (към момента на публикуване на v1.24-Update3 преносимата версия на VeraCrypt не е подходяща за системно криптиране). Проверете контролната сума на изтегления софтуер

$ Certutil -hashfile "C:VeraCrypt Setup 1.24.exe" SHA256

и сравнете резултата с публикувания CS на уебсайта на разработчика на VeraCrypt.

Ако е инсталиран софтуер HashTab, още по-лесно: RMB (VeraCrypt Setup 1.24.exe)-свойства-хеш сума на файловете.

За да проверите подписа на програмата, софтуерът и публичният pgp ключ на разработчика трябва да бъдат инсталирани в системата gnuPG; gpg4win.

A2. Инсталиране/стартиране на софтуера VeraCrypt с права на администраторПълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

A3. Избор на опции за системно криптиране за активния дялVeraCrypt - Система - Шифроване на системния дял/устройство - Нормално - Шифроване на системния дял на Windows - Мултистартиране - (предупреждение: „Не се препоръчва на неопитни потребители да използват този метод“ и това е вярно, съгласете се с „Да“) – Зареждащ диск („да“, дори и да не е така, все пак „да“) – Брой системни устройства „2 или повече“ – Множество системи на едно устройство „Да“ – Не-Windows буутлоудър „Не“ (всъщност „Да“, но зареждащите устройства на VeraCrypt/GRUB2 няма да споделят MBR помежду си, по-точно само най-малката част от кода на зареждащия файл се съхранява в MBR/зареждащата песен, основната му част се намира във файла система) – Multiboot – Настройки за криптиране…

Ако се отклоните от горните стъпки (схеми на блокови системни шифри), тогава VeraCrypt ще издаде предупреждение и няма да позволи дялът да бъде криптиран.

Следващата стъпка към целенасочена защита на данните е да се проведе „Тест“ и да се избере алгоритъм за криптиране. Ако имате остарял процесор, алгоритъмът за криптиране Twofish най-вероятно ще бъде най-бързият. Ако процесорът е мощен, ще забележите разликата: AES - криптирането според резултатите от теста ще бъде няколко пъти по-бързо от неговите крипто конкуренти. AES е популярен алгоритъм за криптиране, хардуерът на съвременните процесори е специално оптимизиран за "тайно" и "хакване".

VeraCrypt поддържа възможността за криптиране на дискове с AES каскада(две рибки)/ и други комбинации. На стар ядрен процесор на Intel преди десет години (без поддръжка на AES хардуер, A/T каскадно криптиране) влошаването на производителността е по същество незабележимо. (за AMD CPU от същата епоха/~параметри, производителността е леко намалена). ОС работи в динамика и потреблението на ресурси за прозрачно криптиране е незабележимо. За разлика, например, от забележим спад в производителността поради инсталираната тестова нестабилна среда на работния плот Mate v1.20.1 (или v1.20.2 не помня точно) в GNU/Linux или поради работата на рутинната телеметрия в Windows7↑. Обикновено сложните потребители извършват тестове за производителност на хардуера преди криптиране. Например, в Aida64 / Sysbench / systemd-analyze обвиняват и сравняват с резултатите от същите тестове, след като системата е била криптирана, като по този начин опровергават мита „системното криптиране е вредно“ за самите тях. Забавянето на машината и неудобството се забелязват при архивиране / възстановяване на криптирани данни, тъй като самата операция "архивиране на системни данни" не се измерва в ms, а се добавят същите <decrypt / encrypt on the fly>. В крайна сметка всеки потребител, на когото е позволено да се занимава с криптография, постига баланс между алгоритъма за криптиране във връзка с удовлетворението от задачите, степента на тяхната параноя и лекотата на използване.

По-добре е да оставите параметъра PIM по подразбиране, така че да не въвеждате точните стойности на итерация всеки път, когато зареждате операционната система. VeraCrypt използва огромен брой итерации, за да създаде наистина „бавен хеш“. Атака срещу такъв "крипто охлюв" с помощта на метода Brute force/rainbow tables има смисъл само с кратка "проста" парола и личен списък с кодове на жертвата. Плащане за силата на паролата - забавянето на въвеждането на правилната парола при зареждане на ОС (монтирането на VeraCrypt томове на GNU/Linux е значително по-бързо).
Безплатен софтуер за атаки с груба сила (извличане на парола от заглавката на диска VeraCrypt/LUKS) hashcat. John the Ripper не знае как да „разбие Veracrypt“ и когато работи с LUKS, той не разбира криптографията на Twofish.

Благодарение на криптографската сила на алгоритмите за криптиране, неудържимите шифровци разработват софтуер с различен вектор на атака. Например извличане на метаданни/ключове от RAM (студена обувка/DMA атака), за тази цел има специализиран безплатен и несвободен софтуер.

В края на конфигурацията/генерирането на „уникални метаданни“ на криптирания активен дял, VeraCrypt ще предложи рестартиране на компютъра и тестване на производителността на неговия буутлоудър. След рестартиране / стартиране на Windows, VeraCrypt ще се зареди в режим на готовност, остава само да потвърдите процеса на криптиране - Y.

На последната стъпка от криптирането на системата, VeraCrypt ще предложи да създаде резервно копие на заглавката на активния криптиран дял под формата на "veracrypt rescue disk.iso" - трябва да го направите - в този софтуер такава операция е изискване (в LUKS, като изискване - това за съжаление е пропуснато, но е подчертано в документацията). Спасителният диск е полезен за всички, но за някой повече от веднъж. Загуба (пренаписване на заглавка/MBR) архивирането на заглавката ще откаже за постоянно достъп до дешифрирания дял с OS Windows.

A4. Създайте спасителен usb/диск VeraCryptПо подразбиране VeraCrypt предлага запис на "метаданни ~2-3MB" на компактдиск, но не всички хора имат дискове или DWD-ROM устройства и създаването на стартиращо флаш устройство "VeraCrypt Rescue disk" ще бъде техническа изненада за някого: Rufus / GUIdd-ROSA ImageWriter и друг подобен софтуер - няма да може да се справи със задачата, защото в допълнение към копирането на изместените метаданни на стартиращо флаш устройство, трябва да копирате / поставите от изображението извън файловата система на usb устройството, накратко, правилно копирайте MBR / пътя към ключодържателя. От операционната система GNU / Linux можете да създадете стартиращо флаш устройство с помощта на помощната програма „dd“, като гледате тази табела.

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Създаването на спасителен диск в среда на Windows е различно. Разработчикът на VeraCrypt не е включил решението на този проблем в официалното издание документация на „спасителния диск“, но предложи решение по различен начин: той публикува допълнителен софтуер за създаване на „usb спасителен диск“ в свободен достъп на своя форум на VeraCrypt. Архиваторът за този софтуер на Windows е „създаване на спасителен диск за usb veracrypt“. След запазване на спасителния disk.iso ще започне процесът на блоково системно криптиране на активния дял. По време на криптиране работата на ОС не спира, не е необходимо рестартиране на компютъра. След завършване на операцията по криптиране, активният дял става напълно криптиран, можете да го използвате. Ако програмата за зареждане на VeraCrypt не се появи при стартиране на компютъра и операцията по възстановяване на заглавката не помогне, след това проверете флага „зареждане“, той трябва да бъде настроен на дяла, където присъства Windows (независимо от криптиране и други операционни системи, вижте таблица № 1).
Това завършва описанието на криптирането на блокова система с Windows OS.

[B]ЛУКС. GNU/Linux криптиране (~Debian) инсталирана ОС. Алгоритъм и стъпки

За да шифровате инсталирана дистрибуция, получена от Debian, трябва да картографирате подготвения дял към виртуално блоково устройство, да го преместите към картографирано GNU/Linux устройство и да инсталирате/конфигурирате GRUB2. Ако нямате гол сървър и цените времето си, тогава трябва да използвате GUI и повечето команди на терминала, описани по-долу, са предназначени да се изпълняват в "режим Chuck-Norris".

B1. Стартиране на компютър от живо USB GNU/Linux

„Извършете криптотест на производителността на хардуера“

lscpu && сryptsetup benchmark

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Ако сте щастлив собственик на мощна кола с хардуерна поддръжка на AES, тогава числата ще изглеждат като дясната страна на терминала, ако сте щастливи, но с антично желязо, те ще изглеждат като лявата страна.

B2. Оформление на диска. монтиране/форматиране на fs на HDD логическия диск в Ext4 (Gparted)

B2.1. Създаване на шифрован заглавен дял на sda7За да опиша имената на дяловете, по-нататък, ще бъда в съответствие с моята таблица на дяловете, изложена по-горе. Според оформлението на вашия диск трябва да замените собствените си имена на дялове.

Картографиране на шифроване на логическо устройство (/dev/sda7 > /dev/mapper/sda7_crypt).
# Лесно създаване на "LUKS-AES-XTS дял"

cryptsetup -v -y luksFormat /dev/sda7

Настроики:

* luksFormat - инициализация на LUKS хедър;
* -y -парола (не ключ/файл);
* -v - вербализация (извеждане на информация в терминала);
* /dev/sda7 - вашето логическо устройство от разширения дял (където се планира GNU/Linux пренасяне/криптиране).

Алгоритъм за криптиране по подразбиране <LUKS1: aes-xts-plain64, ключ: 256 бита, хеширане на LUKS заглавка: sha256, RNG: /dev/urandom> (зависи от версията на cryptsetup).

#Проверка default-алгоритма шифрования
cryptsetup  --help #самая последняя строка в выводе терминала.

Ако няма хардуерна поддръжка за AES на процесора, най-добрият избор би бил да създадете разширен "LUKS-Twofish-XTS-дял".

B2.2. Разширено създаване на "LUKS-Twofish-XTS-дял"

cryptsetup luksFormat /dev/sda7 -v -y -c twofish-xts-plain64 -s 512 -h sha512 -i 1500 --use-urandom

Настроики:
* luksFormat - инициализация на LUKS хедър;
* /dev/sda7 е вашето бъдещо криптирано логическо устройство;
* -v вербализирам;
* -y парола;
* -c избор на алгоритъм за криптиране на данни;
* -s размер на ключа за криптиране;
* -h хеширащ алгоритъм/криптофункция, използва се RNG (—използване-urandom) за генериране на ключ за криптиране/декриптиране на уникален логически дисков хедър, ключ за вторичен хедър (XTS); уникален главен ключ, съхранен в заглавката на шифрования диск, вторичен XTS ключ, всички тези метаданни и рутина за криптиране, която, използвайки главния ключ и вторичния XTS ключ, криптира/дешифрира всички данни в дяла (с изключение на заглавието на раздела) се съхраняват в ~3MB на избрания дял на твърдия диск.
* -i повторения в милисекунди, вместо "количество" (закъснението при обработката на паролата влияе върху зареждането на ОС и криптографската сила на ключовете). За да поддържате баланса на криптографската сила с проста парола като "russian", трябва да увеличите стойността -(i), със сложна парола като "?8dƱob/øfh", стойността може да бъде намалена.
* --use-urandom генератор на произволни числа, генерира ключове и сол.

След картографиране на дяла sda7 > sda7_crypt (операцията е бърза, тъй като се създава криптиран хедър с ~3 MB метаданни и това е всичко), трябва да форматирате и монтирате файловата система sda7_crypt.

Б2.3. Картографиране

cryptsetup open /dev/sda7 sda7_crypt
#выполнение данной команды запрашивает ввод секретной парольной фразы.

настроики:
* отворено - съпоставете секцията "с името";
* /dev/sda7 - логическо устройство;
* sda7_crypt - съпоставяне на имена, което се използва за монтиране на криптирания дял или за инициализиране при зареждане на операционната система.

B2.4. Форматиране на файловата система sda7_crypt в ext4. Монтиране на диск в ОС(Забележка: Gparted вече няма да работи с шифрован дял)

#форматирование блочного шифрованного устройства
mkfs.ext4 -v -L DebSHIFR /dev/mapper/sda7_crypt 

настроики:
* -v - вербализация;
* -L - етикет на диска (който се показва в Explorer сред другите дискове).

След това трябва да монтирате виртуално криптирано блоково устройство /dev/sda7_crypt в системата

mount /dev/mapper/sda7_crypt /mnt

Работата с файлове в папката /mnt автоматично ще криптира/декриптира данните в sda7.

По-удобно за картографиране и монтиране на дял във File Explorer (наутилус/caja GUI), дялът вече ще бъде в списъка за избор на диск, остава само да въведете парола за отваряне / дешифриране на диска. Картираното име ще бъде избрано автоматично и не "sda7_crypt", а нещо като /dev/mapper/Luks-xx-xx…

B2.5. Архивиране на заглавката на диска (метаданни ~3mb)Един от най-големите важно операции, които трябва да се извършат без забавяне - резервно копие на заглавката "sda7_crypt". Ако презапишете/повредите заглавката (например инсталиране на GRUB2 на sda7 дял и т.н.), криптираните данни ще бъдат загубени завинаги без никаква възможност за възстановяване, тъй като няма да е възможно повторно генериране на същите ключове, ключовете се създават уникални.

#Бэкап заголовка раздела
cryptsetup luksHeaderBackup --header-backup-file ~/Бэкап_DebSHIFR /dev/sda7 

#Восстановление заголовка раздела
cryptsetup luksHeaderRestore --header-backup-file <file> <device>

настроики:
* luksHeaderBackup --header-backup-file - команда за архивиране;
* luksHeaderRestore --header-backup-file - команда за възстановяване;
* ~/Backup_DebSHIFR - архивен файл;
* /dev/sda7 - дялът, чийто криптиран дисков хедър трябва да бъде архивиран.
На тази стъпка <създаване и редактиране на шифрован дял> е завършено.

B3. Миграция на GNU/Linux OS (sda4) към шифрования дял (sda7)

Създайте папка /mnt2 (Забележка - все още работим с live usb, sda7_crypt е монтиран към /mnt)и монтирайте нашия GNU/Linux към /mnt2, който трябва да бъде криптиран.

mkdir /mnt2
mount /dev/sda4 /mnt2

Извършваме правилното прехвърляне на ОС с помощта на софтуера Rsync

rsync -avlxhHX --progress /mnt2/ /mnt

Опциите на Rsync са описани в раздел E1.

Освен това, необходимо дефрагментиране на дисков дял

e4defrag -c /mnt/ #после проверки, e4defrag выдаст, что степень дефрагментации раздела~"0", это заблуждение, которое может вам стоить существенной потери производительности!
e4defrag /mnt/ #проводим дефрагментацию шифрованной GNU/Linux

Направете си правило да правите e4defrag на криптиран GNU/LInux от време на време, ако имате HDD.
Мигрирането и синхронизирането [GNU/Linux > GNU/Linux-шифровано] е завършено на тази стъпка.

НА 4. Настройване на GNU/Linux на шифрован sda7 дял

След успешно прехвърляне на ОС /dev/sda4 > /dev/sda7, трябва да влезете в GNU/Linux на шифрован дял и да извършите допълнителна конфигурация (без рестартиране на компютъра) по отношение на криптираната система. Тоест да е в live usb, но да изпълнява команди "спрямо рута на криптираната ОС." Симулирайте подобна ситуация ще бъде "chroot". За бързо получаване на информация от коя ОС работите в момента (криптирани или не, тъй като данните в sda4 и sda7 са синхронизирани), десинхронизирайте операционните системи. Създавайте в главните директории (sda4/sda7_crypt) празни файлове с токени, като /mnt/encryptedOS и /mnt2/decryptedOS. Бързо проверете на каква операционна система сте (включително за в бъдеще):

ls /<Tab-Tab>

B4.1. „Симулация на влизане в криптирана операционна система“

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

B4.2. Проверка дали работата се извършва спрямо криптираната система

ls /mnt<Tab-Tab> 
#и видим файл "/шифрованнаяОС"

history
#в выводе терминала должна появиться история команд su рабочей ОС.

B4.3. Създаване/конфигуриране на шифрован суап, редактиране на crypttab/fstabТъй като суап файлът се форматира при всяко стартиране на операционната система, няма смисъл да създавате и картографирате суап към логическия диск сега и да въвеждате команди, както в параграф B2.2. За Swap, при всяко стартиране, техните временни ключове за криптиране ще се генерират автоматично. Жизнен цикъл на swap-a ключове: демонтиране/демонтиране на swap дял (+изчистване на RAM); или рестартирайте ОС. Настройка на размяната, отворете файла, отговорен за конфигурацията на блоково криптирани устройства (подобен на fstab файла, но отговорен за крипто).

nano /etc/crypttab 

правило

#"целево име" "изходно устройство" "ключов файл" "опции"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Опции
* swap - картографирано име при криптиране /dev/mapper/swap.
* /dev/sda8 - използвайте вашия логически дял за суап.
* /dev/urandom - генератор на произволни ключове за криптиране за размяна (с всяко ново зареждане на ОС се създават нови ключове). Генераторът /dev/urandom е по-малко произволен от /dev/random, в края на краищата /dev/random се използва при работа в опасни параноични обстоятелства. При зареждане на ОС /dev/random забавя зареждането за няколко ± минути (вижте systemd-analyze).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -дялът знае, че е swap и е форматиран съответно; алгоритъм за криптиране.

#Открываем и правим fstab
nano /etc/fstab

правило

# суап беше включен / dev / sda8 по време на инсталацията
/dev/mapper/swap няма swap sw 0 0

/dev/mapper/swap -име, дадено в crypttab.

Алтернативен криптиран суап
Ако по някаква причина не искате да дадете цял дял като суап файл, тогава можете да отидете по алтернативен и по-добър начин: създаване на суап файл във файл на шифрован OS дял.

fallocate -l 3G /swap #создание файла размером 3Гб (почти мгновенная операция)
chmod 600 /swap #настройка прав
mkswap /swap #из файла создаём файл подкачки
swapon /swap #включаем наш swap
free -m #проверяем, что файл подкачки активирован и работает
printf "/swap none swap sw 0 0" >> /etc/fstab #при необходимости после перезагрузки swap будет постоянный

Настройката на дяла за размяна е завършена.

B4.4. Настройване на криптиран GNU/Linux (редактиране на crypttab/fstab файлове)Файлът /etc/crypttab, както писах по-горе, описва криптирани блокови устройства, които се конфигурират по време на зареждане на системата.

#правим /etc/crypttab 
nano /etc/crypttab 

ако сте съпоставили секцията sda7>sda7_crypt, както в параграф B2.1

# "целево име" "изходно устройство" "ключов файл" "опции"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

ако сте съпоставили секцията sda7>sda7_crypt, както в параграф B2.2

# "целево име" "изходно устройство" "ключов файл" "опции"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

ако сте съпоставили раздела sda7>sda7_crypt, както в параграф B2.1 или B2.2, но не искате да въвеждате отново паролата за отключване и зареждане на операционната система, тогава можете да замените секретния ключ/произволен файл вместо паролата

# "целево име" "изходно устройство" "ключов файл" "опции"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

описание
*няма - Показва, че когато операционната система се стартира, е необходима секретна парола за отключване на root.
* UUID - идентификатор на дял. За да разберете своя ID, въведете в терминала (напомняне, че през цялото това време нататък работите в терминал в chroot среда, а не в друг жив USB терминал).

fdisk -l #проверка всех разделов
blkid #должно быть что-то подобное 

/dev/sda7: UUID=«81048598-5bb9-4a53-af92-f3f9e709e2f2» TYPE=«crypto_LUKS» PARTUUID=«0332d73c-07»
/dev/mapper/sda7_crypt: LABEL=«DebSHIFR» UUID=«382111a2-f993-403c-aa2e-292b5eac4780» TYPE=«ext4»

този ред се вижда при заявка на blkid от живия USB терминал с монтиран sda7_crypt).
UUID се взема от вашия sdaX (не sdaX_crypt!, UUID sdaX_crypt - автоматично ще изчезне при генериране на конфигурацията grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks криптиране в разширен режим.
* /etc/skey - файл със секретен ключ, който се замества автоматично за отключване на зареждане на ОС (вместо въвеждане на 3-тата парола). Можете да посочите всеки файл до 8mb, но данните ще бъдат прочетени <1mb.

#Создание "генерация" случайного файла <секретного ключа> размером 691б.
head -c 691 /dev/urandom > /etc/skey

#Добавление секретного ключа (691б) в 7-й слот заголовка luks
cryptsetup luksAddKey --key-slot 7 /dev/sda7 /etc/skey

#Проверка слотов "пароли/ключи luks-раздела"
cryptsetup luksDump /dev/sda7 

Ще изглежда така:

(направете го сами и вижте сами).

cryptsetup luksKillSlot /dev/sda7 7 #удаление ключа/пароля из 7 слота

/etc/fstab съдържа описателна информация за различни файлови системи.

#Правим /etc/fstab
nano /etc/fstab

# "file system" "mount point" "type" "options" "dump" "pass"
# / беше на / dev / sda7 по време на инсталацията
/dev/mapper/sda7_crypt / ext4 errors=remount-ro 0 1

опция
* /dev/mapper/sda7_crypt е името на картографирането sda7>sda7_crypt, което е указано във файла /etc/crypttab.
Настройката на crypttab/fstab вече е завършена.

B4.5. Редактиране на конфигурационни файлове. Ключов моментБ4.5.1. Редактиране на конфигурацията /etc/initramfs-tools/conf.d/resume

#Если у вас ранее был активирован swap раздел, отключите его. 
nano /etc/initramfs-tools/conf.d/resume

и коментирайте (если съществува) "#" ред "резюме". Файлът трябва да е напълно празен.

Б4.5.2. Редактиране на конфигурацията /etc/initramfs-tools/conf.d/cryptsetup

nano /etc/initramfs-tools/conf.d/cryptsetup

трябва да съвпада

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=да
експортиране на CRYPTSETUP

B4.5.3. Редактиране на /etc/default/grub config (именно тази конфигурация е отговорна за възможността за генериране на grub.cfg при работа с криптиран /boot)

nano /etc/default/grub

добавете реда "GRUB_ENABLE_CRYPTODISK=y"
зададено на 'y', grub-mkconfig и grub-install ще проверяват за криптирани дискове и ще генерират допълнителни команди, необходими за достъп до тях по време на зареждане (insmods ).
трябва да са подобни

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || ехо Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=доставчик"
GRUB_CMDLINE_LINUX="тихо пръскане без автоматично монтиране"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Редактиране на конфигурацията /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

проверете дали линията коментира <#>.
В бъдеще (и дори сега този параметър няма да има никаква стойност, но понякога пречи на актуализирането на изображението initrd.img).

B4.5.5. Редактиране на конфигурацията /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

добавете

KEYFILE_PATTERN="/etc/skey"
UMASK=0077

Това ще опакова секретния ключ "skey" в initrd.img, ключът е необходим за отключване на root при стартиране на OS (ако няма желание да въведете отново паролата, ключът „key“ се замества автоматично).

B4.6. Актуализиране на /boot/initrd.img [версия]За да пакетирате личния ключ в initrd.img и да приложите корекциите на cryptsetup, актуализирайте изображението

update-initramfs -u -k all

при актуализиране на initrd.img (Както се казва "Може би, но не е сигурно") ще има предупреждения, свързани с cryptsetup, или, например, известие за загуба на модули на Nvidia - това е нормално. След като актуализирате файла, проверете дали наистина е актуализиран, вижте по време (спрямо chroot среда ./boot/initrd.img). Внимание! преди [update-initramfs -u -k all] не забравяйте да проверите дали cryptsetup отваря /dev/sda7 sda7_crypt - това е името, което трябва да бъде, което се появява в /etc/crypttab, в противен случай след рестартиране-busybox грешка)
Тази стъпка завършва настройката на конфигурационните файлове.

[С] Инсталиране и конфигуриране на GRUB2/Protection

C1. Ако е необходимо, форматирайте специалния дял за буутлоудъра (поне 20MB са достатъчни за дяла)

mkfs.ext4 -v -L GRUB2 /dev/sda6

C2. Монтирайте /dev/sda6 към /mntТъй като работим в chroot, няма да има /mnt2 директория в корена и папката /mnt ще бъде празна.
монтирайте GRUB2 дяла

mount /dev/sda6 /mnt

Ако имате инсталирана по-стара версия на GRUB2, в /mnt/boot/grub/i-386-pc (възможна друга платформа, напр. не "i386-pc") без криптомодули (накратко, папката трябва да съдържа модули, включително тези .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), в такъв случай GRUB2 трябва да се разклати.

apt-get update
apt-get install grub2 

важно! Когато актуализирате пакета GRUB2 от хранилището, когато бъдете попитани „за избора“ къде да инсталирате буутлоудъра, трябва да откажете да инсталирате (причина - опит за инсталиране на GRUB2 - в "MBR" или на live usb). В противен случай ще повредите заглавката/зареждащата програма на VeraCrypt. След актуализиране на GRUB2 пакетите и отмяна на инсталацията, буутлоудърът трябва да бъде инсталиран ръчно на логическо устройство, а не в "MBR". Ако вашето хранилище има остаряла версия на GRUB2, опитайте актуализация от официалния сайт - не е проверяван (работи с нови зареждащи GRUB 2.02 ~BetaX).

C3. Инсталиране на GRUB2 на разширен дял [sda6]Трябва да имате монтиран дял [p.C.2]

grub-install --force --root-directory=/mnt /dev/sda6

опции
* --force - инсталирайте буутлоудъра, заобикаляйки всички почти винаги съществуващи предупреждения и блокирайки инсталацията (задължителен флаг).
* --root-directory - инсталиране на директория към корена на sda6.
* /dev/sda6 - вашият sdaX дял (не пропускайте <интервал> между /mnt /dev/sda6).

C4. Създаване на конфигурационен файл [grub.cfg]Забравете командата "update-grub2" и използвайте командата за генериране на пълен конфигурационен файл

grub-mkconfig -o /mnt/boot/grub/grub.cfg

след завършване на генерирането / актуализирането на файла grub.cfg, в изходния терминал трябва да има редове (a) с операционната система, намерена на диска ("grub-mkconfig" вероятно ще намери и вземе операционната система от live usb, ако имате флашка с много стартиране с Windows 10 и куп живи дистрибуции - това е нормално). Ако терминалът е „празен“, файлът „grub.cfg“ не се генерира, тогава това е случаят, когато има GRUB грешки в системата (и най-вероятно товарач от тестовия клон на хранилището), преинсталирайте GRUB2 от надеждни източници.
Инсталирането на „проста конфигурация“ и настройката на GRUB2 вече са завършени.

C5. Криптирана GNU/Linux OS с доказателствен тестИзпълнете правилно криптомисията. Оставете внимателно шифрования GNU/Linux (излезте от chroot средата).

umount -a #размонтирование всех смонтированных разделов шифрованной GNU/Linux
Ctrl+d #выход из среды chroot
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a #размонтирование всех смонтированных разделов на live usb
reboot

След рестартиране на компютъра, програмата за зареждане на VeraCrypt трябва да се зареди.
Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

*Въвеждане на паролата за активния дял - Windows ще започне да се зарежда.
*Натискането на клавиша "Esc" ще прехвърли контрола на GRUB2, ако изберете криптиран GNU / Linux - ще ви трябва парола (sda7_crypt), за да отключите /boot/initrd.img (ако grub2 казва uuid "not found" - това е проблем с буутлоудъра grub2, той трябва да се преинсталира, например от тестовия клон/стабилен и pd).
Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

*В зависимост от това как сте настроили системата (вижте раздел B4.4/4.5), след като въведете правилната парола за отключване на изображението /boot/initrd.img, ще ви трябва парола за зареждане на ядрото/root на OS или тайният ключ автоматично ще бъде заменен с " skey", което премахва необходимостта от повторно въвеждане на паролата.
Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране
(екранна снимка "автоматично заместване на секретния ключ").

*След това ще започне познатият процес на зареждане на GNU / Linux с удостоверяване на потребителски акаунт.
Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

*След оторизация на потребителя и влизане в операционната система, трябва да актуализирате повторно /boot/initrd.img (виж Q4.6).

update-initramfs -u -k all

И в случай на допълнителни редове в менюто GRUB2 (от пикап OS-m с live usb) Отърви се от тях

mount /dev/sda6 /mnt
grub-mkconfig -o /mnt/boot/grub/grub.cfg

Кратко резюме на системното криптиране на GNU/Linux:

  • GNU/Linuxinux е напълно криптиран, включително /boot/kernel и initrd;
  • секретният ключ е пакетиран в initrd.img;
  • текуща схема за разрешение (въвеждане на парола за отключване на initrd; парола/ключ за зареждане на ОС; парола за оторизация на акаунт в Linux).

Системното криптиране на блокови дялове „Опростена GRUB2 конфигурация“ е завършено.

C6. Разширена GRUB2 конфигурация. Защита на буутлоудъра с цифров подпис + защита при удостоверяванеGNU/Linux е напълно криптиран, но буутлоудърът не може да бъде криптиран - това условие се диктува от BIOS. Поради тази причина GRUB2 криптирано верижно зареждане не е възможно, но обикновено верижно зареждане е възможно/налично, не е необходимо от гледна точка на сигурността [вижте по-долу]. P. F].
За „уязвимия“ GRUB2 разработчиците внедриха алгоритъма за защита на буутлоудъра „подписване/удостоверяване“.

  • Когато буутлоудърът е защитен със „собствен цифров подпис“, външна модификация на файлове или опит за зареждане на допълнителни модули в този буутлоудър ще доведе до блокиране на процеса на зареждане.
  • Когато защитавате буутлоудъра с удостоверяване, за да изберете зареждане на комплект за разпространение или да въведете допълнителни команди в CLI, ще трябва да въведете данните за вход и паролата на суперпотребителя-GRUB2.

C6.1. Защита на буутлоудъра с удостоверяванеПроверете дали работите в терминал в криптирана операционна система

ls /<Tab-Tab> #обнаружить файл-маркер

създайте парола на суперпотребител за оторизация в GRUB2

grub-mkpasswd-pbkdf2 #введите/повторите пароль суперпользователя. 

Вземете хеша на паролата. Нещо като това

grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

монтирайте GRUB дяла

mount /dev/sda6 /mnt 

редактирайте конфигурацията

nano -$ /mnt/boot/grub/grub.cfg 

проверете търсенето на файлове, че няма флагове никъде в "grub.cfg" ("-unrestricted" "-user",
добавете в самия край (преди ред ### END /etc/grub.d/41_custom ###)
"задаване на суперпотребители="root"
парола_pbkdf2 корен хеш".

Трябва да е нещо подобно

# Този файл предоставя лесен начин за добавяне на персонализирани записи в менюто. Просто въведете
# елемента от менюто, които искате да добавите след този коментар. Внимавайте да не се промените
# реда "exec tail" по-горе.
### КРАЙ /etc/grub.d/40_custom ###

### НАЧАЛО /etc/grub.d/41_custom ###
ако [ -f ${config_directory}/custom.cfg]; тогава
източник ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; тогава
източник $prefix/custom.cfg;
fi
задайте суперпотребители="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### КРАЙ /etc/grub.d/41_custom ###
#

Ако често използвате командата "grub-mkconfig -o /mnt/boot/grub/grub.cfg" и не искате да правите промени в grub.cfg всеки път, въведете горните редове (Парола за вход) към потребителския скрипт GRUB до самото дъно

nano /etc/grub.d/41_custom 

котка<<EOF
задайте суперпотребители="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

При генериране на конфигурацията "grub-mkconfig -o /mnt/boot/grub/grub.cfg", редовете, отговарящи за удостоверяването, ще бъдат добавени автоматично към grub.cfg.
Тази стъпка завършва настройката за удостоверяване на GRUB2.

C6.2. Защита на буутлоудъра с цифров подписПредполага се, че вече имате вашия личен pgp ключ за криптиране (или създайте такъв ключ). В системата трябва да е инсталиран криптографски софтуер: gnuPG; клеопатра/GPA; Морско конче. Крипто-софтуерът ще направи живота ви много по-лесен във всички подобни случаи. Seahorse - стабилна версия на пакета 3.14.0 (версиите по-горе, например V3.20 са по-ниски и имат значителни грешки).

PGP ключът трябва да се генерира/изпълни/добави само в su среда!

Генерирайте персонален ключ за криптиране

gpg - -gen-key

Експортирайте вашия ключ

gpg --export -o ~/perskey

Монтирайте логическото устройство в операционната система, ако вече не е монтирано

mount /dev/sda6 /mnt #sda6 – раздел GRUB2

почистете GRUB2 дяла

rm -rf /mnt/

Инсталирайте GRUB2 в sda6, като поставите личния си ключ в главното изображение на GRUB "core.img"

grub-install --force --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" -k ~/perskey --root-directory=/mnt /dev/sda6

опции
* --force - инсталирайте буутлоудъра, заобикаляйки всички предупреждения, които винаги съществуват (задължителен флаг).
* --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" - инструктира GRUB2 да зареди предварително необходимите модули при стартиране на компютъра.
* -k ~/perskey - път към "PGP ключ" (след опаковане на ключа в изображение, той може да бъде изтрит).
* --root-directory -задаване на директория за зареждане на sda6 root
/dev/sda6 е вашият sdaX дял.

Генерирайте/актуализирайте grub.cfg

grub-mkconfig  -o /mnt/boot/grub/grub.cfg

Добавете реда "trust /boot/grub/perskey" в края на файла "grub.cfg" (принудително използване на pgp ключ.) Тъй като инсталирахме GRUB2 с набор от модули, включително модула за подпис „signature_test.mod“, това елиминира необходимостта от добавяне на команди като „set check_signatures=enforce“ към конфигурацията.

Трябва да изглежда нещо подобно (крайни редове във файла grub.cfg)

### НАЧАЛО /etc/grub.d/41_custom ###
ако [ -f ${config_directory}/custom.cfg]; тогава
източник ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; тогава
източник $prefix/custom.cfg;
fi
доверие /boot/grub/perskey
задайте суперпотребители="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### КРАЙ /etc/grub.d/41_custom ###
#

Пътят до "/boot/grub/perskey" не трябва да сочи към конкретен дисков дял, например hd0,6, тъй като самият буутлоудър "root" е пътят по подразбиране на дяла, на който е инсталиран GRUB2 (вижте set rot=..).

Подписване на GRUB2 (всички файлове във всички /GRUB директории) с вашия ключ "perskey".
Лесно решение за подписване (за nautilus/caja explorer): инсталирайте разширението "seahorse" за изследователя от хранилището. Ключът трябва да се добави към средата su.
Отворете Explorer от sudo "/mnt/boot" - RMB - знак. На екрана изглежда така

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Самият ключ е "/mnt/boot/grub/perskey" (копиране в директория grub) също трябва да бъде подписан със собствения си подпис. Проверете дали подписите на файла [*.sig] се появяват в директорията/поддиректориите.
По горния начин подписваме "/boot" (нашето ядро, initrd). Ако времето ви струва нещо, тогава този метод елиминира необходимостта да пишете bash скрипт за подписване на "много файлове".

За да премахнете всички подписи на буутлоудъра (ако нещо се обърка)

rm -f $(find /mnt/boot/grub -type f -name '*.sig')

За да не подписваме буутлоудъра след обновяване на системата, ние замразяваме всички пакети за обновяване, свързани с GRUB2.

apt-mark hold grub-common grub-pc grub-pc-bin grub2 grub2-common

На тази стъпка <защита на буутлоудъра с цифров подпис> разширената конфигурация на GRUB2 е завършена.

C6.3. Доказателствен тест на GRUB2 буутлоудър, защитен с цифров подпис и удостоверяванеGRUB2. Когато избирате дистрибуция на GNU/Linux или влизате в CLI (командна линия) изисква се оторизация на суперпотребител. След като въведете правилното име / парола, ще ви трябва паролата от initrd

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране
Екранна снимка, успешно удостоверяване на GRUB2-superuser.

Ако подправите някой от GRUB2 файловете / направите промени в grub.cfg или изтриете файла / подписа, заредете злонамерения module.mod, тогава ще се появи съответното предупреждение. Зареждането на GRUB2 ще бъде поставено на пауза.

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране
Екранна снимка, опит за намеса в GRUB2 "отвън".

При "нормално" зареждане "без проникване", състоянието на кода за изход на системата е "0". Следователно не се знае дали защитата работи или не. (тоест „със или без защита на буутлоудъра с подпис“ по време на нормално зареждане, състоянието е същото „0“ - това е лошо).

Как да проверя защитата на цифровия подпис?

Неудобен начин за проверка: подправяне/премахване на модула, използван от GRUB2, например, премахване на подписа luks.mod.sig и получаване на грешка.

Правилният начин е да отидете до CLI на буутлоудъра и да въведете командата

trust_list

В отговор те трябва да получат пръстов отпечатък „perskey“, ако статусът е „0“, тогава защитата на подписа не работи, проверете отново клауза C6.2.
На тази стъпка разширената настройка „Защита на GRUB2 с цифров подпис и удостоверяване“ приключи.

C7 Алтернативен метод за защита на GRUB2 буутлоудъра с хеширанеМетодът „Защита на зареждащото устройство на процесора / удостоверяване“, описан по-горе, е класически. Поради несъвършенството на GRUB2, в параноични условия, той е обект на реална атака, която ще дам по-долу в параграф [F]. Освен това, след актуализиране на OS / ядрото, е необходимо да подпишете отново буутлоудъра.

Защита на GRUB2 буутлоудъра с хеширане

Предимства пред класиката:

  • По-високо ниво на надеждност (хеширане / проверка се извършва само от криптиран локален ресурс. Целият разпределен дял под GRUB2 се контролира за всякакви промени и всичко останало е криптирано, в класическата схема със защита на зареждащото устройство на процесора / удостоверяване, само файловете се контролират, но не са безплатни пространство, в което може да се добави "нещо нещо зловещо").
  • Криптирано регистриране (към схемата се добавя четим персонален криптиран журнал).
  • Скорост (Защитата / проверката на целия дял, разпределен за GRUB2, се извършва почти мигновено).
  • Автоматизация на всички криптографски процеси.

Недостатъци на класиката.

  • Фалшифициране на подпис (теоретично е възможно да се намери сблъсък на дадена хеш функция).
  • Повишено ниво на трудност (в сравнение с класическите, се изискват малко повече познания за GNU/Linux OS).

Как работи идеята за хеширане на GRUB2/дял

Разделът GRUB2 е „подписан“, когато операционната система е заредена, секцията за зареждане се проверява за неизменност, последвано от влизане в безопасна среда (криптирана). Ако буутлоудърът или неговият дял са компрометирани, в допълнение към регистрационния файл за инвазия, следното

Нещо.Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Подобна проверка се извършва четири пъти на ден, което не натоварва системните ресурси.
С помощта на командата "-$ check_GRUB" се извършва незабавна проверка по всяко време без регистриране, но с извеждане на информация към CLI.
С помощта на командата "-$ sudo GRUB_signature", GRUB2 bootloader/дялът незабавно се преподписва и актуализираното му логване (необходим след актуализация на OS/boot) и животът продължава.

Внедряване на метода за хеширане на буутлоудъра и неговия дял

0) Нека подпишем GRUB bootloader/дяла, като първо го монтираме към /media/username

-$ hashdeep -c md5 -r /media/username/GRUB > /podpis.txt

1) Създаваме скрипт без разширение в корена на криптираната ОС ~/podpis, прилагаме необходимите права 744 сигурност и защита от „глупак“ към него.

Пълненето му със съдържание

#!/bin/bash

#Проверка всего раздела выделенного под загрузчик GRUB2 на неизменность.
#Ведется лог "о вторжении/успешной проверке каталога", короче говоря ведется полный лог с тройной вербализацией. Внимание! обратить взор на пути: хранить ЦП GRUB2 только на зашифрованном разделе OS GNU/Linux. 
echo -e "******************************************************************n" >> '/var/log/podpis.txt' && date >> '/var/log/podpis.txt' && hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB' >> '/var/log/podpis.txt'

a=`tail '/var/log/podpis.txt' | grep failed` #не использовать "cat"!! 
b="hashdeep: Audit failed"

#Условие: в случае любых каких-либо изменений в разделе выделенном под GRUB2 к полному логу пишется второй отдельный краткий лог "только о вторжении" и выводится на монитор мигание gif-ки "warning".
if [[ "$a" = "$b" ]] 
then
echo -e "****n" >> '/var/log/vtorjenie.txt' && echo "vtorjenie" >> '/var/log/vtorjenie.txt' && date >> '/var/log/vtorjenie.txt' & sudo -u username DISPLAY=:0 eom '/warning.gif' 
fi

Стартирайте скрипта от su, хеширането на GRUB дяла и неговия буутлоудър ще бъдат проверени, запазете дневника.

Нека създадем или копираме например „злонамерен файл“ [virus.mod] в GRUB2 дяла и изпълним временна проверка/тест:

-$ hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB

CLI трябва да види нахлуване в нашата крепост#Освободен регистрационен файл в CLI

Ср янв  2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Moved from /media/username/GRUB/1nononoshifr
/media/username/GRUB/boot/grub/i386-pc/mda_text.mod: Ok
/media/username/GRUB/boot/grub/grub.cfg: Ok
hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 325
Files partially matched: 0
            Files moved: 1
        New files found: 0
  Known files not found: 0

#Както можете да видите, се появи „Преместени файлове: 1 и неуспешен одит“, което означава, че проверката е неуспешна.
Поради особеностите на тествания раздел, вместо "Намерени нови файлове" > "Преместени файлове"

2) Поставете gif файла тук > ~/warning.gif, задайте разрешения на 744.

3) Конфигуриране на fstab за автоматично монтиране на GRUB дяла при зареждане

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 по подразбиране 0 0

4) Завъртаме дневника

-$ sudo nano /etc/logrotate.d/podpis 

/var/log/subpis.txt {
ежедневно
завъртете 50
размер 5M
дататекст
компрес
delaycompress
olddir /var/log/old
}

/var/log/vtorjenie.txt {
месечно
завъртете 5
размер 5M
дататекст
olddir /var/log/old
}

5) Добавяне на работа към cron

-$ sudo crontab -e

рестартирате '/абонамент'
0 */6 * * * '/подпис

6) Създайте постоянни псевдоними

-$ sudo su
-$ echo "alias подпись_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias проверка_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash

След актуализация на ОС -$ apt-get upgrade преподписване на нашия GRUB дял
-$ подпись_GRUB
Тази стъпка завършва хеш защитата на GRUB дяла.

[D] Почистване - унищожаване на некриптирани данни

Изтрийте личните си файлове толкова напълно, че „дори Бог не може да ги прочете“, според говорителя на Южна Каролина Трей Гоуди.

Както обикновено, има различни "митове и легенди”, относно възстановяването на данни след изтриването им от твърдия диск. Ако вярвате в кибермагьосничеството или сте член на общността Dr web и никога не сте опитвали възстановяване на данни след изтриване/пренаписване (напр. възстановяване с R-studio), тогава предложеният метод е малко вероятно да ви подхожда, използвайте този, който е по-близо до вас.

След успешно мигриране на GNU/Linux към шифрован дял, старото копие трябва да бъде изтрито за постоянно. Универсален метод за почистване: софтуер за Windows/Linux безплатен GUI софтуер BleachBit.
бързо форматиране на дяла, данните, които искате да унищожите (с помощта на Gparted), стартирайте BleachBit, изберете "Clean up free space" - изберете дял (вашият sdaX с минало копие на GNU/Linux), процесът на почистване ще започне. BleachBit - изтрива диска с едно преминаване - това е, от което се нуждаем, но! това работи само на теория, ако сте форматирали устройството и сте го почистили в софтуера BB v2.0.

Внимание! BB изтрива диска, оставяйки метаданни, имената на файловете се запазват, когато данните бъдат унищожени (Ccleaner - не оставя метаданни).

И митът за възможността за възстановяване на данни всъщност не е мит.Bleachbit V2.0-2 предишна нестабилна операционна система Debian пакет (и всеки друг подобен софтуер: sfill; wipe-Nautilus - също бяха забелязани в този мръсен бизнес) всъщност имаше критичен бъг: функция за "изчистване на свободно пространство". работи неправилно на HDD/флашки (ntfs/ext4). Софтуер от този вид, когато почиства свободното пространство, не презаписва целия диск, както мислят много потребители. И няколко (Много) изтрити данни ОС/софтуерът третира тези данни като неизтрити/потребителски данни и пропуска тези файлове при изчистване на ОС/ОС. Проблемът е, че след толкова дълго време почистването на диска "изтрити файлове" могат да бъдат възстановени дори след 3+ преминавания на изтриване на диска.
На GNU/Linux в Bleachbit 2.0-2 функциите за постоянно изтриване на файлове и директории работят надеждно, но не изчистват свободно пространство. За сравнение: в Windows в софтуера CCleaner функцията "OSB за ntfs" работи правилно и Бог наистина не може да прочете изтритите данни.

И така, старателно да се премахне "компромис" стари некриптирани данни, Bleachbit се нуждае от директен достъп до тези данни, след това използвайте функцията "изтриване на файлове / директории безвъзвратно".
За да изтриете „изтрити файлове с помощта на обикновени инструменти на ОС“ в Windows, използвайте CCleaner / BB с функцията „OSB“. На GNU/Linux по този проблем (премахване на изтрити файлове) трябва да се упражнявате сами (изтриване на данни + независим опит за възстановяването им и не разчитайте на версията на софтуера (ако не е отметка, тогава грешка)), само в този случай ще можете да разберете механизма на този проблем и да се отървете напълно от изтритите данни.

Bleachbit v3.0 не е проверена, може би проблемът вече е отстранен.
Bleachbit v2.0 работи честно.

Тази стъпка завършва почистването на диска.

[E] Генерично криптирано архивиране на ОС

Всеки потребител има свой собствен метод за архивиране на данни, но криптираните данни на "System OS" изискват малко по-различен подход към задачата. Унифициран софтуер като "Clonezilla" и подобен софтуер не може да работи директно с криптирани данни.

Задаване на задачата за архивиране за криптирани блокови устройства:

  1. универсалност - същият алгоритъм / софтуер за архивиране за Windows / Linux;
  2. възможността за работа в конзолата с всеки жив usb GNU / Linux без необходимост от допълнително изтегляне на софтуер (но все пак препоръчвам GUI);
  3. сигурност на архивирането - съхраняваните "изображения" трябва да бъдат криптирани / защитени с парола;
  4. размерът на криптираните данни трябва да съответства на размера на действително копираните данни;
  5. удобно извличане на необходимите файлове от архива (няма изискване първо да дешифрирате цялата секция).

Например архивиране/възстановяване чрез помощната програма "dd".

dd if=/dev/sda7 of=/путь/sda7.img bs=7M conv=sync,noerror
dd if=/путь/sda7.img of=/dev/sda7 bs=7M conv=sync,noerror

Съответства на почти всички точки на задачата, но според параграф 4 не издържа на критика, тъй като копира целия дял на диска, включително свободното пространство - не е интересно.

Например, архивиране на GNU/Linux чрез [tar" | gpg] е удобно, но за архивиране на Windows трябва да потърсите друго решение - не е интересно.

E1. Универсално архивиране на Windows/Linux. Пакет rsync (Grsync) + том VeraCryptАлгоритъм за създаване на резервно копие:

  1. създаване на криптиран контейнер (том/файл) VeraCrypt за OS;
  2. прехвърляне / синхронизиране на операционната система с помощта на софтуера Rsync към криптоконтейнера VeraCrypt;
  3. ако е необходимо, качете тома на VeraCrypt на www.

Създаването на криптиран контейнер VeraCrypt има свои собствени характеристики:
създаване на динамичен обем (създаването на DT е достъпно само в Windows, може да се използва и в GNU/Linux);
създаване на нормален обем, но има изискване от "параноичен характер" (според разработчика) - форматиране на контейнера.

Динамичен обем се създава почти мигновено в Windows, но при копиране на данни от GNU/Linux > VeraCrypt DT, общата производителност на операцията за архивиране е значително намалена.

Създава се обикновен обем Twofish от 70 GB (Да речем, при средна мощност на компютъра) към HDD ~ след половин час (презаписване на данните от предишния контейнер с едно преминаване, поради изисквания за сигурност). От VeraCrypt Windows/Linux беше премахната функцията за бързо форматиране на том по време на неговото създаване, така че създаването на контейнер е възможно само чрез „презаписване с едно преминаване“ или създаване на динамичен том с ниска производителност.

Създайте обикновен том на VeraCrypt (не е динамичен/ntfs), не би трябвало да има проблеми.

Настройте/създайте/отворете контейнер във VeraCrypt GUI > GNU/Linux live usb (томът ще бъде автоматично монтиран в /media/veracrypt2, томът на Windows OS е монтиран в /media/veracrypt1). Създаване на криптирано архивиране на Windows с помощта на GUI на rsync (grsync)като поставите отметки в квадратчетата.

Пълно дисково криптиране на инсталирани Windows Linux системи. Криптирано мултистартиране

Изчакайте края на процеса. След завършване на архивирането ще имаме един криптиран файл.

По подобен начин създайте резервно копие на операционната система GNU / Linux, като премахнете отметката от графичния интерфейс на rsync „Съвместим с Windows“.

Внимание! създайте контейнер Veracrypt за „резервно копие на GNU/Linux“ във файловата система ext4. Ако направите резервно копие в ntfs контейнер, тогава, когато възстановите такова копие, ще загубите всички права / групи за всичките си данни.

Можете да извършвате всички операции в терминала. Основни опции за rsync:
* -g - запазване на групи;
* -P --progress - състоянието на времето на работа по файла;
* -H -копиране на твърдите връзки такива, каквито са;
* -a -архивен режим (няколко флага rlptgoD);
* -v -вербализация.

Ако искате да монтирате „том на Windows VeraCrypt“ чрез конзолата в софтуера за настройка на криптиране, можете да създадете псевдоним (su)

echo "alias veramount='cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt && mount /dev/mapper/ Windows_crypt /media/veracrypt1'" >> .bashrc && bash

Сега при командата „veramount pictures“ ще бъдете подканени да въведете парола и шифрованият системен том на Windows ще бъде монтиран в операционната система.

Карта/монтиране на системния том на VeraCrypt в командата cryptsetup

cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt
mount /dev/mapper/Windows_crypt /mnt

Карта/монтиране на VeraCrypt дял/контейнер в командата cryptsetup

cryptsetup open --veracrypt --type tcrypt /dev/sdaY test_crypt
mount /dev/mapper/test_crypt /mnt

Вместо псевдоним, нека добавим (скрипт за автоматично зареждане) системен том с Windows OS и логически криптиран ntfs диск към автоматичното зареждане на GNU/Linux

Създайте скрипт и го запазете в ~/VeraOpen.sh

printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sda3 Windows_crypt && mount /dev/mapper/Windows_crypt /media/Winda7 #декодируем пароль из base64 (bob) и отправляем его на запрос ввода пароля при монтировании системного диска ОС Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/КонтейнерНтфс #аналогично, но монтируем логический диск ntfs.

Ние даваме "истински" права:

sudo chmod 100 /VeraOpen.sh

Създайте два идентични файла (с едно и също име!) в /etc/rc.local и ~/etc/init.d/rc.local
Попълване на файловете

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh -c "sleep 1 && '/VeraOpen.sh'" #после загрузки ОС, ждём ~ 1с и только потом монтируем диски.
exit 0

Ние даваме "истински" права:

sudo chmod 100 /etc/rc.local && sudo chmod 100 /etc/init.d/rc.local 

Това е всичко, сега при зареждане на GNU/Linux не е нужно да въвеждаме пароли за монтиране на криптирани ntfs дискове, дисковете се монтират автоматично.

Кратка бележка относно описаното по-горе в параграф E1 стъпка по стъпка (но сега за OS GNU/Linux)
1) Създайте том във fs ext4 > 4gb (за файл) Linux във Veracrypt [Crypto box].
2) Рестартирайте, за да живеете usb.
3) ~$ cryptsetup отворете /dev/sda7 Lunux #map на шифрования дял.
4) ~$ монтиране /dev/mapper/Linux /mnt #монтиране на шифрования дял в /mnt.
5) ~$ mkdir mnt2 #създайте директория за бъдещото архивиране.
6) ~$ cryptsetup open --veracrypt --type tcrypt ~/Cryptobox Cryptobox && mount /dev/mapper/Cryptobox /mnt2 #Картирайте тома Veracrypt с име "Cryptobox" и монтирайте Cryptobox в /mnt2.
7) ~$ rsync -avlxhHX --progress /mnt /mnt2/ #операция за архивиране на шифрован дял в шифрован том на Veracrypt.

(p/s/ Внимание! Ако прехвърляте криптиран GNU/Linux от една архитектура/машина на друга, например Intel > AMD (т.е. внедряване на резервно копие от един криптиран дял към друг Intel > AMD криптиран дял), не забравяй след прехвърляне на криптираната ОС, може би редактирайте секретния заместен ключ вместо паролата. предишният ключ ~/etc/skey - вече няма да пасва на друг криптиран дял и е нежелателно да се създаде нов ключ "cryptsetup luksAddKey" от под chroot - възможен е проблем, просто в ~/etc/crypttab посочете временно "няма " вместо "/etc/skey" ”, след рестартиране и влизане в операционната система, регенерирайте отново вашия секретен заместен ключ).

Като ИТ ветерани, не забравяйте да архивирате поотделно хедърите на шифрованите Windows/Linux OS дялове, или криптирането ще се обърне срещу вас.
На тази стъпка архивирането на криптираните операционни системи е завършено.

[F] Атака срещу GRUB2 буутлоудъра

ДетайлиАко сте защитили своя буутлоудър с цифров подпис и/или удостоверяване (Вижте точка C6.), тогава това няма да защити срещу физически достъп. Шифрованите данни все още ще бъдат недостъпни, но защитата ще бъде заобиколена (нулиране на защитата на цифровия подпис) GRUB2 позволява на киберзлодеите да инжектират своя код в буутлоудъра, без да предизвикват подозрение (освен ако потребителят не следи ръчно състоянието на буутлоудъра или не измисли собствен солиден персонализиран скрипт-код за grub.cfg).

алгоритъм за атака. натрапник

*Стартира компютъра от живо USB. Всяка промяна (нарушител) файловете ще предупредят истинския собственик на компютъра за проникването в буутлоудъра. Но просто преинсталиране на GRUB2, като запази grub.cfg (и последващата възможност за редактиране) ще позволи на атакуващ да редактира всякакви файлове (в този сценарий, при зареждане на GRUB2, истинският потребител няма да бъде уведомен. Състоянието е същото <0>)
* Монтира некриптиран дял, записва "/mnt/boot/grub/grub.cfg".
* Преинсталирайте буутлоудъра (премахване на "perskey" от изображението core.img)

grub-install --force --root-directory=/mnt /dev/sda6

* Връща "grub.cfg" > "/mnt/boot/grub/grub.cfg", редактира го, ако е необходимо, например добавяйки неговия модул "keylogger.mod" към папката с модули за зареждане в "grub.cfg" > ред "insmod keylogger". Или, например, ако врагът е хитър, след преинсталиране на GRUB2 (всички подписи остават на мястото си) той изгражда основното изображение на GRUB2, използвайки "grub-mkimage с опцията (-c)." Опцията "-c" ще ви позволи да заредите вашата конфигурация, преди да заредите основния "grub.cfg". Конфигурацията може да се състои само от един ред: пренасочване към всеки "modern.cfg", смесен с, например, ~400 файла (модули+сигнатури) в папката /boot/grub/i386-pc. В този случай нарушителят може да въведе произволен код и да зареди модули, без да засяга "/boot/grub/grub.cfg", дори ако потребителят е приложил "hashsum" към файла и временно го е показал на екрана.
Нападателят няма да има нужда да разбива потребителското име/паролата на суперпотребителя GRUB2, той просто ще трябва да копира редовете (отговаря за удостоверяването) "/boot/grub/grub.cfg" към вашия "modern.cfg"

задайте суперпотребители="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

И компютърният хост все още ще има GRUB2 суперпотребителско удостоверяване.

Зареждане на веригата (bootloader зарежда друг bootloader), както беше споменато по-горе, няма смисъл (за друга цел е). Поради BIOS, криптираният буутлоудър не може да бъде зареден (при верижно зареждане, GRUB2 се рестартира > шифрован GRUB2, грешка!). Въпреки това, ако все още използвате идеята за зареждане на веригата, можете да сте сигурни, че се зарежда криптираната. (не е надстроен) "grub.cfg" от шифрования дял. И това също е фалшиво чувство за сигурност, защото всичко, което е посочено в криптирания "grub.cfg" (зареждане на модул) стекове с модули, които се зареждат от некриптиран GRUB2.

Ако искате да проверите това, тогава разпределете/криптирайте друг sdaY дял, копирайте GRUB2 в него (операцията за грубо инсталиране на шифрован дял не е възможна) и в "grub.cfg" (некриптирана конфигурация) променете линии като тази

menuentry 'GRUBx2' --class parrot --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; след това insmod xzio; insmod lzopio; фи
insmod part_msdos
insmod криптодиск
инсмод лукс
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
нормален /boot/grub/grub.cfg
}

линии
* insmod - зареждане на необходимите модули за работа с криптиран диск;
* GRUBx2 - името на показания ред в менюто за стартиране на GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 - вижте fdisk -l (sda9);
* set root - настройка на root;
* нормален /boot/grub/grub.cfg - изпълним конфигурационен файл на шифрования дял.

Увереността, че се зарежда криптираният „grub.cfg“, е положителен отговор за въвеждане на паролата / отключване на „sdaY“, когато изберете реда „GRUBx2“ в менюто на GRUB.

Когато работите в CLI, за да не се объркате (и проверете дали променливата на средата "set root" работи), създайте празни маркерни файлове, например в криптирания дял "/shifr_grub", в некриптирания дял "/noshifr_grub". Валидиране в CLI

cat /Tab-Tab

Както беше отбелязано по-горе, това няма да ви помогне да изтеглите злонамерени модули, ако такива модули се окажат на вашия компютър. Например кийлогър, който може да записва натискания на клавиши във файл и да се смесва с други файлове в "~/i386", докато не бъде изтеглен от нападател с физически достъп до компютъра.

Най-лесният начин да проверите дали защитата на цифровия подпис е активна (не се нулира), и никой не е нахлул в буутлоудъра, в CLI въвеждаме командата

list_trusted

в отговор получаваме отливка от нашия „perskey“ или не получаваме нищо, ако сме били нападнати (също трябва да проверите "set check_signatures=enforce").
Значителен недостатък на такава стъпка е ръчното въвеждане на команди. Ако добавите тази команда към "grub.cfg" и подпишете цифрово конфигурацията, тогава предварителният изход на ключа към екрана е твърде кратък във времето и може да нямате време да видите изхода, когато получите GRUB2 зареждане .
Няма от кого да се оплачете особено: разработчикът в неговия документация клауза 18.2 официално декларира

„Имайте предвид, че дори и при защита с парола на GRUB, самият GRUB не може да попречи на някой с физически достъп до машината да промени конфигурацията на фърмуера на тази машина (напр. Coreboot или BIOS), за да накара машината да стартира от различно (контролирано от хакер) устройство. GRUB е в най-добрия случай само една връзка в защитена верига за зареждане".

GRUB2 е твърде претоварен с функции, които могат да дадат усещане за фалшива сигурност и неговото развитие вече е изпреварило функционалността на MS-DOS и е просто буутлоудър. Смешно е, че GRUB2 - "утре" може да стане операционна система и стартиращи GNU / Linux виртуални машини за нея.

Кратко видео за това как нулирах защитата на цифровия подпис GRUB2 и декларирах проникването си на реален потребител (Изплаших ви, но вместо това, което е показано на видеото, можете да напишете безвреден произволен код/.mod).

Изводи:

1) Блоково системно криптиране за Windows - по-лесно за изпълнение и защитата с една парола е по-удобна от защитата с няколко пароли с GNU / Linux блоково системно криптиране, честно казано: последното е автоматизирано.

2) Написах статията като подходяща, подробна прост ръководство за пълно дисково криптиране VeraCrypt/LUKS на една домашна машина, което е най-доброто в runet (IMHO). Ръководството е > 50k знака, така че не покрива някои интересни глави: за криптографи, които изчезват/остават в сянка; относно факта, че в различни книги за GNU / Linux има малко / никакво писане за криптография; относно член 51 от Конституцията на Руската федерация; О лицензиране/забрана криптиране в Русия, за това защо трябва да шифровате "root / boot". Ръководството се оказа вече значително, но подробно (описва дори прости стъпки), от своя страна, това ще ви спести много време, когато влезете в "истинско криптиране".

3) Извършено криптиране на целия диск на Windows 7 64; GNU/Linux Parrot 4x; GNU/Debian 9.0/9.5.

4) Реализира успешна атака на негов GRUB2 буутлоудър.

5) Урокът е създаден, за да помогне на всички параноици в ОНД, където криптирането е законно разрешено. И на първо място, за тези, които искат да въртят криптиране на целия диск, без да разрушават конфигурираните си системи.

6) Преработено и актуализирано ръководството, което е актуално през 2020 г.

[G] Полезна документация

  1. Ръководство за потребителя на TrueCrypt (Февруари 2012 г. RU)
  2. Документация на VeraCrypt
  3. /usr/share/doc/cryptsetup(-run) [локално споделяне] (официална подробна документация за настройка на GNU/Linux криптиране с cryptsetup)
  4. Официални често задавани въпроси за настройка на криптиране (кратка документация за настройка на GNU/Linux криптиране с cryptsetup)
  5. Шифроване на устройства LUKS (документация за archlinux)
  6. Подробно описание на синтаксиса на cryptsetup (страница с ръководство за архив)
  7. Подробно описание на crypttab (страница с ръководство за архив)
  8. Официална документация на GRUB2.

Етикети: криптиране на пълен диск, криптиране на дялове, криптиране на пълен диск на Linux, пълно системно криптиране LUKS1.

В анкетата могат да участват само регистрирани потребители. Впиши се, Моля те.

Шифровате ли?

  • 17,1%Криптирам всичко, което мога. Аз съм параноичен.14

  • 34,2%Аз криптирам само важни данни.28

  • 14,6%Понякога криптирам, понякога забравям.12

  • 34,2%Не, не криптирам, неудобно е и скъпо.28

82 потребители гласуваха. 22 потребители се въздържаха.

Източник: www.habr.com

Добавяне на нов коментар