Cum se criptează întregul disc și sistemul de operare linux

Cred ca toti s-au intrebat vreodata cum sa se protejeze pe ei insisi sau pe serverul lor in cazul in care vor veni neasteptat "invitati" in masti. Așadar, m-am confruntat cu sarcina de a proteja serverul media local de incidente, după ce am petrecut câteva zile pentru Google și le-am citit manualul - cum am reușit să îl pun în aplicare. Voi spune imediat că există o mulțime de articole despre criptare, dar în esență sunt proiectate să cripteze numai anumite secțiuni sau sunt depășite / conțin multe erori.

1. Întregul șurub (șuruburi) trebuie să fie criptat în siguranță
2. Nu trebuie să existe absolut nici o miză pe șuruburi, ca și cum ar fi un șurub nou (sau uzat)
3. OS ar trebui să stea pe partițiile criptate
4. Ar trebui să fie posibilă creșterea spațiului pe disc prin adăugarea de șuruburi noi
5. Începeți sistemul fără a introduce cheia din datele criptate

În primul rând, voi explica pe scurt teoria cu privire la modul în care toate acestea vor funcționa: încărcătorul de sistem și cheia de acces vor fi stocate pe un mic (<50Mb) разделе флешки, при включении загрузчик разблокирует доступ к шифрованному винту, загружает ядро, подключает виртуальные разделы(LVM), далее происходит обычная загрузка системы. В качестве операционной системы был выбран Ububtu Server 9.10, но реализовать эту задачу можно на любой UNIX-like системе. Сразу оговорюсь, в самом инсталляторе есть возможность шифрования системы на этапе установки, но там нельзя реализовать пункты 1 и 2 из списка выше потому будем действовать в ручную.

Avem nevoie de:
1. Imaginea Ubuntu Server 9.10
2. Distribuția LiveCD. Am luat un CD Ubuntu Desktop obișnuit, deoarece știe cum să lucreze cu secțiunile criptate "out of the box".
3. Unitatea flash USB care va fi utilizată pentru a porni sistemul
4. Cunoașterea de bază a sistemelor * nix
5. Mâinile drepte

PASUL 1. Pregătirea unei unități flash și a unui hard disk

a) Desfaceți unitatea flash în partiții și creați o cheie

Conectați unitatea flash USB la computerul pe care șurubul va fi criptat și Boot LiveCD. Sarcina noastră este de a crea pe sectiuni noastre flash drive 2: prima ia aproape tot spațiul și va fi formatat în FAT16, FAT32, NTFS (la alegere), a doua secțiune la sfârșitul stick-ul la 50MB și formatul ext2. Această defalcare nu este intamplatoare - lista initiala din cauza unitatea flash va fi pe deplin funcțional în orice sistem de operare. De asemenea, în ferestrele de a doua secțiune va fi disponibilă - care este un plus în cazul în care unitatea flash se încadrează în mâini greșite. Pentru a crea o partiție, am folosit un utilitar grafic GParted (era pe LiveCD), dar nimic nu împiedică să utilizați fdisk. După crearea partițiilor, le vom monta în sistem:

Acum creați o cheie de fișier cu care să criptați șurubul și să efectuați duplicatul acestuia (doar în caz):

b) Pregătirea șurubului pentru criptare

Cea de-a doua modalitate pe care nu am verificat personal de când am găsit-o după pregătirea șurubului. Utilizează un program pentru a verifica șurubul blocurilor BAD. Nu pot spune nimic despre viteza acestei metode și despre "calitatea" datelor aleatoare.

Acum că suprafața discului este plină, este timpul să-l criptați. Pentru a face acest lucru, vom folosi tehnologia LUKS.

Veți fi avertizat cu privire la distrugerea datelor, trebuie să scrieți DA pentru confirmare (cu majuscule). Conectăm discul criptat:

Introduceți parola și obțineți un nou dispozitiv bloc / dev / mapper / drivespace. Cu dispozitivul recepționat este posibil să lucrați ca și cu un șurub obișnuit.

c) Crearea partiției virtuale (LVM)

Puteți crea partiții obișnuite și le puteți format, dar în acest fel nu ne vom permite să extindem secțiunile în viitor (va trebui să adăugăm altele noi), astfel încât vom folosi tehnologia LVM. Pe scurt, vă permite să adăugați noi șuruburi la piscină în orice moment și extindeți partițiile logice la spațiul adăugat. LiveCD-ul meu a fost încărcat fără pachetele necesare, astfel încât să le instalați mai întâi, apoi să creați o partiție fizică din șurubul nostru decriptat și să o împărțiți în partiții logice.

Acum avem 3 dispozitive bloc / dev / mapper / vg-swap / dev / mapper / vg-root / dev / mapper / vg-date. Formați-le în FS dorit.

Totul! Șurubul nostru este gata să transfere sistemul de operare la acesta. Pentru a pregăti sistemul, avem nevoie de UUID-urile șurubului și partițiilor, deci salvați-le într-un fișier de pe o unitate flash USB

PASUL 2. Pregătirea sistemului de operare

a) Instalarea sistemului

Trebuie să instalați sistemul nostru de operare fie pe un șurub separat, fie pe un al doilea calculator (o mașină virtuală). Înainte de instalare, conectați unitatea flash USB. Instalarea se face cel mai bine într-o configurație minimă, setările sunt personalizate pentru nevoile dvs. Singurul punct important - trebuie să specificați că boot-ul a fost instalat imediat în cea de-a doua secțiune a unității flash (deci nu îl puteți transfera mai târziu).

b) Instalați pachete suplimentare, schimbați setările

După finalizarea instalării, trebuie să adăugăm pachete în sistem pentru a susține criptarea și LVM și pentru a corecta unele config-uri. Instalați pachetele (cu o conexiune la internet):

Regulatorul de configurare GRUB. Ubuntu utilizează GRUB2, deci editați /boot/grub/grub.cfg. Căutăm meniu-ul "Ubuntu, Linux 2.6.31-14-server" și puțin mai mic
linux /vmlinuz-2.6.31-14-server root = UUID = 9a651089-88fa-46d6-b547-38d3e10d4e67 ro stropi liniștit
pe
linux /vmlinuz-2.6.31-14-server rădăcină = / dev / mapper / vg-root ro splash silențios

Pentru / boot punctul de montare indică un al doilea stick de partiție UUID (poate fi luat dintr-un fișier de pe o unitate flash sau pentru a vedea din nou în sistem), este necesar ca sistemul este întotdeauna montat partiția corectă, indiferent de numărul de carduri flash / șuruburi conectate.

Regula / etc / crypttab
DriveSpace UUID = 090d14c1-e3c8-48e7-b123-6d9b8b2e502b / boot / MyKey luks, cifru = aes-cbc-essiv: SHA256
aici specificăm UUID din șurubul nostru criptat (vezi în fișierul de pe unitatea flash)

c) Schimbarea initrd

Pregătiți initrd-ul pentru a lucra cu criptare și LVM. În fișierul / etc / initramfs-tools / modules, adăugați:

dm_mod
dm_crypt
SHA256
aes_generic
Creați fișierul / etc / initramfs-tools / hooks / cryptokeys cu acest script:
PREREQ = ""

prereqs ()
echo "$ PREREQ"
>

caz $ 1 in
prereqs)
prereqs
ieșire 0
;;
ESAC

dacă [. -x / sbin / criptsetup]; atunci
ieșire 0
Fi

Acesta va copia fișierul nostru cheie într-un loc neobișnuit în interiorul imaginii initrd, astfel încât unitatea flash nu poate fi montat din nou. Creați fișierul / etc / initramfs-tools / scripts / local-top / cryptokeys cu scriptul:
PREREQ = "udev"

prereqs ()
echo "$ PREREQ"
>

caz $ 1 in
# obține pre-rechizite
prereqs)
prereqs
ieșire 0
;;
ESAC
modprobe -b dm_crypt
modprobe -b aes_generic
modprobe -b sha256

în timp ce. / Sbin / cryptsetup -d = / etc / console / MyKey luksOpen / dev / disk / by-uuid / DriveSpace 090d14c1-e3c8-48e7-b123-6d9b8b2e502b; face
ecou "Încearcă din nou. "
făcut
Aceasta se face în procesul de încărcare initrd încărcați modulele de kernel corespunzătoare, și va încerca să deschidă șurub nostru criptat cu UUID = 090d14c1-e3c8-48e7-b123-6d9b8b2e502b. (Bucla a fost făcută pentru cazul cu o expresie de acces în locul cheii). Trebuie să introduceți UUID-ul dvs. din șurubul criptat.
Acum realizăm:
sudo update-initramfs -u ALL

d) Ambalarea sistemului de transfer

Am montat partiția noastră din root-ul fs într-un folder separat și îl vom împacheta pe prima partiție a unității flash:

Acum puteți transfera sistemul.

ETAPA 3. Transferul de sistem

Este simplu: ne conectați unitatea noastră flash USB cu o copie de siguranță, de boot de pe LiveCD, conectați un set de șuruburi pachet securizat suport LVM, instalați rădăcina virtuală (probabil, mai întâi trebuie să efectueze sistemul vgscan și vgmknodes pentru a vedea secțiunile), montați unitatea flash USB și despachetați sistemul de arhivare.

Ei bine, asta e tot, reporniți computerul și încărcați-l de pe unitatea flash USB. Dacă totul se face corect, după câteva secunde veți vedea inscripția Slot cheie 0 deblocat, apoi șurubul a fost decodificat și conectat, apoi va porni sistemul de încărcare standard al sistemului.

În cazul unui astfel de sistem informatic de origine vă oferă posibilitatea de a proteja în mod fiabil informațiile dvs. personale și nu va permite oricui să utilizeze un computer fără știrea dumneavoastră (fără bliț); în cazul unui server în organizație, dacă ați venit pentru a verifica - tras resetare stick-ul și împuns și experții au un / calculator nou non-business; server de la compania de găzduire mi-ar complica sistemul și să stocheze cheia undeva în rețea, în cazul în care serverul este oprit și luat, acesta nu va porni fără un Internet (și aveți nevoie pentru a elimina rapid accesul la cheie - pentru a nu se încarcă).

Dacă totul a funcționat pentru dvs. de la prima dată, puteți șterge în siguranță toate fișierele din prima secțiune a unității flash.

Asigurați-vă că faceți o copie a cheii pentru a nu pierde accesul la datele dvs. Este, de asemenea, o idee bună să adăugați oa doua cheie sub forma unei parole (după cum puteți vedea în documentația LUKS / cryptsetup). Organizarea unui depozit sigur în condiții de siguranță pe baza RAID1,5,6 nu va fi, de asemenea, inutilă atunci când se stochează informații valoroase.

Când am configurat întregul sistem, l-am simulat inițial într-o mașină virtuală și apoi l-am transferat doar într-un calculator real. Încă foarte mult ca să cunoască opinia avocaților (de preferință din Ucraina), în detrimentul vinovăției provability în distribuirea de conținut piratat, în cazul în care experții nu pot ajunge la informațiile (și acest lucru este imposibil fără cheie), dar constată că șurubul este criptat.

Articole similare