Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot
Na-update ang sariling gabay sa full-disk encryption sa RuNet V0.2.

Diskarte sa koboy:

[A] Windows 7 system block encryption ng naka-install na system;
[B] GNU/Linux system block encryption (Debian) naka-install na sistema (kabilang ang /boot);
[C] GRUB2 configuration, proteksyon ng bootloader na may digital signature/authentication/hashing;
[D] stripping—pagsira ng hindi naka-encrypt na data;
[E] pangkalahatang backup ng naka-encrypt na OS;
[F] pag-atake <sa item [C6]> target - GRUB2 bootloader;
[G]kapaki-pakinabang na dokumentasyon.

╭───Scheme ng #room 40# :
├──╼ Naka-install ang Windows 7 - buong system encryption, hindi nakatago;
├──╼ Naka-install ang GNU/Linux (Debian at derivative distribution) — buong system encryption, hindi nakatago(/, kasama ang /boot; swap);
├──╼ mga independiyenteng bootloader: Naka-install ang VeraCrypt bootloader sa MBR, naka-install ang GRUB2 bootloader sa extended na partition;
├──╼walang kinakailangang pag-install/muling pag-install ng OS;
└──╼cryptographic software na ginamit: VeraCrypt; Cryptosetup; GnuPG; Kabayo ng dagat; Hashdeep; Ang GRUB2 ay libre/libre.

Ang scheme sa itaas ay bahagyang nalulutas ang problema ng "remote boot sa isang flash drive", ay nagbibigay-daan sa iyo upang tamasahin ang naka-encrypt na OS Windows/Linux at makipagpalitan ng data sa pamamagitan ng isang "naka-encrypt na channel" mula sa isang OS patungo sa isa pa.

PC boot order (isa sa mga opsyon):

  • pag-on sa makina;
  • nilo-load ang VeraCrypt bootloader (Ang pagpasok ng tamang password ay magpapatuloy sa pag-boot ng Windows 7);
  • ang pagpindot sa "Esc" key ay maglo-load ng GRUB2 boot loader;
  • GRUB2 boot loader (piliin ang pamamahagi/GNU/Linux/CLI), ay mangangailangan ng pagpapatunay ng GRUB2 superuser <login/password>;
  • pagkatapos ng matagumpay na pagpapatunay at pagpili ng pamamahagi, kakailanganin mong maglagay ng passphrase para i-unlock ang “/boot/initrd.img”;
  • pagkatapos magpasok ng mga password na walang error, ang GRUB2 ay "nangangailangan" ng isang password entry (pangatlo, BIOS password o GNU/Linux user account password – hindi isaalang-alang) upang i-unlock at i-boot ang GNU/Linux OS, o awtomatikong pagpapalit ng isang lihim na key (dalawang password + key, o password + key);
  • ang panlabas na panghihimasok sa pagsasaayos ng GRUB2 ay mag-freeze sa proseso ng boot ng GNU/Linux.

Magulo? Ok, i-automate natin ang mga proseso.

Kapag naghahati ng isang hard drive (talahanayan ng MBR) Ang isang PC ay maaaring magkaroon ng hindi hihigit sa 4 na pangunahing partition, o 3 pangunahing at isang pinalawig, pati na rin ang isang hindi inilalaang lugar. Ang isang pinahabang seksyon, hindi tulad ng pangunahing isa, ay maaaring maglaman ng mga subsection (logical drives=extended partition). Sa madaling salita, pinapalitan ng "extended partition" sa HDD ang LVM para sa gawaing nasa kamay: full system encryption. Kung ang iyong disk ay nahahati sa 4 na pangunahing partisyon, kailangan mong gumamit ng lvm, o mag-transform (na may pag-format) seksyon mula sa pangunahing hanggang sa advanced, o matalinong gamitin ang lahat ng apat na seksyon at iwanan ang lahat ng kung ano ay, makuha ang ninanais na resulta. Kahit na mayroon kang isang partition sa iyong disk, tutulungan ka ng Gparted na hatiin ang iyong HDD (para sa mga karagdagang seksyon) nang walang pagkawala ng data, ngunit may maliit pa ring parusa para sa mga naturang aksyon.

Ang scheme ng layout ng hard drive, na may kaugnayan sa kung saan ang buong artikulo ay bibigkasin, ay ipinakita sa talahanayan sa ibaba.

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot
Talahanayan (Blg. 1) ng 1TB na mga partisyon.

Dapat mayroon ka ring katulad.
sda1 - pangunahing partisyon No. 1 NTFS (naka-encrypt);
sda2 - pinalawak na marker ng seksyon;
sda6 - lohikal na disk (ito ay may naka-install na GRUB2 bootloader);
sda8 - swap (naka-encrypt na swap file / hindi palaging);
sda9 - pagsubok ng lohikal na disk;
sda5 - lohikal na disk para sa mausisa;
sda7 - GNU/Linux OS (inilipat ang OS sa isang naka-encrypt na lohikal na disk);
sda3 - pangunahing partition No. 2 na may Windows 7 OS (naka-encrypt);
sda4 - pangunahing seksyon No. 3 (naglalaman ito ng hindi naka-encrypt na GNU/Linux, ginagamit para sa backup/hindi palaging).

[A] Windows 7 System Block Encryption

A1. VeraCryptBuong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Naglo-load mula sa opisyal na site, o mula sa salamin sourceforge bersyon ng pag-install ng VeraCrypt cryptographic software (sa oras ng paglalathala ng artikulong v1.24-Update3, ang portable na bersyon ng VeraCrypt ay hindi angkop para sa pag-encrypt ng system). Suriin ang checksum ng na-download na software

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

at ihambing ang resulta sa CS na naka-post sa website ng developer ng VeraCrypt.

Kung naka-install ang HashTab software, mas madali ito: RMB (VeraCrypt Setup 1.24.exe)-properties - hash sum ng mga file.

Upang i-verify ang lagda ng programa, ang software at ang pampublikong pgp key ng developer ay dapat na naka-install sa system gnuPG; gpg4win.

A2. Pag-install/pagpapatakbo ng VeraCrypt software na may mga karapatan ng administratorBuong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

A3. Pagpili ng mga parameter ng pag-encrypt ng system para sa aktibong partisyonVeraCrypt – System – I-encrypt ang partition/disk ng system – Normal – I-encrypt ang partition ng Windows system – Multiboot – (babala: "Ang mga walang karanasan na user ay hindi inirerekomenda na gamitin ang paraang ito" at ito ay totoo, sumasang-ayon kami "Oo") - Boot disk (“oo”, kahit hindi, “oo” pa rin) – Bilang ng mga system disk “2 o higit pa” – Maraming system sa isang disk “Oo” – Non-Windows bootloader “Hindi” (sa katunayan, "Oo," ngunit hindi ibabahagi ng mga VeraCrypt/GRUB2 boot loader ang MBR sa kanilang mga sarili; mas tiyak, tanging ang pinakamaliit na bahagi ng boot loader code ang nakaimbak sa MBR/boot track, ang pangunahing bahagi nito ay matatagpuan sa loob ng file system) – Multiboot – Mga setting ng pag-encrypt…

Kung lumihis ka mula sa mga hakbang sa itaas (harangan ang mga scheme ng pag-encrypt ng system), pagkatapos ay maglalabas ng babala ang VeraCrypt at hindi ka papayagan na i-encrypt ang partition.

Sa susunod na hakbang patungo sa naka-target na proteksyon ng data, magsagawa ng "Pagsubok" at pumili ng algorithm ng pag-encrypt. Kung mayroon kang hindi napapanahong CPU, malamang na ang pinakamabilis na algorithm ng pag-encrypt ay ang Twofish. Kung malakas ang CPU, mapapansin mo ang pagkakaiba: Ang pag-encrypt ng AES, ayon sa mga resulta ng pagsubok, ay ilang beses na mas mabilis kaysa sa mga kakumpitensya nito sa crypto. Ang AES ay isang tanyag na algorithm ng pag-encrypt; ang hardware ng mga modernong CPU ay espesyal na na-optimize para sa parehong "lihim" at "pag-hack."

Sinusuportahan ng VeraCrypt ang kakayahang mag-encrypt ng mga disk sa isang AES cascade(Twofish)/at iba pang kumbinasyon. Sa isang lumang core Intel CPU mula sampung taon na ang nakakaraan (nang walang suporta sa hardware para sa AES, A/T cascade encryption) Ang pagbaba sa pagganap ay mahalagang hindi mahahalata. (para sa mga AMD CPU ng parehong panahon/~parameter, bahagyang nabawasan ang pagganap). Ang OS ay gumagana nang pabago-bago at ang pagkonsumo ng mapagkukunan para sa transparent na pag-encrypt ay hindi nakikita. Sa kabaligtaran, halimbawa, mayroong isang kapansin-pansing pagbaba sa pagganap dahil sa naka-install na hindi matatag na pansubok na desktop environment na Mate v1.20.1 (o v1.20.2 hindi ko eksaktong maalala) sa GNU/Linux, o dahil sa pagpapatakbo ng telemetry routine sa Windows7↑. Karaniwan, ang mga may karanasang user ay nagsasagawa ng mga pagsubok sa pagganap ng hardware bago ang pag-encrypt. Halimbawa, sa Aida64/Sysbench/systemd-analyze ang sisihin ay inihambing sa mga resulta ng parehong mga pagsubok pagkatapos i-encrypt ang system, sa gayon ay pinabulaanan ang mito para sa kanilang sarili na "nakakapinsala ang system encryption." Ang pagbagal ng makina at ang abala ay kapansin-pansin kapag nagba-back up/nagpapanumbalik ng naka-encrypt na data, dahil ang mismong "system data backup" na operasyon ay hindi sinusukat sa ms, at ang mga parehong <decrypt/encrypt on the fly> ay idinagdag. Sa huli, binabalanse ng bawat user na pinahihintulutang mag-tinker sa cryptography ang encryption algorithm laban sa kasiyahan ng mga gawaing nasa kamay, ang kanilang antas ng paranoya, at kadalian ng paggamit.

Mas mainam na iwanan ang parameter ng PIM bilang default upang kapag naglo-load ng OS hindi mo kailangang ipasok ang eksaktong mga halaga ng pag-ulit sa bawat oras. Gumagamit ang VeraCrypt ng malaking bilang ng mga pag-ulit upang lumikha ng isang tunay na "mabagal na hash". Ang pag-atake sa naturang "crypto snail" gamit ang Brute force/rainbow tables method ay may katuturan lamang sa isang maikling "simple" na passphrase at personal na listahan ng charset ng biktima. Ang presyo na babayaran para sa lakas ng password ay isang pagkaantala sa pagpasok ng tamang password kapag naglo-load ng OS. (Ang pag-mount ng mga volume ng VeraCrypt sa GNU/Linux ay mas mabilis).
Libreng software para sa pagpapatupad ng mga brute force na pag-atake (i-extract ang passphrase mula sa VeraCrypt/LUKS disk header) Hashcat. Hindi alam ni John the Ripper kung paano "masira ang Veracrypt", at kapag nagtatrabaho sa LUKS ay hindi naiintindihan ang Twofish cryptography.

Dahil sa lakas ng cryptographic ng mga algorithm ng pag-encrypt, ang mga hindi mapigilang cypherpunk ay gumagawa ng software na may ibang vector ng pag-atake. Halimbawa, ang pagkuha ng metadata/mga key mula sa RAM (cold boot/direct memory access attack), Mayroong espesyal na libre at hindi libreng software para sa mga layuning ito.

Sa pagkumpleto ng pag-set up/pagbuo ng "natatanging metadata" ng naka-encrypt na aktibong partition, mag-aalok ang VeraCrypt na i-restart ang PC at subukan ang functionality ng boot loader nito. Pagkatapos i-reboot/simulan ang Windows, maglo-load ang VeraCrypt sa standby mode, ang natitira lang ay kumpirmahin ang proseso ng pag-encrypt - Y.

Sa huling hakbang ng pag-encrypt ng system, mag-aalok ang VeraCrypt na lumikha ng backup na kopya ng header ng aktibong naka-encrypt na partition sa anyo ng "veracrypt rescue disk.iso" - dapat itong gawin - sa software na ito ang naturang operasyon ay isang kinakailangan (sa LUKS, bilang isang kinakailangan - ito ay sa kasamaang palad ay tinanggal, ngunit binibigyang-diin sa dokumentasyon). Ang rescue disk ay magiging kapaki-pakinabang para sa lahat, at para sa ilang higit sa isang beses. Pagkawala (header/muling pagsulat ng MBR) permanenteng tatanggihan ng backup na kopya ng header ang access sa decrypted na partition na may OS Windows.

A4. Paglikha ng isang VeraCrypt rescue USB/diskBilang default, nag-aalok ang VeraCrypt na mag-burn ng "~2-3MB ng metadata" sa isang CD, ngunit hindi lahat ng tao ay may mga disk o DWD-ROM drive, at ang paggawa ng bootable flash drive na "VeraCrypt Rescue disk" ay isang teknikal na sorpresa para sa ilan: Ang Rufus /GUIdd-ROSA ImageWriter at iba pang katulad na software ay hindi makakayanan ang gawain, dahil bilang karagdagan sa pagkopya ng offset metadata sa isang bootable flash drive, kailangan mong kopyahin/i-paste ang imahe sa labas ng file system ng USB drive, sa madaling salita, kopyahin nang tama ang MBR/daan sa keychain. Maaari kang lumikha ng isang bootable flash drive mula sa GNU/Linux OS gamit ang "dd" utility, tinitingnan ang sign na ito.

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Ang paggawa ng rescue disk sa isang kapaligiran ng Windows ay iba. Hindi isinama ng developer ng VeraCrypt ang solusyon sa problemang ito sa opisyal dokumentasyon sa pamamagitan ng "rescue disk", ngunit nagmungkahi ng solusyon sa ibang paraan: nag-post siya ng karagdagang software para sa paglikha ng "usb rescue disk" para sa libreng pag-access sa kanyang VeraCrypt forum. Ang archivist ng software na ito para sa Windows ay "lumilikha ng usb veracrypt rescue disk". Pagkatapos i-save ang rescue disk.iso, magsisimula ang proseso ng block system encryption ng aktibong partition. Sa panahon ng pag-encrypt, ang pagpapatakbo ng OS ay hindi hihinto; ang isang PC restart ay hindi kinakailangan. Sa pagkumpleto ng operasyon ng pag-encrypt, ang aktibong partisyon ay magiging ganap na naka-encrypt at maaaring magamit. Kung ang VeraCrypt boot loader ay hindi lilitaw kapag sinimulan mo ang PC, at ang pagpapatakbo ng pagbawi ng header ay hindi tumulong, pagkatapos ay suriin ang flag na "boot", dapat itong itakda sa partisyon kung saan naroroon ang Windows (anuman ang pag-encrypt at iba pang OS, tingnan ang talahanayan Blg. 1).
Kinukumpleto nito ang paglalarawan ng block system encryption sa Windows OS.

[B]LUKS. GNU/Linux encryption (~Debian) naka-install na OS. Algorithm at Hakbang

Upang ma-encrypt ang isang naka-install na Debian/derivative distribution, kailangan mong imapa ang inihandang partition sa isang virtual block device, ilipat ito sa naka-map na GNU/Linux disk, at i-install/i-configure ang GRUB2. Kung wala kang isang bare metal server, at pinahahalagahan mo ang iyong oras, kailangan mong gamitin ang GUI, at karamihan sa mga terminal command na inilarawan sa ibaba ay nilalayong patakbuhin sa "Chuck-Norris mode".

B1. Pag-boot ng PC mula sa live na usb GNU/Linux

“Magsagawa ng crypto test para sa pagganap ng hardware”

lscpu && сryptsetup benchmark

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Kung masaya kang may-ari ng isang makapangyarihang kotse na may suporta sa hardware ng AES, ang mga numero ay magmumukhang kanang bahagi ng terminal; kung masaya kang may-ari, ngunit may antigong hardware, ang mga numero ay magmumukhang sa kaliwang bahagi.

B2. Paghati sa disk. mounting/formatting fs logical disk HDD sa Ext4 (Gparted)

B2.1. Paglikha ng naka-encrypt na sda7 partition headerIlalarawan ko ang mga pangalan ng mga partisyon, dito at higit pa, alinsunod sa aking talahanayan ng partisyon na nai-post sa itaas. Ayon sa layout ng iyong disk, dapat mong palitan ang iyong mga pangalan ng partition.

Logical Drive Encryption Mapping (/dev/sda7 > /dev/mapper/sda7_crypt).
#Madaling paggawa ng "LUKS-AES-XTS partition"

cryptsetup -v -y luksFormat /dev/sda7

Mga Pagpipilian:

* luksFormat - pagsisimula ng LUKS header;
* -y -passphrase (hindi key/file);
* -v -verbalization (pagpapakita ng impormasyon sa terminal);
* /dev/sda7 - ang iyong lohikal na disk mula sa pinahabang partition (kung saan ito ay binalak na ilipat/i-encrypt ang GNU/Linux).

Default na algorithm ng pag-encrypt <LUKS1: aes-xts-plain64, Key: 256 bits, LUKS header hashing: sha256, RNG: /dev/urandom> (depende sa bersyon ng cryptsetup).

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

Kung walang suporta sa hardware para sa AES sa CPU, ang pinakamahusay na pagpipilian ay ang lumikha ng pinahabang "LUKS-Twofish-XTS-partition".

B2.2. Advanced na paglikha ng "LUKS-Twofish-XTS-partition"

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

Mga Pagpipilian:
* luksFormat - pagsisimula ng LUKS header;
* /dev/sda7 ay ang iyong hinaharap na naka-encrypt na lohikal na disk;
* -v verbalization;
* -y passphrase;
* -c piliin ang data encryption algorithm;
* -s laki ng encryption key;
* -h hashing algorithm/crypto function, ginamit ang RNG (--use-urandom) upang makabuo ng natatanging encryption/decryption key para sa lohikal na disk header, isang pangalawang header key (XTS); isang natatanging master key na naka-imbak sa naka-encrypt na disk header, isang pangalawang XTS key, lahat ng metadata na ito at isang encryption routine na, gamit ang master key at ang pangalawang XTS key, ay nag-e-encrypt/nagde-decrypt ng anumang data sa partition (maliban sa pamagat ng seksyon) nakaimbak sa ~3MB sa napiling hard disk partition.
* -i mga pag-ulit sa millisecond, sa halip na "halaga" (ang pagkaantala ng oras kapag pinoproseso ang passphrase ay nakakaapekto sa paglo-load ng OS at sa cryptographic na lakas ng mga key). Upang mapanatili ang balanse ng lakas ng cryptographic, gamit ang isang simpleng password tulad ng "Russian" kailangan mong taasan ang -(i) value; sa isang kumplikadong password tulad ng "?8dƱob/øfh" ang halaga ay maaaring bawasan.
* —use-urandom random number generator, bumubuo ng mga susi at asin.

Pagkatapos ma-map ang seksyong sda7 > sda7_crypt (Mabilis ang operasyon, dahil ang isang naka-encrypt na header ay ginawa gamit ang ~3 MB ng metadata at iyon lang), kailangan mong i-format at i-mount ang sda7_crypt file system.

B2.3. Paghahambing

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

mga pagpipilian:
* bukas - tumugma sa seksyong "na may pangalan";
* /dev/sda7 -logical disk;
* sda7_crypt - name mapping na ginagamit para i-mount ang naka-encrypt na partition o simulan ito kapag nag-boot ang OS.

B2.4. Pag-format ng sda7_crypt file system sa ext4. Pag-mount ng disk sa OS(Tandaan: hindi ka makakapagtrabaho sa isang naka-encrypt na partition sa Gparted)

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

mga pagpipilian:
* -v -berbalisasyon;
* -L - label ng drive (na ipinapakita sa Explorer kasama ng iba pang mga drive).

Susunod, dapat mong i-mount ang virtual-encrypted block device /dev/sda7_crypt sa system

mount /dev/mapper/sda7_crypt /mnt

Ang pagtatrabaho sa mga file sa /mnt folder ay awtomatikong mag-e-encrypt/mag-decrypt ng data sa sda7.

Ito ay mas maginhawa upang i-map at i-mount ang partition sa Explorer (nautilus/caja GUI), ang partition ay nasa listahan na ng pagpili ng disk, ang natitira ay ilagay ang passphrase para buksan/decrypt ang disk. Ang katugmang pangalan ay awtomatikong pipiliin at hindi "sda7_crypt", ngunit isang bagay tulad ng /dev/mapper/Luks-xx-xx...

B2.5. Backup ng disc header (~3MB metadata)Isa sa mga pinaka mahalaga mga operasyon na kailangang gawin nang walang pagkaantala - isang backup na kopya ng "sda7_crypt" na header. Kung na-overwrite/nasira mo ang header (halimbawa, pag-install ng GRUB2 sa sda7 partition, atbp.), ang naka-encrypt na data ay ganap na mawawala nang walang anumang posibilidad na mabawi ito, dahil imposibleng muling mabuo ang parehong mga susi; ang mga susi ay nilikha nang kakaiba.

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

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

mga pagpipilian:
* luksHeaderBackup —header-backup-file -backup command;
* luksHeaderRestore —header-backup-file -restore command;
* ~/Backup_DebSHIFR - backup file;
* /dev/sda7 - partition na ang naka-encrypt na disk header backup na kopya ay ise-save.
Sa hakbang na ito <paglikha at pag-edit ng naka-encrypt na partisyon> ay nakumpleto.

B3. Pag-port ng GNU/Linux OS (sda4) sa isang naka-encrypt na partisyon (sda7)

Lumikha ng isang folder / mnt2 (Tandaan - nagtatrabaho pa rin kami sa live na usb, naka-mount ang sda7_crypt sa /mnt), at i-mount ang aming GNU/Linux sa /mnt2, na kailangang ma-encrypt.

mkdir /mnt2
mount /dev/sda4 /mnt2

Nagsasagawa kami ng tamang paglilipat ng OS gamit ang Rsync software

rsync -avlxhHX --progress /mnt2/ /mnt

Ang mga opsyon sa Rsync ay inilarawan sa talata E1.

Susunod, dapat defragment ng isang lohikal na disk partition

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

Gawin itong panuntunan: gawin ang e4defrag sa naka-encrypt na GNU/LInux paminsan-minsan kung mayroon kang HDD.
Ang paglilipat at pag-synchronize [GNU/Linux > GNU/Linux-encrypted] ay nakumpleto sa hakbang na ito.

SA 4. Pagse-set up ng GNU/Linux sa isang naka-encrypt na sda7 partition

Matapos matagumpay na mailipat ang OS /dev/sda4 > /dev/sda7, kailangan mong mag-log in sa GNU/Linux sa naka-encrypt na partition at magsagawa ng karagdagang configuration (nang hindi nagre-reboot ng PC) kaugnay sa isang naka-encrypt na sistema. Iyon ay, maging sa live na usb, ngunit isagawa ang mga utos na "may kaugnayan sa ugat ng naka-encrypt na OS." Ang "chroot" ay gayahin ang isang katulad na sitwasyon. Upang mabilis na makatanggap ng impormasyon kung saang OS ka kasalukuyang nagtatrabaho (naka-encrypt o hindi, dahil ang data sa sda4 at sda7 ay naka-synchronize), i-desynchronize ang OS. Lumikha sa mga direktoryo ng ugat (sda4/sda7_crypt) mga walang laman na marker file, halimbawa, /mnt/encryptedOS at /mnt2/decryptedOS. Mabilis na suriin kung anong OS ka (kabilang ang para sa hinaharap):

ls /<Tab-Tab>

B4.1. "Simulation ng pag-log in sa isang naka-encrypt na OS"

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

B4.2. Ang pag-verify na ang gawain ay isinasagawa laban sa isang naka-encrypt na sistema

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

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

B4.3. Paglikha/pag-configure ng naka-encrypt na swap, pag-edit ng crypttab/fstabDahil naka-format ang swap file sa tuwing magsisimula ang OS, walang saysay na gumawa at mag-map ng swap sa isang lohikal na disk ngayon, at mag-type ng mga command tulad ng sa talata B2.2. Para sa Swap, ang sarili nitong mga pansamantalang susi sa pag-encrypt ay awtomatikong bubuo sa bawat pagsisimula. Siklo ng buhay ng mga swap key: pag-unmount/pag-unmount ng swap partition (+paglilinis ng RAM); o i-restart ang OS. Pagse-set up ng swap, pagbubukas ng file na responsable para sa pagsasaayos ng mga naka-block na device na naka-encrypt (katulad sa isang fstab file, ngunit responsable para sa crypto).

nano /etc/crypttab 

edit namin

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

Mga Pagpipilian sa
* swap - nakamapang pangalan kapag nag-e-encrypt /dev/mapper/swap.
* /dev/sda8 - gamitin ang iyong logical partition para sa swap.
* /dev/urandom - random encryption key generator para sa swap (sa bawat bagong OS boot, ang mga bagong key ay nilikha). Ang generator ng /dev/urandom ay hindi gaanong random kaysa sa /dev/random, pagkatapos ng lahat, ang /dev/random ay ginagamit kapag nagtatrabaho sa mga mapanganib na sitwasyong paranoid. Kapag nilo-load ang OS, pinapabagal ng /dev/random ang paglo-load nang ilang ± minuto (tingnan ang systemd-analyze).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -alam ng partition na ito ay swap at naka-format "ayon"; algorithm ng pag-encrypt.

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

edit namin

Ang # swap ay nasa / dev / sda8 habang naka-install
/dev/mapper/swap none swap sw 0 0

Ang /dev/mapper/swap ay ang pangalan na itinakda sa crypttab.

Alternatibong naka-encrypt na swap
Kung sa ilang kadahilanan ay hindi mo nais na isuko ang isang buong partition para sa isang swap file, maaari kang kumuha ng alternatibo at mas mahusay na ruta: paglikha ng isang swap file sa isang file sa isang naka-encrypt na partisyon sa 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 будет постоянный

Kumpleto na ang setup ng swap partition.

B4.4. Pag-set up ng naka-encrypt na GNU/Linux (pag-edit ng mga crypttab/fstab file)Ang /etc/crypttab file, tulad ng nakasulat sa itaas, ay naglalarawan ng mga naka-encrypt na block device na na-configure sa panahon ng system boot.

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

kung tumugma ka sa seksyong sda7>sda7_crypt tulad ng sa talata B2.1

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

kung tumugma ka sa seksyong sda7>sda7_crypt tulad ng sa talata 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

kung tumugma ka sa seksyong sda7>sda7_crypt tulad ng sa talata B2.1 o B2.2, ngunit ayaw mong ipasok muli ang password upang i-unlock at i-boot ang OS, pagkatapos ay sa halip na ang password maaari mong palitan ang isang lihim na key/random na file

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

Описание
* wala - nag-uulat na kapag naglo-load ng OS, ang pagpasok ng isang lihim na passphrase ay kinakailangan upang i-unlock ang ugat.
* UUID - partition identifier. Upang malaman ang iyong ID, i-type ang terminal (paalala na mula sa panahong ito, nagtatrabaho ka sa isang terminal sa isang chroot na kapaligiran, at hindi sa isa pang live na terminal ng 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»

makikita ang linyang ito kapag humihiling ng blkid mula sa live na terminal ng usb na may naka-mount na sda7_crypt).
Kinukuha mo ang UUID mula sa iyong sdaX (hindi sdaX_crypt!, UUID sdaX_crypt - ay awtomatikong maiiwan kapag bumubuo ng grub.cfg config).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks encryption sa advanced mode.
* /etc/skey - sikretong key file, na awtomatikong ipinapasok upang i-unlock ang OS boot (sa halip na ilagay ang 3rd password). Maaari mong tukuyin ang anumang file hanggang sa 8MB, ngunit ang data ay babasahin <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 

Magiging ganito ang hitsura nito:

(gawin ito sa iyong sarili at tingnan para sa iyong sarili).

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

Ang /etc/fstab ay naglalaman ng mapaglarawang impormasyon tungkol sa iba't ibang file system.

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

# "file system" "mount point" "type" "options" "dump" "pass"
Ang # / ay nasa / dev / sda7 habang naka-install
/dev/mapper/sda7_crypt / ext4 errors=remount-ro 0 1

pagpipilian
* /dev/mapper/sda7_crypt - ang pangalan ng sda7>sda7_crypt mapping, na tinukoy sa /etc/crypttab file.
Kumpleto na ang crypttab/fstab setup.

B4.5. Pag-edit ng mga configuration file. Mahalagang sandaliB4.5.1. Pag-edit ng config /etc/initramfs-tools/conf.d/resume

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

at magkomento (kung mayroon) "#" na linyang "resume". Ang file ay dapat na ganap na walang laman.

B4.5.2. Pag-edit ng config /etc/initramfs-tools/conf.d/cryptsetup

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

dapat magkatugma

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=oo
i-export ang CRYPTSETUP

B4.5.3. Ang pag-edit ng /etc/default/grub config (ang config na ito ay responsable para sa kakayahang makabuo ng grub.cfg kapag nagtatrabaho sa naka-encrypt na /boot)

nano /etc/default/grub

idagdag ang linyang “GRUB_ENABLE_CRYPTODISK=y”
ang value na 'y', grub-mkconfig at grub-install ay titingnan ang mga naka-encrypt na drive at bubuo ng mga karagdagang command na kailangan para ma-access ang mga ito sa oras ng boot (insmods ).
dapat may pagkakatulad

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="tahimik na splash noautomount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Pag-edit ng config /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

suriin na ang linya nagkomento ng <#>.
Sa hinaharap (at kahit ngayon, ang parameter na ito ay hindi magkakaroon ng anumang kahulugan, ngunit kung minsan ay nakakasagabal ito sa pag-update ng initrd.img na imahe).

B4.5.5. Pag-edit ng config /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

idagdag

KEYFILE_PATTERN=”/etc/skey”
UMASK=0077

Ilalagay nito ang sikretong key na "skey" sa initrd.img, ang susi ay kailangan para i-unlock ang ugat kapag nag-boot ang OS (kung hindi mo nais na ipasok muli ang password, ang "skey" key ay pinapalitan para sa kotse).

B4.6. I-update ang /boot/initrd.img [bersyon]Upang i-pack ang sikretong key sa initrd.img at ilapat ang mga pag-aayos ng cryptsetup, i-update ang larawan

update-initramfs -u -k all

kapag ina-update ang initrd.img (tulad ng sinasabi nila "Posible, ngunit hindi ito tiyak") lalabas ang mga babala na may kaugnayan sa cryptsetup, o, halimbawa, isang abiso tungkol sa pagkawala ng mga module ng Nvidia - normal ito. Pagkatapos i-update ang file, suriin kung ito ay aktwal na na-update, tingnan ang oras (kamag-anak sa chroot environment./boot/initrd.img). Warning! bago [update-initramfs -u -k all] siguraduhing suriin na ang cryptsetup ay bukas /dev/sda7 sda7_crypt - ito ang pangalan na lumalabas sa /etc/crypttab, kung hindi, pagkatapos ng pag-reboot ay magkakaroon ng error sa busybox)
Sa hakbang na ito, kumpleto na ang pagse-set up ng mga configuration file.

[C] Pag-install at pag-configure ng GRUB2/Protection

C1. Kung kinakailangan, i-format ang nakalaang partition para sa bootloader (ang partition ay nangangailangan ng hindi bababa sa 20MB)

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

C2. I-mount ang /dev/sda6 hanggang /mntKaya nagtatrabaho kami sa chroot, pagkatapos ay walang /mnt2 na direktoryo sa ugat, at ang /mnt na folder ay walang laman.
i-mount ang GRUB2 partition

mount /dev/sda6 /mnt

Kung mayroon kang mas lumang bersyon ng GRUB2 na naka-install, sa /mnt/boot/grub/i-386-pc na direktoryo (Posible ang ibang platform, halimbawa, hindi "i386-pc") walang crypto modules (sa madaling salita, ang folder ay dapat maglaman ng mga module, kabilang ang mga .mod na ito: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), sa kasong ito, ang GRUB2 ay kailangang maalog.

apt-get update
apt-get install grub2 

Mahalaga! Kapag ina-update ang GRUB2 package mula sa repository, kapag tinanong "tungkol sa pagpili" kung saan i-install ang bootloader, dapat mong tanggihan ang pag-install (dahilan - subukang i-install ang GRUB2 - sa "MBR" o sa live na usb). Kung hindi, masisira mo ang header/loader ng VeraCrypt. Matapos i-update ang mga pakete ng GRUB2 at kanselahin ang pag-install, ang boot loader ay dapat na mai-install nang manu-mano sa lohikal na disk, at hindi sa MBR. Kung ang iyong repository ay may lumang bersyon ng GRUB2, subukan update ito ay mula sa opisyal na website - hindi pa ito nasuri (nagtrabaho kasama ang pinakabagong GRUB 2.02 ~BetaX boot loader).

C3. Pag-install ng GRUB2 sa isang pinahabang partition [sda6]Dapat ay mayroon kang naka-mount na partition [item C.2]

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

mga pagpipilian
* —force - pag-install ng bootloader, pag-bypass sa lahat ng babala na halos palaging umiiral at pag-block ng pag-install (kinakailangang watawat).
* --root-directory - pag-install ng direktoryo sa ugat ng sda6.
* /dev/sda6 - iyong sdaХ partition (huwag palampasin ang <space> sa pagitan ng /mnt /dev/sda6).

C4. Paglikha ng configuration file [grub.cfg]Kalimutan ang tungkol sa "update-grub2" na utos, at gamitin ang buong configuration file generation command

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

pagkatapos makumpleto ang pagbuo/pag-update ng grub.cfg file, ang output terminal ay dapat maglaman ng (mga) linya kasama ang OS na matatagpuan sa disk ("grub-mkconfig" ay malamang na mahanap at kunin ang OS mula sa isang live na usb, kung mayroon kang isang multiboot flash drive na may Windows 10 at isang grupo ng mga live na pamamahagi - ito ay normal). Kung ang terminal ay "walang laman" at ang "grub.cfg" na file ay hindi nabuo, ito ay ang parehong kaso kapag may mga GRUB bug sa system (at malamang ang loader mula sa test branch ng repository), muling i-install ang GRUB2 mula sa mga pinagkakatiwalaang mapagkukunan.
Kumpleto na ang "simpleng configuration" na pag-install at GRUB2 setup.

C5. Proof-test ng naka-encrypt na GNU/Linux OSKinukumpleto namin nang tama ang crypto mission. Maingat na iwanan ang naka-encrypt na GNU/Linux (lumabas sa chroot environment).

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

Pagkatapos i-reboot ang PC, dapat mag-load ang VeraCrypt bootloader.
Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

*Ang pagpasok ng password para sa aktibong partition ay magsisimulang mag-load ng Windows.
*Ang pagpindot sa "Esc" key ay maglilipat ng kontrol sa GRUB2, kung pipiliin mo ang naka-encrypt na GNU/Linux - isang password (sda7_crypt) ang kakailanganin para ma-unlock ang /boot/initrd.img (kung isusulat ng grub2 ang uuid "not found" - ito ay isang problema sa grub2 bootloader, dapat itong muling mai-install, hal., mula sa test branch/stable atbp.).
Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

*Depende sa kung paano mo na-configure ang system (tingnan ang paragraph B4.4/4.5), pagkatapos ipasok ang tamang password para i-unlock ang /boot/initrd.img image, kakailanganin mo ng password para ma-load ang OS kernel/root, o ang sikreto Ang key ay awtomatikong papalitan ng " skey", na inaalis ang pangangailangan na muling ipasok ang passphrase.
Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot
(screen "awtomatikong pagpapalit ng isang lihim na key").

*Pagkatapos ay susundan ang pamilyar na proseso ng pag-load ng GNU/Linux gamit ang pagpapatunay ng user account.
Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

*Pagkatapos ng pahintulot ng user at pag-log in sa OS, kailangan mong i-update muli ang /boot/initrd.img (tingnan ang B4.6).

update-initramfs -u -k all

At sa kaso ng mga karagdagang linya sa GRUB2 menu (mula sa OS-m pickup na may live na usb) tanggalin mo sila

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

Isang mabilis na buod ng GNU/Linux system encryption:

  • Ang GNU/Linuxinux ay ganap na naka-encrypt, kasama ang /boot/kernel at initrd;
  • ang lihim na susi ay nakabalot sa initrd.img;
  • kasalukuyang scheme ng awtorisasyon (pagpasok ng password para i-unlock ang initrd; password/key para i-boot ang OS; password para sa pagpapahintulot sa Linux account).

Kumpleto na ang "Simple GRUB2 Configuration" na pag-encrypt ng system ng block partition.

C6. Advanced na configuration ng GRUB2. Proteksyon ng bootloader na may digital signature + proteksyon sa pagpapatunayAng GNU/Linux ay ganap na naka-encrypt, ngunit ang bootloader ay hindi maaaring i-encrypt - ang kundisyong ito ay idinidikta ng BIOS. Para sa kadahilanang ito, ang isang naka-chain na naka-encrypt na boot ng GRUB2 ay hindi posible, ngunit ang isang simpleng nakakadena na boot ay posible/magagamit, ngunit mula sa isang punto ng seguridad na ito ay hindi kinakailangan [tingnan ang P. F].
Para sa "mahina" na GRUB2, nagpatupad ang mga developer ng algorithm ng proteksyon ng bootloader na "pirma/pagpapatotoo".

  • Kapag ang bootloader ay protektado ng "sarili nitong digital signature," ang panlabas na pagbabago ng mga file, o ang pagtatangkang mag-load ng mga karagdagang module sa bootloader na ito, ay hahantong sa pag-block sa proseso ng pag-load.
  • Kapag pinoprotektahan ang bootloader gamit ang pagpapatunay, upang mapili ang paglo-load ng isang pamamahagi, o magpasok ng mga karagdagang command sa CLI, kakailanganin mong ipasok ang login at password ng superuser-GRUB2.

C6.1. Proteksyon sa pagpapatunay ng bootloaderTingnan kung nagtatrabaho ka sa isang terminal sa isang naka-encrypt na OS

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

lumikha ng superuser password para sa awtorisasyon sa GRUB2

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

Kunin ang hash ng password. Isang bagay na tulad nito

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

i-mount ang GRUB partition

mount /dev/sda6 /mnt 

i-edit ang config

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

suriin ang paghahanap ng file na walang mga flag saanman sa “grub.cfg” (“-unrestricted” “-user”,
idagdag sa pinakadulo (bago ang linya ### END /etc/grub.d/41_custom ###)
"set superusers="root"
password_pbkdf2 root hash."

Dapat ganito

# Ang file na ito ay nagbibigay ng madaling paraan upang magdagdag ng mga custom na entry sa menu. I-type lamang ang
# na entry sa menu na gusto mong idagdag pagkatapos ng komentong ito. Mag-ingat na huwag magbago
# ang linya ng 'exec tail' sa itaas.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
kung [ -f ${config_directory}/custom.cfg ]; pagkatapos
pinagmulan ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; pagkatapos
pinagmulan $prefix/custom.cfg;
fi
itakda ang superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Kung madalas mong ginagamit ang command na "grub-mkconfig -o /mnt/boot/grub/grub.cfg" at ayaw mong gumawa ng mga pagbabago sa grub.cfg sa bawat oras, ilagay ang mga linya sa itaas (Login: Password) sa script ng gumagamit ng GRUB sa pinakailalim

nano /etc/grub.d/41_custom 

pusa <<EOF
itakda ang superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Kapag bumubuo ng config na "grub-mkconfig -o /mnt/boot/grub/grub.cfg", awtomatikong idaragdag sa grub.cfg ang mga linyang responsable para sa pagpapatunay.
Kinukumpleto ng hakbang na ito ang setup ng pagpapatotoo ng GRUB2.

C6.2. Proteksyon ng bootloader na may digital na lagdaIpinapalagay na mayroon ka na ng iyong personal na pgp encryption key (o lumikha ng ganoong susi). Dapat ay may naka-install na cryptographic software ang system: gnuPG; kleopatra/GPA; Kabayo ng dagat. Ang Crypto software ay gagawing mas madali ang iyong buhay sa lahat ng ganoong bagay. Seahorse - stable na bersyon ng package 3.14.0 (mga bersyon na mas mataas, halimbawa, V3.20, ay may depekto at may malalaking bug).

Ang PGP key ay kailangang mabuo/ilunsad/idagdag lamang sa su environment!

Bumuo ng personal na susi sa pag-encrypt

gpg - -gen-key

I-export ang iyong susi

gpg --export -o ~/perskey

I-mount ang lohikal na disk sa OS kung hindi pa ito naka-mount

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

linisin ang GRUB2 partition

rm -rf /mnt/

I-install ang GRUB2 sa sda6, ilagay ang iyong pribadong key sa pangunahing larawan ng GRUB na "core.img"

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

mga pagpipilian
* --force - i-install ang bootloader, lampasan ang lahat ng mga babala na palaging umiiral (kinakailangang watawat).
* —modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" - inutusan ang GRUB2 na i-preload ang mga kinakailangang module kapag nagsimula ang PC.
* -k ~/perskey -path sa “PGP key” (pagkatapos i-pack ang susi sa larawan, maaari itong tanggalin).
* --root-directory -itakda ang boot directory sa root ng sda6
/dev/sda6 - iyong sdaX partition.

Pagbuo/pag-update ng grub.cfg

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

Idagdag ang linyang "trust /boot/grub/perskey" sa dulo ng "grub.cfg" file (puwersang gamitin ang pgp key.) Dahil nag-install kami ng GRUB2 na may isang hanay ng mga module, kabilang ang signature module na "signature_test.mod", inaalis nito ang pangangailangang magdagdag ng mga command tulad ng "set check_signatures=enforce" sa config.

Dapat ganito ang hitsura nito (mga linya ng pagtatapos sa grub.cfg file)

### BEGIN /etc/grub.d/41_custom ###
kung [ -f ${config_directory}/custom.cfg ]; pagkatapos
pinagmulan ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; pagkatapos
pinagmulan $prefix/custom.cfg;
fi
magtiwala sa /boot/grub/perskey
itakda ang superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Ang path sa "/boot/grub/perskey" ay hindi kailangang ituro sa isang partikular na disk partition, halimbawa hd0,6; para sa bootloader mismo, ang "root" ay ang default na path ng partition kung saan naka-install ang GRUB2 (tingnan ang set rot=..).

Pinirmahan ang GRUB2 (lahat ng mga file sa lahat ng /GRUB na direktoryo) gamit ang iyong key na "perskey".
Isang simpleng solusyon kung paano pumirma (para sa nautilus/caja explorer): i-install ang extension ng "seahorse" para sa Explorer mula sa repository. Dapat idagdag ang iyong susi sa su environment.
Buksan ang Explorer gamit ang sudo “/mnt/boot” – RMB – sign. Sa screen ay ganito ang hitsura

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Ang susi mismo ay "/mnt/boot/grub/perskey" (kopya sa direktoryo ng grub) kailangan ding pirmahan gamit ang sarili mong pirma. Suriin na ang [*.sig] file signature ay lilitaw sa direktoryo/subdirectory.
Gamit ang pamamaraang inilarawan sa itaas, lagdaan ang "/boot" (ang aming kernel, initrd). Kung may halaga ang iyong oras, inalis ng paraang ito ang pangangailangang magsulat ng script ng bash para mapirmahan ang “maraming file.”

Upang alisin ang lahat ng mga lagda ng bootloader (kung may nangyaring mali)

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

Upang hindi mapirmahan ang bootloader pagkatapos i-update ang system, i-freeze namin ang lahat ng mga update na pakete na nauugnay sa GRUB2.

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

Ang hakbang na ito <protect bootloader with digital signature> advanced configuration ng GRUB2 ay nakumpleto na.

C6.3. Proof-test ng GRUB2 bootloader, protektado ng digital signature at authenticationGRUB2. Kapag pumipili ng anumang pamamahagi ng GNU/Linux o pumapasok sa CLI (linya ng utos) Kakailanganin ang awtorisasyon ng superuser. Pagkatapos ipasok ang tamang username/password, kakailanganin mo ang initrd password

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot
Screenshot ng matagumpay na pag-authenticate ng GRUB2 superuser.

Kung pakikialaman mo ang alinman sa mga GRUB2 file/gumawa ng mga pagbabago sa grub.cfg, o tanggalin ang file/pirma, o nag-load ng malisyosong module.mod, may lalabas na kaukulang babala. Ipo-pause ng GRUB2 ang pag-load.

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot
Screenshot, isang pagtatangka na makagambala sa GRUB2 "mula sa labas".

Sa panahon ng "normal" na pag-booting "nang walang panghihimasok", ang status ng exit code ng system ay "0". Samakatuwid, hindi alam kung gumagana ang proteksyon o hindi (iyon ay, "mayroon o walang bootloader signature protection" sa normal na paglo-load ang status ay pareho "0" - ito ay masama).

Paano suriin ang proteksyon ng digital signature?

Isang hindi maginhawang paraan upang suriin: peke/alisin ang isang module na ginagamit ng GRUB2, halimbawa, alisin ang lagda luks.mod.sig at magkaroon ng error.

Ang tamang paraan: pumunta sa bootloader CLI at i-type ang command

trust_list

Bilang tugon, dapat kang makatanggap ng fingerprint na "perskey", kung ang status ay "0," hindi gagana ang proteksyon sa lagda, i-double check ang talata C6.2.
Sa hakbang na ito, ang advanced na pagsasaayos na "Pagprotekta sa GRUB2 gamit ang digital na lagda at pagpapatunay" ay nakumpleto.

C7 Alternatibong paraan ng pagprotekta sa GRUB2 bootloader gamit ang hashingAng "CPU Boot Loader Protection/Authentication" na paraan na inilarawan sa itaas ay isang classic. Dahil sa mga di-kasakdalan ng GRUB2, sa mga paranoid na kondisyon ay madaling kapitan ng tunay na pag-atake, na ibibigay ko sa ibaba sa talata [F]. Bilang karagdagan, pagkatapos i-update ang OS/kernel, ang bootloader ay kailangang muling lagdaan.

Pinoprotektahan ang GRUB2 bootloader gamit ang hashing

Mga kalamangan kaysa sa mga klasiko:

  • Mas mataas na antas ng pagiging maaasahan (Ang pagha-hash/pag-verify ay nagaganap lamang mula sa isang naka-encrypt na lokal na mapagkukunan. Ang buong inilaan na partisyon sa ilalim ng GRUB2 ay kinokontrol para sa anumang mga pagbabago, at lahat ng iba pa ay naka-encrypt; sa klasikong pamamaraan na may proteksyon/Authentication ng CPU loader, mga file lamang ang kinokontrol, ngunit hindi libre espasyo, kung saan maaaring idagdag ang "isang bagay" ng isang bagay na masama).
  • Naka-encrypt na pag-log (isang nababasa ng tao na personal na naka-encrypt na log ay idinagdag sa scheme).
  • bilis (Ang proteksyon/pag-verify ng isang buong partition na inilaan para sa GRUB2 ay nangyayari halos kaagad).
  • Automation ng lahat ng cryptographic na proseso.

Mga disadvantages sa mga classic.

  • Pamemeke ng lagda (theoretically, posible na makahanap ng isang naibigay na hash function na banggaan).
  • Tumaas na antas ng kahirapan (kumpara sa classic, kailangan ng kaunti pang kasanayan sa GNU/Linux OS).

Paano gumagana ang ideya ng GRUB2/partition hashing

Ang partisyon ng GRUB2 ay "nalagdaan"; kapag nag-boot ang OS, ang partisyon ng boot loader ay susuriin para sa immutability, na sinusundan ng pag-log in sa isang secure (naka-encrypt) na kapaligiran. Kung ang bootloader o ang partition nito ay nakompromiso, bilang karagdagan sa intrusion log, ang mga sumusunod ay inilunsad:

Bagay.Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Ang isang katulad na pagsusuri ay nangyayari apat na beses sa isang araw, na hindi naglo-load ng mga mapagkukunan ng system.
Gamit ang command na "-$ check_GRUB", ang isang instant check ay nangyayari anumang oras nang walang pag-log, ngunit may output ng impormasyon sa CLI.
Gamit ang command na "-$ sudo signature_GRUB", ang GRUB2 boot loader/partition ay agad na muling nilagdaan at ang na-update nitong pag-log (kinakailangan pagkatapos ng pag-update ng OS/boot), at nagpapatuloy ang buhay.

Pagpapatupad ng paraan ng hashing para sa bootloader at seksyon nito

0) Lagdaan natin ang GRUB bootloader/partition sa pamamagitan ng pag-mount muna nito sa /media/username

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

1) Gumagawa kami ng script na walang extension sa ugat ng naka-encrypt na OS ~/podpis, ilapat ang kinakailangang 744 na mga karapatan sa seguridad at walang palya na proteksyon dito.

Punan ang mga nilalaman nito

#!/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

Patakbuhin ang script mula sa su, susuriin ang hashing ng GRUB partition at ang bootloader nito, i-save ang log.

Gumawa o kumopya tayo, halimbawa, ng isang “malicious file” [virus.mod] sa partition ng GRUB2 at magpatakbo ng pansamantalang pag-scan/pagsubok:

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

Dapat makakita ang CLI ng pagsalakay sa ating -citadel-#Trimmed log in 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

#As you can see, “Files moved: 1 and Audit failed” lalabas, na nangangahulugang nabigo ang check.
Dahil sa uri ng partition na sinusubok, sa halip na "Nakahanap ng mga bagong file" > "Mga inilipat na file"

2) Ilagay ang gif dito > ~/warning.gif, itakda ang mga pahintulot sa 744.

3) Pag-configure ng fstab upang i-automount ang partition ng GRUB sa boot

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 mga default na 0 0

4) Pag-ikot ng log

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

/var/log/podpis.txt {
araw-araw
paikutin ang 50
laki 5M
petsa ng teksto
magsiksik
pagkaantala
olddir /var/log/old
}

/var/log/vtorjenie.txt {
buwanan
paikutin ang 5
laki 5M
petsa ng teksto
olddir /var/log/old
}

5) Magdagdag ng trabaho sa cron

-$ sudo crontab -e

i-reboot '/subscription'
0 */6 * * * '/podpis

6) Paglikha ng mga permanenteng alias

-$ 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

Pagkatapos ng pag-update ng OS -$ apt-get upgrade muling lagdaan ang aming GRUB partition
-$ подпись_GRUB
Sa puntong ito, kumpleto na ang proteksyon ng hashing ng partisyon ng GRUB.

[D] Wiping - pagsira ng hindi naka-encrypt na data

Tanggalin ang iyong mga personal na file nang lubusan na "kahit ang Diyos ay hindi maaaring basahin ang mga ito," ayon sa tagapagsalita ng South Carolina na si Trey Gowdy.

Gaya ng dati, may iba’t ibang “mito at mga alamat", tungkol sa pagpapanumbalik ng data pagkatapos itong matanggal mula sa isang hard drive. Kung naniniwala ka sa cyberwitchcraft, o miyembro ng Dr web community at hindi mo pa sinubukan ang pagbawi ng data pagkatapos itong matanggal/ma-overwrit (halimbawa, pagbawi gamit ang R-studio), kung gayon ang iminungkahing pamamaraan ay malamang na hindi angkop sa iyo, gamitin kung ano ang pinakamalapit sa iyo.

Matapos matagumpay na mailipat ang GNU/Linux sa isang naka-encrypt na partition, ang lumang kopya ay dapat tanggalin nang walang posibilidad ng pagbawi ng data. Paraan ng pangkalahatang paglilinis: software para sa Windows/Linux na libreng GUI software BleachBit.
Mabilis i-format ang seksyon, ang data kung saan kailangang sirain (sa pamamagitan ng Gparted) ilunsad ang BleachBit, piliin ang "Linisin ang libreng espasyo" - piliin ang partisyon (iyong sdaX na may naunang kopya ng GNU/Linux), magsisimula ang proseso ng paghuhubad. BleachBit - pinupunasan ang disk sa isang pass - ito ang "kailangan natin", Ngunit! Gumagana lang ito sa teorya kung na-format mo ang disk at nilinis mo ito sa BB v2.0 software.

Pansin! Pinupunasan ni BB ang disk, nag-iiwan ng metadata; pinapanatili ang mga pangalan ng file kapag inalis ang data (Ccleaner - hindi nag-iiwan ng metadata).

At ang alamat tungkol sa posibilidad ng pagbawi ng data ay hindi ganap na isang gawa-gawa.Bleachbit V2.0-2 dating hindi matatag na OS Debian package (at anumang iba pang katulad na software: sfill; wipe-Nautilus - ay napansin din sa maruming negosyong ito) talagang nagkaroon ng kritikal na bug: ang function na "free space clearing". ito ay gumagana nang hindi tama sa HDD/Flash drive (ntfs/ext4). Ang ganitong uri ng software, kapag nag-clear ng libreng espasyo, ay hindi na-overwrite ang buong disk, tulad ng iniisip ng maraming mga gumagamit. At ilan (marami) Tinanggal na data Itinuturing ng OS/software ang data na ito bilang hindi natanggal/data ng user at kapag nililinis ang "OSP" nilalaktawan nito ang mga file na ito. Ang problema ay pagkatapos ng mahabang panahon, paglilinis ng disk Maaaring mabawi ang "mga tinanggal na file." kahit na pagkatapos ng 3+ pass ng pagpupunas ng disc.
Sa GNU/Linux sa Bleachbit 2.0-2 Ang mga function ng permanenteng pagtanggal ng mga file at direktoryo ay gumagana nang mapagkakatiwalaan, ngunit hindi naglilinis ng libreng espasyo. Para sa paghahambing: sa Windows sa CCleaner ang function na "OSP para sa ntfs" ay gumagana nang maayos, at talagang hindi mababasa ng Diyos ang mga tinanggal na data.

At kaya, upang lubusan alisin "kompromiso" lumang hindi naka-encrypt na data, Ang Bleachbit ay nangangailangan ng direktang pag-access sa data na ito, pagkatapos, gamitin ang function na "permanenteng tanggalin ang mga file/direktoryo".
Upang alisin ang "mga tinanggal na file gamit ang karaniwang mga tool sa OS" sa Windows, gamitin ang CCleaner/BB na may function na "OSP". Sa GNU/Linux sa problemang ito (tanggalin ang mga tinanggal na file) kailangan mong magsanay nang mag-isa (pagtanggal ng data + isang independiyenteng pagtatangka na ibalik ito at hindi ka dapat umasa sa bersyon ng software (kung hindi isang bookmark, pagkatapos ay isang bug)), tanging sa kasong ito magagawa mong maunawaan ang mekanismo ng problemang ito at ganap na mapupuksa ang tinanggal na data.

Hindi ko pa nasubukan ang Bleachbit v3.0, maaaring naayos na ang problema.
Gumagana nang tapat ang Bleachbit v2.0.

Sa hakbang na ito, kumpleto na ang disk wiping.

[E] Pangkalahatang backup ng naka-encrypt na OS

Ang bawat user ay may sariling paraan ng pag-back up ng data, ngunit ang naka-encrypt na data ng System OS ay nangangailangan ng bahagyang naiibang diskarte sa gawain. Ang pinag-isang software, gaya ng Clonezilla at katulad na software, ay hindi maaaring gumana nang direkta sa naka-encrypt na data.

Pahayag ng problema sa pag-back up ng mga naka-encrypt na block device:

  1. universality - ang parehong backup algorithm/software para sa Windows/Linux;
  2. ang kakayahang magtrabaho sa console gamit ang anumang live na usb GNU/Linux nang hindi nangangailangan ng karagdagang pag-download ng software (ngunit inirerekomenda pa rin ang GUI);
  3. seguridad ng mga backup na kopya - ang nakaimbak na "mga imahe" ay dapat na naka-encrypt/protektado ng password;
  4. ang laki ng naka-encrypt na data ay dapat tumugma sa laki ng aktwal na data na kinokopya;
  5. maginhawang pagkuha ng mga kinakailangang file mula sa isang backup na kopya (walang kinakailangang i-decrypt muna ang buong seksyon).

Halimbawa, backup/restore sa pamamagitan ng "dd" utility

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

Ito ay tumutugma sa halos lahat ng mga punto ng gawain, ngunit ayon sa punto 4 hindi ito tumayo sa pagpuna, dahil kinokopya nito ang buong disk partition, kabilang ang libreng espasyo - hindi kawili-wili.

Halimbawa, isang backup ng GNU/Linux sa pamamagitan ng archiver [tar" | gpg] ay maginhawa, ngunit para sa Windows backup kailangan mong maghanap ng isa pang solusyon - hindi ito kawili-wili.

E1. Pangkalahatang backup ng Windows/Linux. I-link ang rsync (Grsync)+VeraCrypt volumeAlgorithm para sa paggawa ng backup na kopya:

  1. paggawa ng naka-encrypt na lalagyan (volume/file) VeraCrypt para sa OS;
  2. ilipat/i-synchronize ang OS gamit ang Rsync software sa VeraCrypt crypto container;
  3. kung kinakailangan, i-upload ang volume ng VeraCrypt sa www.

Ang paglikha ng isang naka-encrypt na lalagyan ng VeraCrypt ay may sariling mga katangian:
paglikha ng isang dynamic na volume (Ang paglikha ng DT ay magagamit lamang sa Windows, maaari ding gamitin sa GNU/Linux);
paglikha ng isang regular na volume, ngunit mayroong isang kinakailangan ng isang "paranoid na karakter" (ayon sa developer) – pag-format ng lalagyan.

Ang isang dynamic na volume ay nilikha halos kaagad sa Windows, ngunit kapag kinokopya ang data mula sa GNU/Linux > VeraCrypt DT, ang pangkalahatang pagganap ng backup na operasyon ay bumaba nang malaki.

Ang isang regular na 70 GB Twofish volume ay nilikha (sabihin na lang natin, sa average na kapangyarihan ng PC) sa HDD ~ sa kalahating oras (Ang pag-overwrite sa dating data ng container sa isang pass ay dahil sa mga kinakailangan sa seguridad). Ang function ng mabilis na pag-format ng volume kapag gumagawa nito ay inalis mula sa VeraCrypt Windows/Linux, kaya ang paggawa ng container ay posible lang sa pamamagitan ng “one-pass rewriting” o paggawa ng low-performance dynamic na volume.

Lumikha ng isang regular na dami ng VeraCrypt (hindi dynamic/ntfs), hindi dapat magkaroon ng anumang mga problema.

I-configure/lumikha/magbukas ng container sa VeraCrypt GUI> GNU/Linux live usb (ang volume ay i-automount sa /media/veracrypt2, ang volume ng Windows OS ay mai-mount sa /media/veracrypt1). Paglikha ng naka-encrypt na backup ng Windows OS gamit ang GUI rsync (grsync)sa pamamagitan ng paglalagay ng tsek sa mga kahon.

Buong disk encryption ng Windows Linux install system. Naka-encrypt na multi-boot

Hintaying makumpleto ang proseso. Kapag kumpleto na ang backup, magkakaroon kami ng isang naka-encrypt na file.

Katulad nito, gumawa ng backup na kopya ng GNU/Linux OS sa pamamagitan ng pag-alis ng check sa checkbox na “Windows compatibility” sa rsync GUI.

Pansin! gumawa ng Veracrypt container para sa “GNU/Linux backup” sa file system ext4. Kung gumawa ka ng backup sa isang lalagyan ng ntfs, pagkatapos ay kapag na-restore mo ang naturang kopya, mawawala ang lahat ng karapatan/grupo sa lahat ng iyong data.

Ang lahat ng mga operasyon ay maaaring isagawa sa terminal. Mga pangunahing opsyon para sa rsync:
* -g -save ang mga pangkat;
* -P —progress — katayuan ng oras na ginugol sa pagtatrabaho sa file;
* -H - kopyahin ang mga hardlink kung ano ang nangyayari;
* -a -archive mode (maraming rlptgoD flag);
* -v -berbalisasyon.

Kung gusto mong mag-mount ng "VeraCrypt volume ng Windows" sa pamamagitan ng console sa cryptsetup software, maaari kang lumikha ng 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

Ngayon ang command na "veramount pictures" ay mag-prompt sa iyo na magpasok ng isang passphrase, at ang naka-encrypt na dami ng Windows system ay mai-mount sa OS.

Mapa/mount VeraCrypt system volume sa cryptsetup command

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

Mapa/mount VeraCrypt partition/container sa cryptsetup command

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

Sa halip na alias, magdaragdag kami (isang script sa pagsisimula) ng dami ng system na may Windows OS at isang lohikal na naka-encrypt na ntfs disk sa GNU/Linux startup

Gumawa ng script at i-save ito sa ~/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.

Ibinahagi namin ang "tama" na mga karapatan:

sudo chmod 100 /VeraOpen.sh

Lumikha ng dalawang magkaparehong file (parehong pangalan!) sa /etc/rc.local at ~/etc/init.d/rc.local
Pagpuno ng mga file

#!/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

Ibinahagi namin ang "tama" na mga karapatan:

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

Iyon lang, ngayon kapag naglo-load ng GNU/Linux hindi namin kailangang maglagay ng mga password para i-mount ang mga naka-encrypt na ntfs disk, ang mga disk ay awtomatikong naka-mount.

Isang maikling tala tungkol sa inilarawan sa itaas sa talata E1 hakbang-hakbang (ngunit ngayon para sa OS GNU/Linux)
1) Gumawa ng volume sa fs ext4 > 4gb (para sa file) Linux sa Veracrypt [Cryptbox].
2) I-reboot upang mabuhay ang usb.
3) ~$ cryptsetup open /dev/sda7 Lunux #mapping encrypted partition.
4) ~$ mount /dev/mapper/Linux /mnt #mount ang naka-encrypt na partition sa /mnt.
5) ~$ mkdir mnt2 #paglikha ng isang direktoryo para sa isang backup sa hinaharap.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #Map a Veracrypt volume na pinangalanang “CryptoBox” at i-mount ang CryptoBox sa /mnt2.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #backup na operasyon ng isang naka-encrypt na partition sa isang naka-encrypt na volume ng Veracrypt.

(p/s/ Pansin! Kung naglilipat ka ng naka-encrypt na GNU/Linux mula sa isang arkitektura/machine patungo sa isa pa, halimbawa, Intel > AMD (iyon ay, pag-deploy ng backup mula sa isang naka-encrypt na partition patungo sa isa pang naka-encrypt na Intel > AMD partition), Huwag kalimutan Pagkatapos ilipat ang naka-encrypt na OS, i-edit ang lihim na kapalit na key sa halip na ang password, marahil. ang dating key ~/etc/skey - hindi na magkasya sa isa pang naka-encrypt na partition, at hindi ipinapayong lumikha ng bagong key na "cryptsetup luksAddKey" mula sa ilalim ng chroot - posible ang isang glitch, sa ~/etc/crypttab na tukuyin lamang sa halip na “/etc/skey” pansamantalang “wala” ", pagkatapos mag-rebot at mag-log in sa OS, muling likhain ang iyong sikretong wildcard key).

Bilang mga beterano ng IT, tandaan na hiwalay na gumawa ng mga backup ng mga header ng mga naka-encrypt na partisyon ng Windows/Linux OS, o ang pag-encrypt ay magiging laban sa iyo.
Sa hakbang na ito, nakumpleto ang backup ng naka-encrypt na OS.

[F] Pag-atake sa GRUB2 bootloader

Mga detalyeKung naprotektahan mo ang iyong bootloader gamit ang isang digital signature at/o authentication (tingnan ang punto C6.), kung gayon hindi ito mapoprotektahan laban sa pisikal na pag-access. Ang naka-encrypt na data ay hindi pa rin maa-access, ngunit ang proteksyon ay malalampasan (i-reset ang digital signature protection) Binibigyang-daan ng GRUB2 ang isang cyber-villain na mag-inject ng kanyang code sa bootloader nang hindi nagtataas ng hinala (maliban kung manu-manong sinusubaybayan ng user ang estado ng bootloader, o magkaroon ng sarili nilang mahusay na arbitrary-script code para sa grub.cfg).

Algoritmo ng pag-atake. Manghihimasok

* Nag-boot ng PC mula sa live na usb. Anumang pagbabago (violator) aabisuhan ng mga file ang tunay na may-ari ng PC tungkol sa panghihimasok sa bootloader. Ngunit isang simpleng muling pag-install ng GRUB2 na pinapanatili ang grub.cfg (at ang kasunod na kakayahang i-edit ito) ay magbibigay-daan sa isang umaatake na mag-edit ng anumang mga file (sa sitwasyong ito, kapag naglo-load ng GRUB2, hindi aabisuhan ang tunay na user. Pareho ang status <0>)
* Nag-mount ng hindi naka-encrypt na partition, nag-iimbak ng "/mnt/boot/grub/grub.cfg".
* Muling i-install ang bootloader (inaalis ang "perskey" mula sa core.img na larawan)

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

* Ibinabalik ang “grub.cfg” > “/mnt/boot/grub/grub.cfg”, ine-edit ito kung kinakailangan, halimbawa, pagdaragdag ng iyong module na “keylogger.mod” sa folder na may mga module ng loader, sa “grub.cfg” > linyang "insmod keylogger". O, halimbawa, kung ang kaaway ay tuso, pagkatapos ay muling i-install ang GRUB2 (lahat ng mga lagda ay nananatili sa lugar) binubuo nito ang pangunahing GRUB2 na imahe gamit ang "grub-mkimage na may opsyon (-c)." Ang opsyong “-c” ay magbibigay-daan sa iyong i-load ang iyong config bago i-load ang pangunahing “grub.cfg”. Ang config ay maaaring binubuo ng isang linya lamang: pag-redirect sa anumang "modern.cfg", halo-halong, halimbawa, sa ~400 mga file (mga module+pirma) sa folder na "/boot/grub/i386-pc". Sa kasong ito, maaaring magpasok ng arbitrary code at mag-load ng mga module ang isang attacker nang hindi naaapektuhan ang “/boot/grub/grub.cfg”, kahit na inilapat ng user ang “hashsum” sa file at pansamantalang ipinakita ito sa screen.
Hindi kailangang i-hack ng isang attacker ang GRUB2 superuser login/password; kailangan lang niyang kopyahin ang mga linya (responsable para sa pagpapatunay) "/boot/grub/grub.cfg" sa iyong "modern.cfg"

itakda ang superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

At ang may-ari ng PC ay maa-authenticate pa rin bilang GRUB2 superuser.

Naglo-load ng chain (naglo-load ang bootloader ng isa pang bootloader), tulad ng isinulat ko sa itaas, ay hindi makatwiran (ito ay nilayon para sa ibang layunin). Hindi ma-load ang naka-encrypt na bootloader dahil sa BIOS (nagre-restart ang chain boot ng GRUB2 > naka-encrypt na GRUB2, error!). Gayunpaman, kung gagamitin mo pa rin ang ideya ng chain loading, maaari mong tiyakin na ito ay ang naka-encrypt na isa na nilo-load. (hindi modernized) "grub.cfg" mula sa naka-encrypt na partition. At isa rin itong maling pakiramdam ng seguridad, dahil lahat ng ipinahiwatig sa naka-encrypt na "grub.cfg" (paglo-load ng module) ay nagdaragdag ng hanggang sa mga module na na-load mula sa hindi naka-encrypt na GRUB2.

Kung nais mong suriin ito, pagkatapos ay maglaan/mag-encrypt ng isa pang partition sdaY, kopyahin ang GRUB2 dito (Grub-install na operasyon sa isang naka-encrypt na partition ay hindi posible) at sa "grub.cfg" (hindi naka-encrypt na config) baguhin ang mga linya tulad nito

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
kung [ x$grub_platform = xxen ]; pagkatapos ay insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod cryptodisk
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normal /boot/grub/grub.cfg
}

mga kuwerdas
* insmod - naglo-load ng mga kinakailangang module para sa pagtatrabaho sa isang naka-encrypt na disk;
* GRUBx2 - pangalan ng linya na ipinapakita sa GRUB2 boot menu;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -tingnan. fdisk -l (sda9);
* set root - pagtatakda ng ugat;
* normal /boot/grub/grub.cfg - executable configuration file sa isang naka-encrypt na partition.

Ang kumpiyansa na ito ang naka-encrypt na "grub.cfg" na na-load ay isang positibong tugon sa pagpasok ng password/pag-unlock ng "sdaY" kapag pinipili ang linyang "GRUBx2" sa GRUB menu.

Kapag nagtatrabaho sa CLI, upang hindi malito (at suriin kung ang "set root" na variable ng kapaligiran ay gumana), gumawa ng mga walang laman na token file, halimbawa, sa naka-encrypt na seksyong “/shifr_grub”, sa hindi naka-encrypt na seksyong “/noshifr_grub”. Sinusuri ang CLI

cat /Tab-Tab

Tulad ng nabanggit sa itaas, hindi ito makakatulong laban sa pag-download ng mga nakakahamak na module kung ang mga naturang module ay mapupunta sa iyong PC. Halimbawa, isang keylogger na makakapag-save ng mga keystroke sa isang file at ihalo ito sa iba pang mga file sa “~/i386” hanggang sa ma-download ito ng isang attacker na may pisikal na access sa PC.

Ang pinakamadaling paraan upang i-verify na ang proteksyon ng digital na lagda ay aktibong gumagana (hindi na-reset), at walang lumusob sa bootloader, ilagay ang command sa CLI

list_trusted

bilang tugon nakakatanggap kami ng kopya ng aming "perskey", o wala kaming natatanggap kung kami ay inaatake (kailangan mo ring suriin ang "set check_signatures=enforce").
Ang isang makabuluhang kawalan ng hakbang na ito ay ang pagpasok ng mga command nang manu-mano. Kung idaragdag mo ang command na ito sa "grub.cfg" at protektahan ang config gamit ang isang digital na lagda, kung gayon ang paunang output ng key snapshot sa screen ay masyadong maikli sa timing, at maaaring wala kang oras upang makita ang output pagkatapos i-load ang GRUB2 .
Walang partikular na maghahabol sa: ang developer sa kanya dokumentasyon sugnay 18.2 opisyal na idineklara

“Tandaan na kahit na may proteksyon sa password ng GRUB, hindi mapipigilan ng GRUB mismo ang isang taong may pisikal na access sa machine na baguhin ang configuration ng firmware ng machine (hal., Coreboot o BIOS) upang maging sanhi ng pag-boot ng machine mula sa ibang (kontrolado ng attacker) na device. Ang GRUB ay isang link lang sa isang secure na boot chain."

Masyadong na-overload ang GRUB2 sa mga function na maaaring magbigay ng isang pakiramdam ng maling seguridad, at ang pag-unlad nito ay nalampasan na ang MS-DOS sa mga tuntunin ng pag-andar, ngunit ito ay isang bootloader lamang. Nakakatuwa na ang GRUB2 - "bukas" ay maaaring maging OS, at mga bootable na GNU/Linux virtual machine para dito.

Isang maikling video tungkol sa kung paano ko ni-reset ang GRUB2 digital signature protection at idineklara ang aking panghihimasok sa isang tunay na user (Natakot kita, ngunit sa halip na kung ano ang ipinapakita sa video, maaari kang sumulat ng hindi nakakapinsalang arbitrary code/.mod).

Konklusyon:

1) Ang pag-block ng system encryption para sa Windows ay mas madaling ipatupad, at ang proteksyon sa isang password ay mas maginhawa kaysa sa proteksyon na may ilang mga password na may GNU/Linux block system encryption, upang maging patas: ang huli ay awtomatiko.

2) Isinulat ko ang artikulo bilang nauugnay at detalyado simple isang gabay sa full-disk encryption na VeraCrypt/LUKS sa isang bahay ang makina, na sa ngayon ay ang pinakamahusay sa RuNet (IMHO). Ang gabay ay > 50k character ang haba, kaya hindi ito sumaklaw sa ilang kawili-wiling mga kabanata: mga cryptographer na nawawala/nananatili sa anino; tungkol sa katotohanan na sa iba't ibang mga aklat ng GNU/Linux ay kakaunti ang kanilang sinusulat/hindi nagsusulat tungkol sa cryptography; tungkol sa Artikulo 51 ng Konstitusyon ng Russian Federation; O paglilisensya/ban pag-encrypt sa Russian Federation, tungkol sa kung bakit kailangan mong i-encrypt ang "root/boot". Ang gabay ay naging medyo malawak, ngunit detalyado. (naglalarawan kahit na mga simpleng hakbang), sa turn, ito ay makatipid sa iyo ng maraming oras kapag nakarating ka sa "tunay na pag-encrypt".

3) Ang buong disk encryption ay isinagawa sa Windows 7 64; GNU/Linux Parrot 4x; GNU/Debian 9.0/9.5.

4) Nagpatupad ng matagumpay na pag-atake sa kanya GRUB2 bootloader.

5) Ginawa ang Tutorial upang matulungan ang lahat ng paranoid na tao sa CIS, kung saan pinahihintulutan ang pagtatrabaho sa pag-encrypt sa antas ng pambatasan. At higit sa lahat para sa mga gustong ilunsad ang full-disk encryption nang hindi sinisira ang kanilang mga naka-configure na system.

6) Muling ginawa at na-update ang aking manwal, na may kaugnayan sa 2020.

[G] Kapaki-pakinabang na dokumentasyon

  1. Gabay sa Gumagamit ng TrueCrypt (Pebrero 2012 RU)
  2. VeraCrypt Documentation
  3. /usr/share/doc/cryptsetup(-run) [lokal na mapagkukunan] (opisyal na detalyadong dokumentasyon sa pag-set up ng GNU/Linux encryption gamit ang cryptsetup)
  4. Opisyal na FAQ cryptsetup (maikling dokumentasyon sa pag-set up ng GNU/Linux encryption gamit ang cryptsetup)
  5. LUKS device encryption (dokumentasyon ng archlinux)
  6. Detalyadong paglalarawan ng cryptsetup syntax (arch man page)
  7. Detalyadong paglalarawan ng crypttab (arch man page)
  8. Opisyal na dokumentasyon ng GRUB2.

Tags: full disk encryption, partition encryption, Linux full disk encryption, LUKS1 full system encryption.

Ang mga rehistradong user lamang ang maaaring lumahok sa survey. Mag-sign in, pakiusap

Nag-e-encrypt ka ba?

  • 17,1%Ini-encrypt ko ang lahat ng aking makakaya. Paranoid ako.14

  • 34,2%Ini-encrypt ko lang ang mahalagang data.28

  • 14,6%Minsan naka-encrypt ako, minsan nakakalimutan ko.12

  • 34,2%Hindi, hindi ako nag-e-encrypt, ito ay hindi maginhawa at mahal.28

82 na user ang bumoto. 22 user ang umiwas.

Pinagmulan: www.habr.com

Magdagdag ng komento