Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка
Абноўленае сваё ж кіраўніцтва па паўнадыскавым шыфраванні ў рунэце 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; Cryptsetup; GnuPG; Seahorse; Hashdeep; GRUB2 - свабоднае/бясплатнае.

Вышэйапісаная схема часткова вырашае праблему "выносны boot на флэшку", дазваляе атрымліваць асалоду ад зашыфраванымі OS Windows/Linux і абменьвацца дадзенымі па "зашыфраваным канале" з адной АС у іншую.

Парадак загрузкі ПК (адзін з варыянтаў):

  • уключэнне машыны;
  • загрузка загрузніка VeraCrypt (дакладны ўвод пароля працягне загрузку Windows 7);
  • націск клавішы "Esc" загрузіць загрузнік GRUB2;
  • загрузнік GRUB2 (выбар дыстрыбутыва/ GNU/Linux/CLI), запатрабуе аўтэнтыфікацыю GRUB2-суперкарыстальніка <лагін/пароль>;
  • пасля паспяховай аўтэнтыфікацыі і выбару дыстрыбутыва, запатрабуецца ўвод парольнай фразы для разблакіроўкі "/boot/initrd.img";
  • пасля ўводу беспамылковых пароляў у GRUB2 «патрабуецца» увод пароля (трэцяга па ліку, пароль BIOS або пароль улікоўкі карыстальніка GNU/Linux – not consider) для разблакавання і загрузкі АС GNU/Linux, ці аўтаматычная падстаноўка сакрэтнага ключа (два паролі + ключ, альбо пароль + ключ);
  • вонкавае ўварванне ў канфігурацыю GRUB2 замарозіць працэс загрузкі GNU/Linux.

Клапотна? Ок, ідзем аўтаматызаваць працэсы.

Пры разметцы жорсткага дыска (табліца MBR) ПК можа мець не больш за 4-х галоўных раздзелаў, ці 3-х галоўных і аднаго пашыранага, а таксама не размечаную вобласць. Пашыраны раздзел у адрозненне ад галоўнага можа змяшчаць падраздзелы (лагічныя дыскі=пашыраны раздзел). Іншымі словамі, "пашыраны падзел" на HDD замяняе LVM для бягучай задачы: поўнага сістэмнага шыфравання. Калі ваш дыск размешчаны на 4 галоўныя часткі, вам неабходна выкарыстоўваць lvm, або трансфармаваць (з фарматаваннем) раздзел з галоўнага на пашыраны, або пісьменна скарыстацца ўсімі чатырма раздзеламі і пакінуць усё, як ёсць, атрымаўшы жаданы вынік. Нават калі ў вас на дыску адна частка, Gparted дапаможа разбіць HDD (на дадатковыя раздзелы) без страты дадзеных, але ўсё ж з невялікай расплатай за такія дзеянні.

Схема разметкі цвёрдай кружэлкі, адносна якой пайдзе вербалізацыя ўсяго артыкула, прадстаўлена ў табліцы ніжэй.

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка
Табліца (№1) раздзелаў 1Тб.

Нешта падобнае павінна быць і ў вас.
sda1 - галоўная частка №1 NTFS (зашыфраваны);
sda2 - пашыраны раздзел маркер;
sda6 — лагічная кружэлка (на яго ўсталяваны загрузнік GRUB2);
sda8 - swap (зашыфраваны файл падпампоўкі/не заўсёды);
sda9 - тэставы лагічны дыск;
sda5 - лагічная кружэлка для цікаўных;
sda7 — АС GNU/Linux (перанесеная АС на зашыфраваную лагічную кружэлку);
sda3 — галоўная частка №2 з АС Windows 7 (шыфраваны);
sda4 — галоўны раздзел №3 (у ім размяшчалася незашыфраваная GNU/Linux, выкарыстоўваецца пад бэкап/не заўсёды).

[А] Блочнае сістэмнае шыфраванне Windows 7

А1. VeraCryptПоўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

загрузка з афіцыйнага сайта, альбо з люстэрка SourceForge усталявальнай версіі крыптаграфічнага ПЗ VeraCrypt (на момант публікацыі артыкула v1.24-Update3, партатыўная версія VeraCrypt не падыдзе для сістэмнага шыфравання). Чакніце кантрольную суму загружанага софту

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

і параўнайце атрыманы вынік з выкладзенай КС на сайце распрацоўніка VeraCrypt.

Калі ўсталявана ПА HashTab, яшчэ прасцей: ПКМ (VeraCrypt Setup 1.24.exe)-уласцівасці-хэш сумы файлаў.

Для праверкі подпісы праграмы ў сістэме павінны быць устаноўлены ПЗ і публічны pgp ключ распрацоўніка gnuPG; gpg4win.

А2. Усталяванне/запуск ПЗ VeraCrypt з правамі адміністратараПоўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

А3. Выбар параметраў сістэмнага шыфравання актыўнай часткіVeraCrypt – Сістэма – Зашыфраваць сістэмную частку/дыск – Звычайны – Зашыфраваць сістэмную частку Windows – Мультызагрузка – (папярэджанне: "Неспрактыкаваным карыстальнікам не рэкамендуецца выкарыстоўваць гэты метад" і гэта праўда, згаджаемся "Так") – Загрузачны дыск («так», нават калі не так, усё роўна «так») – Лік сістэмных дыскаў «2 і больш» – Некалькі сістэм на адным дыску «Так» – Ня Windows загрузнік «Не» (па факце "Так", але загрузнікі VeraCrypt/GRUB2 не падзеляць MBR паміж сабой, дакладней, у MBR/загрузнай дарожцы захоўваецца толькі найменшая частка кода загрузніка, асноўная яго частка размяшчаецца ў межах файлавай сістэмы) – Мультызагрузка – Настройкі параметраў шыфравання…

Калі адхіліцца ад вышэйапісаных крокаў (схемы блокавага сістэмнага шыфравання), то VeraCrypt выкаціць папярэджанне і не дазволіць шыфраваць падзел.

На наступным кроку, да мэтанакіраванай абароны дадзеных, правядзіце "Тэст" і выбірайце алгарытм шыфравання. Калі ў вас несучасны CPU, то хутчэй за ўсё самым хуткім апынецца алгарытм шыфравання Twofish. Калі CPU магутны, розніцу заўважыце: AES — шыфраванне па выніках тэсту будзе ў некалькі разоў больш хуткае за сваіх криптоконкурентов. AES – папулярны алгарытм шыфравання, апаратная частка сучасных CPU спецыяльна аптымізавана на "сакрэт" так і на "ўзлом".

VeraCrypt падтрымлівае магчымасць крыптаваць дыскі каскадам AES(Twofish)/і іншымі камбінацыямі. На стара-ядзерным CPU Intel дзесяцігадовай даўнасці (без апаратнай падтрымкі AES, шыфраванне каскадам А/Т) зніжэнне прадукцыйнасці ў сутнасці незаўважнае. (у CPU AMD той жа эпохі / ~ параметраў - прадукцыйнасць трохі зніжана). АС працуе ў дынаміцы і спажыванне рэсурсаў на празрыстае шыфраванне - незаўважнае. У адрозненне, як напрыклад, прыкметнае зніжэнне прадукцыйнасці з-за ўсталяванага тэставага нестабільнага desktop environment Mate v1.20.1 (або v1.20.2 сапраўды не памятаю) у GNU/Linux, ці з-за працы падпраграмы тэлеметрыі ў Windows7↑. Звычайна дасведчаныя карыстачы да шыфравання праводзяць тэсты на прадукцыйнасць жалеза. Напрыклад, у Aida64/Sysbench/systemd-analyze blame і параўноўваюць з вынікамі гэтых жа тэстаў пасля крыптавання сістэмы, тым самым, для сябе абвяргаючы міф, "сістэмнае шыфраванне – гэта шкодна". Запаволенне машыны і нязручнасць адчувальна пры рэзервовым капіяванні/аднаўленні зашыфраваных дадзеных, таму што сама па сабе аперацыя "сістэмнага рэзервовага капіявання дадзеных" вымяраецца не ў мс, і дадаюцца тыя самыя "расшыфраваць/зашыфраваць на лёце". У канчатковым выніку кожны карыстач, якому дазволена важдацца з крыптаграфіяй, усталёўвае баланс алгарытму шыфравання адносна задавальненні пастаўленых задач, ступені сваёй параноі і выгодай карыстання.

Параметр PIM лепш пакінуць па змаўчанні, каб пры загрузцы АС кожны раз не ўводзіць дакладныя значэнні ітэрацый. VeraCrypt ужывае велізарную колькасць ітэрацый для стварэння сапраўды «павольнага хэша». Атака на такую ​​«крыптаўлітку» метадам Brute force/вясёлкавых табліц мае сэнс толькі пры кароткай «простай» парольнай фразе і персанальнага charset-ліст ахвяры. Адплата за ўстойлівасць пароля - затрымка пры правільным уводзе пароля пры загрузцы АС (мантаванне тамоў VeraCrypt у GNU/Linux - істотна хутчэй).
Свабодны софт для рэалізацыі brute force атакі (выманне парольнай фразы з загалоўка дыска VeraCrypt/LUKS) Hashcat. John the Ripper не ўмее ламаць Veracrypt , а пры працы з LUKS не разумее крыптаграфію Twofish.

Па чынніку крыптаграфічнай устойлівасці алгарытмаў шыфравання, нястрымныя шыфрапанкі распрацоўваюць софт з іншым вектарам нападу. Напрыклад, вымання метададзеных/ключоў з АЗП (атака халодным чаравіком/прамым доступам да памяці), існуе спецыялізаванае вольнае і нявольнае ПА для гэтых мэт.

Па канчатку налады/генерацыі "унікальных метададзеных" шыфруемага актыўнага падзелу, VeraCrypt прапануе перазагрузіць ПК і пратэставаць працаздольнасць свайго загрузніка. Пасля reboot-а/старта Windows, VeraCrypt падгрузіцца ў рэжыме чакання, застанецца толькі пацвердзіць працэс шыфравання – Y.

На фінальным этапе сістэмнага шыфравання VeraCrypt прапануе стварыць рэзервовую копію загалоўка актыўнай зашыфраванай часткі ў выглядзе "veracrypt rescue disk.iso". у гэтым софце такая аперацыя з'яўляецца патрабаваннем (у LUKS, як патрабаванне - гэта нажаль, апушчана, але падкрэслена ў дакументацыі). Rescue disk спатрэбіцца ўсім, а камусьці і не адзін раз. Страта (перазапіс загалоўка/MBR) рэзервовай копіі загалоўка назаўжды пазбавіць доступу да дэшыфраванай часткі з OS Windows.

А4. Стварэнне выратавальнага usb/дыска VeraCryptПа змаўчанні VeraCrypt прапануе прапаліць "метададзеныя ~2-3мБ" на кампакт-дыск, але не ва ўсіх людзей ёсць дыскі ці прывады DWD-ROM-ы, а стварэнне загрузнай флэшкі "VeraCrypt Rescue disk" для кагосьці апынецца тэхнічнай неспадзеўкай: Rufus /GUIdd-ROSA ImageWriter і іншы падобны софт - не змогуць зладзіцца з пастаўленай задачай, таму што апроч капіявання зрушаных метададзеных на загрузную флэшку, трэба з выявы зрабіць copy/paste за межамі файлавай сістэмы usb-назапашвальніка, карацей, правільна скапіяваць MBR/дарожку на зьвязак ключоў. З-пад АС GNU/Linux стварыць загрузную флэшку, можна скарыстаўшыся ўтылітай "dd", гледзячы на ​​гэтую таблічку.

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Стварэнне выратавальнага дыска ў асяроддзі Windows – інакш. Распрацоўнік VeraCrypt не ўлучыў рашэнне гэтай задачы ў афіцыйную дакументацыю па "rescue disk", але прапанаваў рашэнне іншым шляхам: выклаў дадатковае ПЗ па стварэнні "usb rescue disk" у вольны доступ, на сваім форуме VeraCrypt. Архіварыус гэтага ПА для Windows - "стварэнне usb veracrypt rescue disk". Пасля захавання rescue disk.iso пачнецца працэс блокавага сістэмнага шыфравання актыўнай часткі. Падчас шыфравання праца АС не спыняецца, перазагрузка ПК не патрабуецца. Па завяршэнні аперацыі крыптавання, актыўная частка становіцца цалкам зашыфраваным, можна карыстацца. Калі пры запуску ПК не з'яўляецца загрузнік VeraCrypt, і не дапамагае аперацыя ўзнаўлення загалоўка, то праверце сцяг "boot", ён павінен быць усталяваны на частку, дзе прысутнічае Windows (незалежна ад шыфравання і іншых АС, гл. табліца №1).
На гэтым апісанне блокавага сістэмнага шыфравання з АС Windows скончана.

[B] LUKS. Шыфраванне GNU/Linux (~Debian) усталяванай АС. Алгарытм і Крокі

Для таго каб зашыфраваць усталяваны Debian/вытворны дыстрыбутыў, патрабуецца супаставіць падрыхтаваную частку з віртуальнай блокавай прыладай, перанесці на супастаўлены дыск GNU/Linux, і ўсталяваць/наладзіць GRUB2. Калі ў вас не голы сервер, і вы шануеце сваім часам, тое карыстацца неабходна GUI, а большасць тэрмінальных каманд, апісаных ніжэй, маецца на ўвазе ў «рэжыме Чак-Норыс».

B1. Загрузка ПК з live usb GNU/Linux

«Правесці крыптатэст на прадукцыйнасць жалеза»

lscpu && сryptsetup benchmark

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Калі вы шчаслівы ўладальнік магутнай тачкі з апаратнай падтрымкай AES, то лічбы будуць падобныя на правую частку тэрмінала, калі вы шчаслівы, але з антычным жалезам - на левую частку.

B2. Разметка дыска. мантаванне/фарматаванне фс лагічнай кружэлкі 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, Key: 256 біт, LUKS header hashing: sha256, RNG: /dev/urandom> (залежыць ад версіі cryptsetup).

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

Пры адсутнасці апаратнай падтрымкі AES на CPU, лепшым выбарам будзе стварэнне пашыранага "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 алгарытм хэшавання/крыптафункцыя, выкарыстоўваецца ГСЧ (—use-urandom) для генерацыі ўнікальнага ключа шыфравання/дэшыфраванні загалоўка лагічнай кружэлкі, другаснага ключа загалоўка (XTS); унікальнага майстар ключа які захоўваецца ў зашыфраваным загалоўку дыска, другаснага XTS ключа, усе гэтыя метададзеныя і падпраграма шыфравання, якая з дапамогай майстар ключа і другаснага XTS-ключа шыфруюць/дэшыфруюць любыя дадзеныя на падзеле (акрамя загалоўка падзелу) захоўваюцца ў ~3мБ на абранай частцы цвёрдай кружэлкі.
* -i ітэрацыі ў мілісекундах, замест «колькасці» (затрымка па часе пры апрацоўцы парольнай фразы, уплывае на загрузку АС і крыптаўстойлівасць ключоў). Для захавання балансу крыптаўстойлівасці пры простым паролі тыпу "russian" патрабуецца павялічваць значэнне -(i), пры складаным паролі тыпу "?8dƱob/øfh" значэнне можна памяншаць.
* —use-urandom генератар выпадковых лікаў, генеруе ключы і соль.

Пасля супастаўлення часткі sda7 > sda7_crypt (аперацыя хуткая, бо ствараецца зашыфраваны загаловак з метададзенымі ~3 мБ і на гэтым усё), трэба адфарматаваць і змантаваць файлавую сістэму sda7_crypt.

B2.3. Параўнанне

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

варыянты:
* open -супаставіць раздзел «з імем»;
* /dev/sda7 -лагічная кружэлка;
* sda7_crypt -супастаўленне імя, якое выкарыстоўваецца для мантавання зашыфраванай часткі ці яго ініцыялізацыі пры загрузцы АС.

B2.4. Фарматаванне файлавай сістэмы sda7_crypt у ext4. Мантаванне дыска ў АС(Нататка: у Gparted працаваць з шыфраванай часткай ужо не атрымаецца)

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

варыянты:
* -v -вербалізацыя;
* -L -пазнака дыска (якая адлюстроўваецца ў правадыру сярод іншых дыскаў).

Далей, варта прымантаваць віртуальнае-шыфраваную блокавую прыладу /dev/sda7_crypt у сістэму

mount /dev/mapper/sda7_crypt /mnt

Праца з файламі ў тэчцы /mnt прывядзе да аўтаматычнага шыфравання/дэшыфраванні дадзеных у sda7.

Зручней супастаўляць і мантаваць падзел у правадыру (nautilus/caja GUI), раздзел ужо будзе ў спісе выбару дыскаў, застанецца ўвесці толькі парольную фразу для адкрыцця/расшыфравання дыска. Параўнальнае імя пры гэтым будзе абранае аўтаматычна і не "sda7_crypt", а нешта накшталт /dev/mapper/Luks-xx-xx…

B2.5. Рэзервовае капіраванне загалоўка дыска (метададзеныя ~3мб)Адна з самых важных аперацый, якую неабходна зрабіць, не адкладаючы - рэзервовая копія загалоўка "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 -каманда аднаўлення;
* ~/Бэкап_DebSHIFR - файл рэзервовай копіі;
* /dev/sda7 -частка, чыю рэзервовую копію шыфраванага загалоўка дыска патрабуецца захаваць.
На гэтым кроку <стварэнне і рэдагаванне зашыфраванай часткі> скончана.

B3. Перанос АС GNU/Linux (sda4) на зашыфраваны раздзел (sda7)

Ствараем тэчку /mnt2 (Нататка — мы ўсё яшчэ працуем з live usb, у кропку /mnt змантаваны sda7_crypt), і мантуем наш 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/шыфраванаяАС і /mnt2/дэшыфраванаяАС. Хуткая праверка ў якой АС вы знаходзіцеся (у тым ліку і на будучыню):

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. Стварэнне/настройка зашыфраванага swap, праўка crypttab/fstabБо файл падпампоўкі пры кожным старце АС фарматуецца, тое не мае сэнсу ствараць і супастаўляць swap з лагічнай кружэлкай цяпер, і набіваць каманды, як у п.B2.2. Для Swap-а пры кожным старце будуць аўтаматычна генеравацца свае часовыя шыфравальныя ключы. Жыццёвы цыкл ключоў swap-a: размантаванне/адключэнне swap-падзелу (+ачыстка АЗП); ці перазапуск АС. Налада swap, адчыняны файл, які адказвае за канфігурацыю блокавых шыфраваных прылад (аналаг fstab-файла, але які адказвае за крыпта).

nano /etc/crypttab 

правім

#"target name" "source device" "key file" "options"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Опцыі
* swap -супастаўленае імя пры шыфраванні /dev/mapper/swap.
* /dev/sda8 -выкарыстоўвайце ваш лагічны раздзел пад swap.
* /dev/urandom -генератар выпадковых ключоў шыфравання для swap (з кожнай новай загрузкай АС - створаныя новыя ключы). Генератар /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 none swap sw 0 0

/dev/mapper/swap -імя , якое задалі ў crypttab.

Альтэрнатыўны зашыфраваны swap
Калі па нейкіх чынніках вы не жадаеце аддаваць цэлую частку пад файл падпампоўкі, то можна пайсці альтэрнатыўным і лепшым шляхам: стварэнне файла падпампоўкі ў файле на зашыфраваным падзеле з АС.

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

# "target name" "source device" "key file" "options"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

калі супастаўлялі падзел sda7>sda7_crypt як у п.B2.2

# "target name" "source device" "key file" "options"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

калі супастаўлялі падзел sda7>sda7_crypt як у п.B2.1 or B2.2, але не жадаеце паўторна ўводзіць пароль для разблакавання і загрузкі АС, то замест пароля можна падставіць сакрэтны ключ/выпадковы файл

# "target name" "source device" "key file" "options"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Апісанне
* none -паведамляе, што пры загрузцы АС, для разблакіроўкі кораня патрабуецца ўвод сакрэтнай парольнай фразы.
* UUID -ідэнтыфікатар часткі. Каб даведацца пра свой ідэнтыфікатар набіраеце ў тэрмінале (напамін, што ўвесь гэты час і далей, вы працуеце ў тэрмінале ў асяроддзі chroot, а не ў іншым тэрмінале live 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 з тэрмінала live usb пры змантаваным sda7_crypt).
UUID бераце менавіта ад вашага sdaX (не sdaX_crypt!, UUID sdaX_crypt - аўтаматам сыдзе пры генерацыі канфіга grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks шыфраванне ў пашыраным рэжыме.
* /etc/skey -сакрэтны файл-ключ, які падстаўляецца аўтаматычна для разблакоўкі загрузкі АС (замест уводу 3-га пароля). Файл можна паказаць любы да 8мб, але счытвацца дадзеныя будуць <1мб.

#Создание "генерация" случайного файла <секретного ключа> размером 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 poin" "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. Рэдагаванне канфігурацыйных файлаў. Ключавы момантB4.5.1. Рэдагаванне канфіга /etc/initramfs-tools/conf.d/resume

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

і закаментуйце (калі існуе) "#" радок "resume". Файл павінен быць цалкам пусты.

B4.5.2. Рэдагаванне канфіга /etc/initramfs-tools/conf.d/cryptsetup

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

павінна адпавядаць

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=yes
export CRYPTSETUP

B4.5.3. Рэдагаванне канфіга /etc/default/grub (менавіта гэты канфіг адказвае за ўменне генераваць grub.cfg пры працы з зашыфраваным /boot)

nano /etc/default/grub

дадаем радок «GRUB_ENABLE_CRYPTODISK=y»
значэнне 'y', grub-mkconfig і grub-install будуць правяраць наяўнасць зашыфраваных кружэлак і генераваць дадатковыя каманды, неабходныя для іх доступу падчас загрузкі (insmod-ы ).
павінна быць падабенства

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=«acpi_backlight=vendor»
GRUB_CMDLINE_LINUX="quiet splash noautomount"
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, ключ неабходны для разблакіроўкі кораня пры загрузцы АС (калі няма жадання ўводзіць пароль паўторна, аўта падстаўляецца ключ "skey").

B4.6. Абнаўленне /boot/initrd.img [version]Каб спакаваць сакрэтны ключ у initrd.img і прымяніць выпраўленні cryptsetup, абнаўляем вобраз

update-initramfs -u -k all

пры абнаўленні initrd.img (як гаворыцца "Магчыма, але гэта не дакладна") з'явяцца папярэджанні, звязаныя з cryptsetup, ці, напрыклад, апавяшчэнне аб страце модуляў Nvidia - гэта звычайная з'ява. Пасля абнаўлення файла, правярайце, што ён сапраўды абнавіўся гл. па часе (адносна chroot асяроддзя./boot/initrd.img). Увага! перад [update-initramfs -u -k all] абавязкова праверыць, што cryptsetup open /dev/sda7 sda7_crypt - менавіта гэтае імя павінна быць, якое фігуруе ў /etc/crypttab, інакш пасля reboot-a памылка busybox)
На гэтым кроку настройка файлаў канфігурацыі завершана.

[З] Устаноўка і настройка GRUB2/Абарона

C1. Пры неабходнасці адфарматуйце вылучаную частку для загрузніка (частцы досыць не меней 20мБ)

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]У вас павінен быць змантаваны раздзел [п.С.2]

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

опцыі
* —force -усталёўка загрузніка, абыходзячы ўсе папярэджанні, якія практычна заўсёды існуюць і блакуюць усталёўку (абавязковы сцяг).
* —root-directory -усталёўка каталога у корань sda6.
* /dev/sda6 -ваш sdaХ падзел (не прапусціце <прабел> паміж /mnt /dev/sda6).

C4. Стварэнне файла канфігурацыі [grub.cfg]Забудзьцеся аб камандзе "update-grub2", і выкарыстайце паўнавартасную каманду генерацыі файла канфігурацыі

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

пасля завяршэння генерацыі/абнаўленні файла grub.cfg, у тэрмінале высновы павінны быць радкі(ы) з знойдзенымі АС на дыску («grub-mkconfig» магчыма знойдзе і падхопіць АС з live usb, калі ў вас мультызагрузная флэшка з Windows 10 і кучай жывых дыстрыбутываў – гэта нармальна). Калі ў тэрмінале "пуста", файл "grub.cfg" не згенераваны, тое гэта той самы выпадак, калі ў сістэме GRUBыя багі (і хутчэй за ўсё загрузнік з тэставай галінкі рэпазітара), пераўсталюеце GRUB2 з надзейных крыніц.
Устаноўка "простая канфігурацыя" і настройка GRUB2 завершана.

C5. Proof-test зашыфраванай АС GNU/LinuxКарэктнае завяршаем крыптамісію. Акуратна пакідаем зашыфраваную 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 "не знойдзены" - гэта праблема загрузніка grub2, яго варта пераўсталяваць, напрыклад , з тэставай галінкі/стабільны і пд).
Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

*У залежнасці ад таго, як вы наладзілі сістэму (гл. п.B4.4/4.5) пасля дакладнага ўводу пароля для разблакоўкі выявы /boot/initrd.img, спатрэбіцца пароль для загрузкі ядра/кораня АС, альбо аўтаматычна падставіцца сакрэтны ключ « skey», пазбаўляючы ад паўторнага ўводу парольнай фразы.
Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка
(скрын "аўтаматычная падстаноўка сакрэтнага ключа").

*Далей панясецца знаёмы працэс загрузкі GNU/Linux з аўтэнтыфікацыяй уліку карыстальніка.
Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

*Пасля аўтарызацыі карыстальніка і ўваходу ў АС, трэба паўторна абнавіць /boot/initrd.img (гл В4.6).

update-initramfs -u -k all

А ў выпадку лішніх радкоў у меню GRUB2 (з падхвата АС-м з live usb) пазбавіцца ад іх

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

Кароткі вынік па сістэмным шыфраванні GNU/Linux:

  • GNU/Linuxinux зашыфраваны цалкам, у тым ліку /boot/kernel and initrd;
  • сакрэтны ключ спакаваны ў initrd.img;
  • бягучая схема аўтарызацыі (увод пароля на разблакоўку initrd; пароль/ключ на загрузку АС; пароль аўтарызацыі ўліку Linux).

"Простая канфігурацыя GRUB2" сістэмнае шыфраванне блокавай часткі скончана.

С6. Пашыраная настройка GRUB2. Абарона загрузніка лічбавым подпісам + абарона аўтэнтыфікацыяйGNU/Linux зашыфраваны цалкам, але загрузнік шыфраваць нельга - такая ўмова прадыктавана BIOS. Па гэтым чынніку ланцужковая зашыфраваная загрузка GRUB2 немагчымая, але магчымая/даступная простая ланцужковая загрузка, з пункта гледжання абароны – не трэба [гл. П. F].
Для "ўразлівага" GRUB2 распрацоўнікі рэалізавалі алгарытм абароны загрузніка "подпісам / аўтэнтыфікацыяй".

  • Пры абароне загрузніка "сваім лічбавым подпісам" знешняя мадыфікацыя файлаў, альбо спроба загрузіць у дадзеным загрузніку дадатковыя модулі - прывядзе працэс загрузкі да блакіроўкі.
  • Пры абароне загрузніка аўтэнтыфікацыяй для выбару загрузкі якога-небудзь дыстрыбутыва, альбо ўвод дадатковых каманд у CLI, запатрабуецца ўвесці лагін і пароль суперкарыстача-GRUB2.

С6.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 ###)
"set superusers="root"
password_pbkdf2 root хэш».

Павінна быць прыкладна так

# Гэты файл выкарыстоўваецца як добра, каб атрымаць уласную menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# радок "exec tail" вышэй.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
set superusers=«root»
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Калі вы часта карыстаецеся камандай "grub-mkconfig -o /mnt/boot/grub/grub.cfg" і не жадаеце ўносіць кожны раз змены ў grub.cfg, запішыце вышэйапісаныя радкі (лагін/пароль) у карыстацкі скрыпт GRUB-а ў самы ніз

nano /etc/grub.d/41_custom 

cat << EOF
set superusers=«root»
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Пры генерацыі канфіга "grub-mkconfig -o /mnt/boot/grub/grub.cfg", радкі, якія адказваюць за аўтэнтыфікацыю, будуць дадавацца аўтаматычна ў grub.cfg.
На гэтым кроку настройка аўтэнтыфікацыі GRUB2 завершана.

С6.2. Абарона загрузніка лічбавым подпісамМяркуецца, што ў вас ужо ёсць ваш персанальны pgp-ключ шыфравання (або стварыце такі ключ). У сістэме павінна быць усталявана крыптаграфічнае ПЗ: gnuPG; kleopatra/GPA; Seahorse. Крыпта-ПА істотна аблегчыць вам жыццё ва ўсіх падобных справах. 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 -усталёўка каталога boot у корань sda6
/dev/sda6 -ваш sdaХ падзел.

Генераваны / абнаўляем grub.cfg

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

Дадаем у канец файла "grub.cfg" радок "trust /boot/grub/perskey" (прымусова выкарыстоўваць pgp-ключ.) Бо мы ўсталявалі GRUB2 з наборам модуляў, у тым ліку і модулем подпісу "signature_test.mod", тое гэта пазбаўляе ад дадання ў канфіг каманд нібыта "set check_signatures=enforce".

Выглядаць павінна прыкладна так (канцавыя радкі ў файле grub.cfg)

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
trust /boot/grub/perskey
set superusers=«root»
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Шлях да "/boot/grub/perskey" не трэба паказваць на пэўную частку дыска, напрыклад hd0,6, для сябе загрузніка "корань" з'яўляецца дэфолтным шляхам часткі, на які ўсталяваны GRUB2 (гл. set rot=..).

Падпісваем GRUB2 (усе файлы ва ўсіх дырэкторыях /GRUB) сваім ключом "perskey".
Простае рашэнне, як падпісаць (для правадыра nautilus/caja): усталёўваны з рэпазітара пашырэнне «seahorse» для правадыра. Ключ у вас павінен быць дададзены ў сераду su.
Адкрываеце правадыр ад sudo "/mnt/boot" - ПКМ - падпісаць. На скрыне гэта выглядае гэта так

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Сам ключ "/mnt/boot/grub/perskey" (скапіяваць у каталог grub) таксама павінен быць падпісаны сваім жа подпісам. Праверце, што ў каталогу/падкаталогах з'явіліся подпісы файлаў [*.sig].
Вышэйапісаным спосабам падпісваем "/boot" (нашы kernel, 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. Proof-test загрузчыка GRUB2, абароненага лічбавым подпісам і аўтэнтыфікацыяйGRUB2. Пры выбары якога-небудзь дыстрыбутыва GNU/Linux ці ўваход у CLI (камандны радок) спатрэбіцца аўтарызацыя суперкарыстальніка. Пасля ўводу дакладнага лагіна/пароля запатрабуецца пароль ад initrd

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка
Скрын, паспяховая аўтэнтыфікацыя GRUB2-суперкарыстальніка.

Калі падрабіць які-небудзь з файлаў GRUB2/унесці змены ў grub.cfg, ці выдаліць файл/подпіс, падгрузіць шкоднасны модуль.mod, тое з'явіцца адпаведнае папярэджанне. Загрузка GRUB2 прыпыніцца.

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка
Скрын, спроба ўмяшацца ў GRUB2 "з-за".

Пры "нармальнай" загрузцы "без уварвання", сістэмны статус кода выхаду "0". Таму невядома ці працуе абарона ці не (гэта значыць "з абаронай загрузніка подпісам або без яе" пры нармальнай загрузцы статус адзін і той жа "0" - гэта дрэнна).

Як праверыць абарону лічбавым подпісам?

Няёмкі спосаб праверкі: падрабіць/выдаліць выкарыстоўваны GRUB2 модуль, напрыклад, выдаліць подпіс luks.mod.sig і атрымаць памылку.

Правільны спосаб: зайсці ў CLI загрузніка і набраць каманду

trust_list

У адказ павінны атрымаць адбітак "perskey", калі статус "0", значыць абарона подпісам не працуе, пераправяраць п.C6.2.
На гэтым кроку пашыраная настройка "Абарона GRUB2 лічбавым подпісам і аўтэнтыфікацыяй" скончана.

С7 Альтэрнатыўны метад абароны загрузніка GRUB2 з дапамогай хэшаванняАпісаны вышэй спосаб "Абарона загрузніка ЦП / Аўтэнтыфікацыяй" – гэта класіка. З-за недасканаласці GRUB2, у паранаідальных умовах той схільны рэальнаму нападу, якую я прывяду ніжэй у п.[F]. Акрамя таго, пасля абнаўлення АС/ядра неабходна перападпісваць загрузнік.

Абарона загрузніка GRUB2 з дапамогай хэшавання

Перавагі перад класікай:

  • Больш высокі ўзровень надзейнасці (хэшаванне/праверка праходзіць толькі з зашыфраванага лакальнага рэсурсу. Кантралюецца ўся вылучаная частка пад GRUB2 на любыя змены, а ўсё астатняе зашыфравана, у класічнай жа схеме з абаронай загрузніка ЦП/Аўтэнтыфікацыяй кантралююцца толькі файлы, але не вольная прастора, у якое «што- тое злавеснае» можна дапісаць).
  • Зашыфраванае лагіраванне (у схему дадаецца лёгкачытальны персанальны шыфраваны лог).
  • Хуткасць (абарона/праверка цэлай часткі вылучанага пад GRUB2 адбываецца практычна імгненна).
  • Аўтаматызацыя ўсіх крыптаграфічных працэсаў.

Недахопы перад класікай.

  • Падробка подпісу (тэарэтычна, магчыма знаходжанне зададзенай калізіі хэш функцыі).
  • Падвышаны ўзровень складанасці (у параўнанні з класікай патрабуецца крыху больш навыкаў валодання ў АС GNU/Linux).

Як працуе ідэя з хэшаваннем GRUB2/падзелу

«Падпісваецца» частка GRUB2, пры загрузцы АС адбываецца праверка нязменнасці часткі загрузніка з наступным лагіраваннем у бяспечным асяроддзі (зашыфраваным). У выпадку кампраметацыі загрузніка, або яго часткі, у дадатак да лога ўварвання запускаецца такая

штука.Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Чатыры разы на дзень адбываецца аналагічная праверка, якая не нагружае рэсурсы сістэмы.
З дапамогай каманды "-$ проверка_GRUB" адбываецца імгненная праверка ў любы момант часу без лагавання, але з высновай інфармацыі ў CLI.
З дапамогай каманды «-$ sudo подпіс_GRUB» адбываецца імгненнае перападпісанне загрузніка GRUB2/падзелу і яго абноўленае лагіраванне (неабходна пасля абнаўлення АС/boot), і жыццё працягваецца далей.

Рэалізацыя метаду хэшавання загрузніка і яго часткі

0) Падпішам загрузнік/частка GRUB, папярэдне змантаваўшы яго ў /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 і яго загрузніка, save лог.

Створым або скапіюем, напрыклад, «шкоднасны файл» [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

#як бачым з'явілася "Files moved: 1 і Audit failed" азначае, што праверка не прайшла.
З-за асаблівасцяў тэстоўванай часткі замест "New files found" > "Files moved"

2) Кладзём гіфку сюды > ~/warning.gif, задаем правы 744.

3) Наладжваем fstab на аўтамантаванне часткі GRUB пры загрузцы

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 defaults 0 0

4) Праводзім ратацыю лога

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

/var/log/podpis.txt {
штодня
круціць 50
Памер 5M
датэкст
сціскаць
delaycompress
olddir /var/log/old
}

/var/log/vtorjenie.txt {
штомесяц
круціць 5
Памер 5M
датэкст
olddir /var/log/old
}

5) Дадаем заданне ў cron

-$ sudo crontab -e

перазагружаць '/podpis'
0 */6 * * * '/podpis

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, выбіраемы «Ачыстка вольнай прасторы» – выбіраемы падзел (ваш sdaX з мінулай копіяй GNU/Linux), запусціцца працэс зачысткі. BleachBit - працірае дыск у адзін праход - гэта тое, што "нам трэба", Але! так працуе толькі ў тэорыі, калі вы фарматавалі дыск і чысцілі ў ПА BB v2.0.

Увага! BB працірае дыск, пакідаючы метададзеныя, імёны файлаў пры ліквідацыі дадзеных захоўваюцца (Ccleaner - не пакідае метададзеных).

І міф аб магчымасці аднаўлення даных з'яўляецца не зусім міфам.Bleachbit V2.0-2 былы пакет unstable OS Debian (і любы іншы падобны софт: sfill; wipe-Nautilus -таксама былі заўважаныя ў гэтай бруднай справе) насамрэч меў крытычную памылку: функцыя «вольная ачыстка прасторы» працуе некарэктна на HDD/Флэшках (ntfs/ext4). ПА падобнага роду пры ачыстцы вольнага месца перазапісваюць не ўся кружэлка, як шматлікія карыстачы думаюць. І некаторыя (Много) выдаленыя дадзеныя АС/ПА лічаць гэтыя дадзеныя невыдаленымі/карыстальніцкімі і пры ачыстцы «АСП» прапускаюць гэтыя файлы. Праблема ў тым, што пасля такой, доўгай па часе, ачысткі дыска "выдаленыя файлы" можна аднавіць нават праз 3+ праходу працірання дыска.
На GNU/Linux у Bleachbit 2.0-2 надзейна працуюць функцыі беззваротнага выдалення файлаў і каталогаў, але не ачыстка вольнай прасторы. Для параўнання: на Windows у ПЗ CCleaner функцыя «АСП для ntfs» працуе спраўна, і Бог сапраўды не зможа прачытаць выдаленыя дадзеныя.

І так, каб грунтоўна выдаліць «кампраметуючыя» старыя нешыфраваныя дадзеныя, неабходны прамы доступ Bleachbit да гэтых дадзеных, далей, скарыстацца функцыяй «выдаленне файлаў/каталогаў беззваротна».
Для выдалення "выдаленых файлаў штатнымі сродкамі АС" у Windows выкарыстоўвайце CCleaner/BB з функцыяй "АСП". У GNU/Linux над гэтай праблемай (выдаленне выдаленых файлаў) вам неабходна атрымаць практыку самастойна (выдаленне дадзеных+самастойная спроба іх аднаўлення і не варта спадзявацца на версію ПЗ (калі не закладка, то баг)), толькі ў такім выпадку вы зможаце зразумець механізм гэтай праблемы і пазбавіцца ад выдаленых дадзеных канчаткова.

Bleachbit v3.0 не правяраў, магчыма, праблему ўжо паправілі.
Bleachbit v2.0 працуе сумленна.

На гэтым кроку "зачыстка дыска" завершана.

[E] Універсальнае рэзервовае капіраванне зашыфраваных АС

У кожнага карыстальніка свой метад рэзервовага капіявання дадзеных, але зашыфраваныя дадзеныя "Сістэмных АС" патрабуюць крыху іншы падыход да задачы. Уніфікаванае ПА, як напрыклад "Clonezilla" і падобны софт не могуць працаваць напрамую з зашыфраванымі дадзенымі.

Пастаноўка задачы рэзервовага капіявання зашыфраваных блокавых прылад:

  1. універсальнасць - аднолькавы алгарытм / ПА рэзервовага капіявання для Windows / Linux;
  2. магчымасць працаваць у кансолі з любой live 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 для АС;
  2. перанос/сінхранізацыя АС з дапамогай ПА Rsync у крыптакантэйнер VeraCrypt;
  3. пры неабходнасці загрузка тома VeraCrypt у www.

Стварэнне зашыфраванага кантэйнера VeraCrypt мае свае асаблівасці:
стварэнне дынамічнага тома (даступна стварэнне ДТ толькі ў Windows, выкарыстоўваць можна і ў GNU/Linux);
стварэнне звычайнага тома, але прысутнічае патрабаванне «паранаідальнага характару» (са слоў распрацоўшчыка) - фарматаванне кантэйнера.

Дынамічны том ствараецца практычна імгненна ў АС Windows, але пры капіяванні дадзеных з АС GNU/Linux > VeraCrypt ДТ, у цэлым прадукцыйнасць аперацыі рэзервовага капіявання змяншаецца істотна.

Звычайны том Twofish у 70 Гб ствараецца (скажам так, на сярэдняй магутнасці ПК) на HDD ~ за паўгадзіны (перазапіс былых дадзеных кантэйнера ў адзін праход, абумоўлена патрабаваннем бяспекі). З VeraCrypt Windows/Linux прыбралі функцыю хуткага фарматавання тома пры ім стварэнні, таму стварэнне кантэйнера магчыма толькі праз "перазапіс у адзін праход", альбо стварэнне слабапрадукцыйнага дынамічнага тома.

Ствараем звычайны том VeraCrypt (не дынамічны/ntfs), ніякіх праблем узнікнуць не павінна.

Наладжваем/ствараем/адкрываем кантэйнер у VeraCrypt GUI> GNU/Linux live usb (там будзе аўтамантаваны ў /media/veracrypt2, тым АС Windows мантаваны ў /media/veracrypt1). Ствараем зашыфраваную рэзервовую копію АС Windows з дапамогай GUI rsync (grsync), расставіўшы галачкі.

Поўнадыскавае шыфраванне Windows Linux усталяваных сістэм. Зашыфраваная мультызагрузка

Дачакацца заканчэння працэсу. Па завяршэнні рэзервовага капіявання, у нас будзе адзін зашыфраваны файл.

Аналагічна стварыць рэзервовую копію АС GNU/Linux, скінуўшы галачку ў GUI rsync "сумяшчальнасць з Windows".

Увага! кантэйнер Veracrypt для "бэкапу GNU/Linux" ствараць у файлавай сістэме ext4. Калі зробіце бэкап у кантэйнер ntfs, то пры аднаўленні такой копіі страціце ўсе правы/групы на ўсе вашыя дадзеныя.

Правесці ўсе аперацыі можна і ў тэрмінале. Асноўныя опцыі для rsync:
* -g -захаваць групы;
* -P -progress - статут часу працы над файлам;
* -H -капіяваць хардлінкі, як ёсць;
* -а -рэжым архіва (некалькі сцягоў rlptgoD);
* -v -вербалізацыя.

Калі жадаецца мантаваць «том Windows VeraCrypt» праз кансоль у ПА cryptsetup, можна стварыць alias (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

Замест alias-а дадамо (скрыпт у аўтазагрузку) сістэмны том з АС Windows і лагічная крыптаваная кружэлка 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) Стварыць том у фс ext4 > 4gb (для файла) Linux у Veracrypt [Крыпта скрыню].
2) Reboot у live usb.
3) ~$ cryptsetup open /dev/sda7 Lunux #супастаўленне шыфраванай часткі.
4) ~$ mount /dev/mapper/Linux /mnt #мантаванне шыфраванай часткі ў /mnt.
5) ~$ mkdir mnt2 #стварэнне каталога для будучага бэкапу.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/Крыпта скрыня Крыпта скрыня && mount /dev/mapper/Крыпта скрыня /mnt2 #Супастаўленне тома Veracrypt з імем «Крыпта скрыня» і мантаванне Крыпта скрыні ў /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" часова "none », пасля rebot-а і ўваходу ў АС перастварыце свой сакрэтны падстаўляны ключ зноўку).

Як ветэраны IT незабыўны асобна рабіць бэкапы загалоўкаў зашыфраваных частак АС Windows/Linux, ці шыфраванне павернецца супраць Вас саміх.
На дадзеным этапе рэзервовае капіраванне зашыфраваных АС скончана.

[F] Атака на загрузнік GRUB2

ПадрабязнасціКалі вы абаранілі свой загрузнік лічбавым подпісам і/або аўтэнтыфікацыяй (гл п.C6.), то ад фізічнага доступу гэта ніяк не абароніць. Зашыфраваныя дадзеныя будуць па-ранейшаму недаступныя, але абыход абароны (скід абароны лічбавага подпісу) GRUB2 дазваляе кіберзладзею ўкараніць свой код у загрузнік, не выклікаючы падазрэнняў (калі толькі карыстач уручную не адсочвае стан загрузніка, ці не прыдумае свой трывалы адвольны-скрыпт-код для grub.cfg).

Алгарытм нападу. Зламыснік

* Загружае ПК з live 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 з опцыяй (-з).» Опцыя "-с" дазволіць загружаць свой канфіг да загрузкі асноўнага "grub.cfg". Канфіг можа складацца ўсяго толькі з аднаго радка: перанакіраванне на любы "modern.cfg", змяшаны, напрыклад, з ~400 файламі (модулі+подпісы) у тэчцы "/boot/grub/i386-pc". Пры гэтым парушальнік можа ўносіць адвольны код і падгружаць модулі, не закранаючы "/boot/grub/grub.cfg", нават калі карыстач ужыў "hashsum" да файла і часова выводзіў яго на экран.
Узломваць лагін/пароль суперкарыстача GRUB2 атакаваламу не запатрабуецца, трэба будзе проста скапіяваць радкі (якія адказваюць за аўтэнтыфікацыю) "/boot/grub/grub.cfg" у свой "modern.cfg"

set superusers=«root»
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

І для гаспадара ПК па-ранейшаму будзе дзейнічаць праверка сапраўднасці суперкарыстальніка GRUB2.

Ланцужная загрузка (загрузнік загружае іншы загрузнік), як пісаў вышэй, не мае сэнсу (яна прызначана для іншай мэты). З-за BIOS нельга загружаць зашыфраваны загрузнік (пры ланцужной загрузцы адбываецца перазапуск GRUB2 > зашыфраваны GRUB2, памылка!). Аднак калі ўсё ж такі скарыстацца ідэяй ад ланцуговай загрузкі, то можна быць упэўненым, што загружаецца менавіта зашыфраваны. (не мадэрнізаваны) "grub.cfg" з зашыфраванай часткі. І гэта таксама ілжывае пачуццё бяспекі, таму што, усё, што паказана ў зашыфраваным "grub.cfg" (падгрузка модуляў) складаецца з модулямі, якія падгружаюцца з незашыфраванага GRUB2.

Калі вы жадаеце гэта праверыць, то вылучыце/зашыфруйце яшчэ адзін раздзел sdaY, скапіруйце на яго GRUB2 (аперацыя grub-install на зашыфраваную частку немагчымая) і ў 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 ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod cryptodisk
insmod luks
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normal /boot/grub/grub.cfg
}

радкі
* insmod -загрузка неабходных модуляў для працы з зашыфраваным дыскам;
* GRUBx2 -назоў выводнага радка ў меню загрузкі GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -гл. fdisk -l (sda9);
* set root -усталёўка кораня;
* normal /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 password protection, GRUB гэта не можа быць непрыдатным некаторым з фізічным access to machine of altering that machine's firmware (eg, Coreboot or BIOS) configuration to cause the machine to boot from different (attacker GRUB з'яўляецца ў вялікім толькі адным чынніку ў бяспечнай панэлі канала».

GRUB2 – занадта перагружаны функцыямі, якія могуць даць пачуццё ілжывай бяспекі, а яго развіццё ўжо апярэдзіла па функцыянальнасці АС MS-DOS, хоць гэта ўсяго толькі загрузнік. Пацешна, што GRUB2 – "заўтра" можа стаць АС, а загружаныя GNU/Linux віртуальнымі машынамі для яго.

Невялікі ролік, пра тое, як я скінуў абарону лічбавым подпісам GRUB2, і заявіў аб сваім уварванні рэальнаму карыстачу (напалохаў, а замест таго, што паказана на роліку – можна напісаць не бяскрыўдны адвольны код/.mod).

Высновы:

1) Блокавае сістэмнае шыфраванне для Windows - рэалізаваць прасцей, а абарона адным паролем зручней, чым абарона некалькімі паролямі пры блокавым сістэмным шыфраванні GNU/Linux, дзеля справядлівасці: апошняе аўтаматызавана.

2) Артыкул напісаў, як рэлевантнае, падрабязнае простае кіраўніцтва да паўнадыскавага шыфравання VeraCrypt/LUKS on one home the machine, якое, на сённяшні дзень лепшае ў рунэце (IMHO). У кіраўніцтве > 50k знакаў таму ў ім не разглядаліся некаторыя цікавыя раздзелы: пра крыптографы, якія знікаюць/трымаюцца ў цені; аб тым, што ў розных кніжках GNU/Linux мала/не пішуць пра крыптаграфію; аб ст.51 канстытуцыі РФ; аб ліцэнзаванні/забароне шыфраванні ў РФ, пра тое для чаго трэба шыфраваць "корань/boot". Кіраўніцтва атрымалася і без таго немалое, але падрабязнае (якая апісвае нават простыя крокі), у сваю чаргу, гэта зэканоміць вам кучу часу, калі вы зоймецеся "сапраўдным шыфраваннем".

3) Поўнадыскавае шыфраванне праводзіў на Windows 7 64; GNU/Linux Parrot 4x; GNU/Debian 9.0/9.5.

4) Рэалізаваў паспяховую атаку на свой загрузнік GRUB2.

5) Tutorial створаны, каб дапамагчы ўсім параноікам СНД, дзе праца з шыфраваннем дазволена на заканадаўчым узроўні. І ў першую чаргу для тых, хто жадае накаціць паўнадыскавае шыфраванне не зносячы свае настроеныя сістэмы.

6) Перапрацаваў і абнавіў сваё кіраўніцтва, якое актуальна ў 2020 годзе.

[G] Карысная дакументацыя

  1. Кіраўніцтва карыстальніка TrueCrypt (люты 2012 RU)
  2. Дакументацыя VeraCrypt
  3. /usr/share/doc/cryptsetup(-run) [лакальны рэсурс] (афіцыйная падрабязная дакументацыя па наладзе шыфравання GNU/Linux з дапамогай cryptsetup)
  4. Афіцыйны FAQ cryptsetup (кароткая дакументацыя па наладзе шыфравання GNU/Linux з дапамогай cryptsetup)
  5. Шыфраванне прылады LUKS (archlinux-дакументацыя)
  6. Падрабязнае апісанне сінтаксісу cryptsetup (старонка кіраўніцтва arch)
  7. Падрабязнае апісанне crypttab (старонка кіраўніцтва arch)
  8. Афіцыйная дакументацыя GRUB2.

Пазнакі: поўнае шыфраванне дыска, шыфраванне часткі, поўнадыскавае шыфраванне Linux, поўнае сістэмнае шыфраванне LUKS1.

Толькі зарэгістраваныя карыстачы могуць удзельнічаць у апытанні. Увайдзіце, Калі ласка.

Шыфруеце?

  • 17,1%Шыфрую ўсё, што толькі магчыма. У мяне параноя.

  • 34,2%Шыфрую толькі важныя дадзеныя.28

  • 14,6%Часам шыфрую, часам забываю.12

  • 34,2%Не, не шыфрую, гэта няёмка і затратна.

Прагаласавалі 82 карыстальніка. Устрымаліся 22 карыстальніка.

Крыніца: habr.com

Дадаць каментар