Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa
Đã cập nhật hướng dẫn riêng về mã hóa toàn bộ đĩa trong RuNet V0.2.

Chiến lược cao bồi:

[A] Mã hóa khối hệ thống Windows 7 của hệ thống đã cài đặt;
[B] Mã hóa khối hệ thống GNU/Linux (Debian) hệ thống được cài đặt (bao gồm/khởi động);
[C] Cấu hình GRUB2, bảo vệ bộ nạp khởi động bằng chữ ký số/xác thực/băm;
[D] tước bỏ—hủy bỏ dữ liệu không được mã hóa;
[E] bản sao lưu chung của hệ điều hành được mã hóa;
[F] tấn công <vào mục [C6]> mục tiêu - Bộ tải khởi động GRUB2;
[G]tài liệu hữu ích.

╭───Sơ đồ #phòng 40# :
├──╼ Đã cài đặt Windows 7 - mã hóa toàn bộ hệ thống, không bị ẩn;
├──╼ Đã cài đặt GNU/Linux (Bản phân phối Debian và phái sinh) - mã hóa toàn bộ hệ thống, không bị ẩn(/, bao gồm /boot; trao đổi);
├──╼ bộ tải khởi động độc lập: Bộ tải khởi động VeraCrypt được cài đặt trong MBR, bộ tải khởi động GRUB2 được cài đặt trong phân vùng mở rộng;
├──╼không cần cài đặt/cài đặt lại hệ điều hành;
└──╼phần mềm mật mã được sử dụng: VeraCrypt; Thiết lập mật mã; GnuPG; Cá ngựa; Hashdeep; GRUB2 là miễn phí/miễn phí.

Sơ đồ trên giải quyết được một phần vấn đề “khởi động từ xa vào ổ đĩa flash”, cho phép bạn tận hưởng hệ điều hành Windows/Linux được mã hóa và trao đổi dữ liệu qua “kênh được mã hóa” từ hệ điều hành này sang hệ điều hành khác.

Thứ tự khởi động PC (một trong các tùy chọn):

  • bật máy;
  • đang tải bộ tải khởi động VeraCrypt (nhập đúng mật khẩu sẽ tiếp tục khởi động Windows 7);
  • nhấn phím "Esc" sẽ tải bộ tải khởi động GRUB2;
  • Bộ tải khởi động GRUB2 (chọn phân phối/GNU/Linux/CLI), sẽ yêu cầu xác thực siêu người dùng GRUB2 <đăng nhập/mật khẩu>;
  • sau khi xác thực thành công và chọn bản phân phối, bạn sẽ cần nhập cụm mật khẩu để mở khóa “/boot/initrd.img”;
  • sau khi nhập mật khẩu không có lỗi, GRUB2 sẽ "yêu cầu" nhập mật khẩu (thứ ba, mật khẩu BIOS hoặc mật khẩu tài khoản người dùng GNU/Linux – không xem xét) để mở khóa và khởi động hệ điều hành GNU/Linux hoặc tự động thay thế khóa bí mật (hai mật khẩu + khóa hoặc mật khẩu + khóa);
  • sự xâm nhập từ bên ngoài vào cấu hình GRUB2 sẽ đóng băng quá trình khởi động GNU/Linux.

Khó khăn? Được rồi, hãy tự động hóa các quy trình.

Khi phân vùng ổ cứng (bảng MBR) Một PC không được có nhiều hơn 4 phân vùng chính, hoặc 3 phân vùng chính và một phân vùng mở rộng, cũng như một vùng chưa được phân bổ. Phần mở rộng, không giống như phần chính, có thể chứa các phần phụ (ổ đĩa logic=phân vùng mở rộng). Nói cách khác, “phân vùng mở rộng” trên ổ cứng HDD sẽ thay thế LVM cho nhiệm vụ hiện tại: mã hóa toàn bộ hệ thống. Nếu đĩa của bạn được chia thành 4 phân vùng chính thì bạn cần sử dụng lvm hoặc Transform (có định dạng) phần từ chính đến nâng cao hoặc sử dụng khôn ngoan cả bốn phần và giữ nguyên mọi thứ để nhận được kết quả mong muốn. Ngay cả khi bạn có một phân vùng trên đĩa, Gparted sẽ giúp bạn phân vùng ổ cứng (đối với các phần bổ sung) không mất dữ liệu nhưng vẫn bị phạt nhẹ cho những hành động đó.

Sơ đồ bố trí ổ cứng, liên quan đến toàn bộ bài viết sẽ được trình bày bằng lời nói, được trình bày trong bảng bên dưới.

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa
Bảng (số 1) phân vùng 1TB.

Bạn cũng nên có một cái gì đó tương tự.
sda1 - phân vùng chính số 1 NTFS (được mã hóa);
sda2 - điểm đánh dấu phần mở rộng;
sda6 - đĩa logic (nó đã cài đặt bộ tải khởi động GRUB2);
sda8 - trao đổi (tệp hoán đổi được mã hóa/không phải luôn luôn);
sda9 - kiểm tra đĩa logic;
sda5 - đĩa logic dành cho người tò mò;
sda7 - Hệ điều hành GNU/Linux (HĐH được chuyển sang đĩa logic được mã hóa);
sda3 - phân vùng chính số 2 với hệ điều hành Windows 7 (được mã hóa);
sda4 - phần chính số 3 (nó chứa GNU/Linux không được mã hóa, được sử dụng để sao lưu/không phải lúc nào cũng vậy).

[A] Mã hóa khối hệ thống Windows 7

A1. VeraCryptMã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Đang tải từ trang web chính thức, hoặc từ gương nguồn phiên bản cài đặt của phần mềm mật mã VeraCrypt (tại thời điểm xuất bản bài viết v1.24-Update3, phiên bản di động của VeraCrypt không phù hợp để mã hóa hệ thống). Kiểm tra tổng kiểm tra của phần mềm đã tải xuống

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

và so sánh kết quả với CS được đăng trên trang web của nhà phát triển VeraCrypt.

Nếu cài đặt phần mềm HashTab thì còn dễ hơn nữa: RMB (Thiết lập VeraCrypt 1.24.exe)-properties - tổng giá trị băm của các tập tin.

Để xác minh chữ ký chương trình, phần mềm và khóa pgp công khai của nhà phát triển phải được cài đặt trên hệ thống gnuPG; gpg4win.

A2. Cài đặt/chạy phần mềm VeraCrypt với quyền quản trị viênMã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

A3. Chọn tham số mã hóa hệ thống cho phân vùng đang hoạt độngVeraCrypt – Hệ thống – Mã hóa phân vùng/đĩa hệ thống – Bình thường – Mã hóa phân vùng hệ thống Windows – Multiboot – (cảnh báo: “Người dùng thiếu kinh nghiệm không được khuyến khích sử dụng phương pháp này” và điều này đúng, chúng tôi đồng ý “Có”) – Đĩa khởi động (“có”, dù không phải vậy thì vẫn “có”) – Số lượng đĩa hệ thống “2 hoặc nhiều hơn” – Một số hệ thống trên một đĩa “Có” – Bộ tải khởi động không phải Windows “Không” (trên thực tế là “Có,” nhưng các bộ tải khởi động VeraCrypt/GRUB2 sẽ không chia sẻ MBR với nhau; chính xác hơn, chỉ phần nhỏ nhất của mã bộ tải khởi động được lưu trữ trong rãnh MBR/boot, phần chính của nó là nằm trong hệ thống tập tin) – Multiboot – Cài đặt mã hóa…

Nếu bạn đi chệch khỏi các bước trên (chặn các chương trình mã hóa hệ thống), thì VeraCrypt sẽ đưa ra cảnh báo và sẽ không cho phép bạn mã hóa phân vùng.

Trong bước tiếp theo hướng tới bảo vệ dữ liệu có mục tiêu, hãy tiến hành “Thử nghiệm” và chọn thuật toán mã hóa. Nếu bạn có CPU lỗi thời thì rất có thể thuật toán mã hóa nhanh nhất sẽ là Twofish. Nếu CPU mạnh, bạn sẽ nhận thấy sự khác biệt: mã hóa AES, theo kết quả thử nghiệm, sẽ nhanh hơn nhiều lần so với các đối thủ tiền điện tử. AES là một thuật toán mã hóa phổ biến, phần cứng của CPU hiện đại được tối ưu hóa đặc biệt cho cả “bí mật” và “hack”.

VeraCrypt hỗ trợ khả năng mã hóa đĩa theo tầng AES(Hai con cá)/và các kết hợp khác. Trên CPU Intel lõi cũ từ mười năm trước (không hỗ trợ phần cứng cho mã hóa tầng AES, A/T) Sự giảm hiệu suất về cơ bản là không thể nhận thấy. (đối với CPU AMD cùng thời đại/~ tham số, hiệu suất sẽ giảm nhẹ). Hệ điều hành hoạt động linh hoạt và mức tiêu thụ tài nguyên để mã hóa minh bạch là vô hình. Ngược lại, chẳng hạn, có sự giảm hiệu suất đáng chú ý do cài đặt môi trường máy tính để bàn thử nghiệm không ổn định Mate v1.20.1 (hoặc v1.20.2 mình không nhớ chính xác) trong GNU/Linux, hoặc do hoạt động của quy trình đo từ xa trong Windows7↑. Thông thường, người dùng có kinh nghiệm sẽ tiến hành kiểm tra hiệu suất phần cứng trước khi mã hóa. Ví dụ: trong Aida64/Sysbench/systemd-analyze, lỗi được so sánh với kết quả của các thử nghiệm tương tự sau khi mã hóa hệ thống, từ đó bác bỏ quan niệm sai lầm rằng “mã hóa hệ thống là có hại”. Sự chậm lại của máy và sự bất tiện là đáng chú ý khi sao lưu/khôi phục dữ liệu được mã hóa, bởi vì bản thân hoạt động “sao lưu dữ liệu hệ thống” không được tính bằng mili giây và những <giải mã/mã hóa nhanh chóng> tương tự đó được thêm vào. Cuối cùng, mỗi người dùng được phép mày mò mật mã sẽ cân bằng thuật toán mã hóa với sự hài lòng của các nhiệm vụ trước mắt, mức độ hoang tưởng và tính dễ sử dụng của họ.

Tốt hơn hết bạn nên để tham số PIM làm mặc định để khi tải HĐH bạn không phải nhập các giá trị lặp chính xác mỗi lần. VeraCrypt sử dụng số lần lặp rất lớn để tạo ra một “băm chậm” thực sự. Một cuộc tấn công vào “ốc sên tiền điện tử” như vậy bằng phương pháp Brute Force/bảng cầu vồng chỉ có ý nghĩa với một cụm mật khẩu ngắn “đơn giản” và danh sách bộ ký tự cá nhân của nạn nhân. Cái giá phải trả cho độ mạnh của mật khẩu là sự chậm trễ trong việc nhập đúng mật khẩu khi tải HĐH. (việc gắn các tập đĩa VeraCrypt vào GNU/Linux nhanh hơn đáng kể).
Phần mềm miễn phí để thực hiện các cuộc tấn công vũ phu (trích xuất cụm mật khẩu từ tiêu đề đĩa VeraCrypt/LUKS) Hashcat. John the Ripper không biết cách “phá Veracrypt” và khi làm việc với LUKS không hiểu mật mã Twofish.

Do sức mạnh mật mã của các thuật toán mã hóa, những kẻ lừa đảo không thể ngăn cản đang phát triển phần mềm với một vectơ tấn công khác. Ví dụ: trích xuất siêu dữ liệu/khóa từ RAM (tấn công khởi động nguội/truy cập bộ nhớ trực tiếp), Có phần mềm miễn phí và không miễn phí chuyên dụng cho những mục đích này.

Sau khi hoàn tất thiết lập/tạo “siêu dữ liệu duy nhất” của phân vùng hoạt động được mã hóa, VeraCrypt sẽ đề nghị khởi động lại PC và kiểm tra chức năng của bộ nạp khởi động của nó. Sau khi khởi động lại/khởi động Windows, VeraCrypt sẽ tải ở chế độ chờ, tất cả những gì còn lại là xác nhận quá trình mã hóa - Y.

Ở bước cuối cùng của quá trình mã hóa hệ thống, VeraCrypt sẽ đề nghị tạo một bản sao lưu tiêu đề của phân vùng được mã hóa đang hoạt động dưới dạng “đĩa cứu hộ veracrypt.iso” - việc này phải được thực hiện - trong phần mềm này, thao tác như vậy là bắt buộc (trong LUKS, như một yêu cầu - rất tiếc điều này bị bỏ qua, nhưng được nhấn mạnh trong tài liệu). Đĩa cứu hộ sẽ có ích cho tất cả mọi người và cho một số người nhiều lần. Sự mất mát (tiêu đề/viết lại MBR) bản sao lưu của tiêu đề sẽ từ chối vĩnh viễn quyền truy cập vào phân vùng được giải mã bằng hệ điều hành Windows.

A4. Tạo USB/đĩa cứu hộ VeraCryptTheo mặc định, VeraCrypt đề nghị ghi “~2-3MB siêu dữ liệu” vào một đĩa CD, nhưng không phải tất cả mọi người đều có đĩa hoặc ổ DWD-ROM và việc tạo một ổ đĩa flash có khả năng khởi động “Đĩa cứu hộ VeraCrypt” sẽ là một điều ngạc nhiên về mặt kỹ thuật đối với một số người: Rufus /GUIdd-ROSA ImageWriter và phần mềm tương tự khác sẽ không thể thực hiện được nhiệm vụ này, vì ngoài việc sao chép siêu dữ liệu offset vào ổ flash có khả năng khởi động, bạn cần sao chép/dán hình ảnh bên ngoài hệ thống tệp của ổ USB, tóm lại, hãy sao chép chính xác MBR/đường vào móc khóa. Bạn có thể tạo một ổ đĩa flash có khả năng khởi động từ hệ điều hành GNU/Linux bằng tiện ích “dd”, hãy nhìn vào dấu hiệu này.

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Việc tạo đĩa cứu hộ trong môi trường Windows lại khác. Nhà phát triển VeraCrypt không đưa giải pháp cho vấn đề này vào bản chính thức tài liệu bởi “đĩa cứu hộ”, nhưng đề xuất giải pháp theo một cách khác: anh ấy đã đăng phần mềm bổ sung để tạo “đĩa cứu hộ usb” để truy cập miễn phí trên diễn đàn VeraCrypt của mình. Người lưu trữ phần mềm này cho Windows là "tạo đĩa cứu hộ usb veracrypt". Sau khi lưu Rescue disk.iso, quá trình mã hóa hệ thống khối của phân vùng đang hoạt động sẽ bắt đầu. Trong quá trình mã hóa, hoạt động của hệ điều hành không dừng lại, không cần khởi động lại PC. Sau khi hoàn thành thao tác mã hóa, phân vùng hoạt động sẽ được mã hóa hoàn toàn và có thể được sử dụng. Nếu bộ tải khởi động của VeraCrypt không xuất hiện khi bạn khởi động PC và thao tác khôi phục tiêu đề không giúp ích được gì thì hãy kiểm tra cờ “khởi động”, nó phải được đặt vào phân vùng có Windows (bất kể mã hóa và hệ điều hành khác, xem bảng số 1).
Điều này hoàn thành mô tả về mã hóa hệ thống khối với hệ điều hành Windows.

[B]LUKS. Mã hóa GNU/Linux (~Debian) hệ điều hành đã cài đặt. Thuật toán và các bước

Để mã hóa một bản phân phối Debian/phái sinh đã cài đặt, bạn cần ánh xạ phân vùng đã chuẩn bị tới một thiết bị khối ảo, chuyển nó sang đĩa GNU/Linux được ánh xạ và cài đặt/cấu hình GRUB2. Nếu bạn không có máy chủ cơ bản và coi trọng thời gian của mình thì bạn cần sử dụng GUI và hầu hết các lệnh đầu cuối được mô tả bên dưới đều được chạy ở “chế độ Chuck-Norris”.

B1. Khởi động PC từ usb trực tiếp GNU/Linux

“Tiến hành kiểm tra tiền điện tử về hiệu suất phần cứng”

lscpu && сryptsetup benchmark

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Nếu bạn là chủ sở hữu hạnh phúc của một chiếc ô tô mạnh mẽ có hỗ trợ phần cứng AES thì các con số sẽ trông giống như phía bên phải của thiết bị đầu cuối; nếu bạn là chủ sở hữu hạnh phúc nhưng với phần cứng cổ, các con số sẽ trông giống như phía bên trái.

B2. Phân vùng đĩa. gắn/định dạng đĩa logic fs HDD sang Ext4 (Gparted)

B2.1. Tạo tiêu đề phân vùng sda7 được mã hóaTôi sẽ mô tả tên của các phân vùng ở đây và hơn thế nữa, theo bảng phân vùng của tôi đã đăng ở trên. Theo cách bố trí đĩa của bạn, bạn phải thay thế tên phân vùng của mình.

Ánh xạ mã hóa ổ đĩa logic (/dev/sda7 >/dev/mapper/sda7_crypt).
#Dễ dàng tạo “phân vùng LUKS-AES-XTS”

cryptsetup -v -y luksFormat /dev/sda7

Tùy chọn:

* luksFormat - khởi tạo tiêu đề LUKS;
* -y -passphrase (không phải khóa/tệp);
* -v -verbalization (hiển thị thông tin trong terminal);
* /dev/sda7 - đĩa logic của bạn từ phân vùng mở rộng (nơi dự định chuyển/mã hóa GNU/Linux).

Thuật toán mã hóa mặc định <LUKS1: aes-xts-plain64, Khóa: 256 bit, băm tiêu đề LUKS: sha256, RNG: /dev/urandom> (tùy thuộc vào phiên bản cryptsetup).

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

Nếu không có hỗ trợ phần cứng cho AES trên CPU, lựa chọn tốt nhất là tạo “phân vùng LUKS-Twofish-XTS” mở rộng.

B2.2. Tạo nâng cao “LUKS-Twofish-XTS-partition”

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

Tùy chọn:
* luksFormat - khởi tạo tiêu đề LUKS;
* /dev/sda7 là đĩa logic được mã hóa trong tương lai của bạn;
* -v diễn đạt bằng lời nói;
* -y cụm mật khẩu;
* -c chọn thuật toán mã hóa dữ liệu;
* -s kích thước khóa mã hóa;
* -h thuật toán băm/hàm mật mã, RNG được sử dụng (--sử dụng-urandom) để tạo khóa mã hóa/giải mã duy nhất cho tiêu đề đĩa logic, khóa tiêu đề phụ (XTS); khóa chính duy nhất được lưu trữ trong tiêu đề đĩa được mã hóa, khóa XTS phụ, tất cả siêu dữ liệu này và quy trình mã hóa, sử dụng khóa chính và khóa XTS phụ, mã hóa/giải mã mọi dữ liệu trên phân vùng (trừ tiêu đề phần) được lưu trữ trong ~ 3 MB trên phân vùng đĩa cứng đã chọn.
* -i lần lặp tính bằng mili giây, thay vì "số tiền" (độ trễ thời gian khi xử lý cụm mật khẩu ảnh hưởng đến việc tải hệ điều hành và độ mạnh mật mã của khóa). Để duy trì sự cân bằng về sức mạnh mật mã, với mật khẩu đơn giản như “tiếng Nga”, bạn cần tăng giá trị -(i); với mật khẩu phức tạp như “?8dƱob/øfh” thì giá trị có thể giảm xuống.
* —sử dụng trình tạo số ngẫu nhiên Urandom, tạo khóa và muối.

Sau khi ánh xạ phần sda7 > sda7_crypt (thao tác này diễn ra nhanh chóng vì tiêu đề được mã hóa được tạo với ~3 MB siêu dữ liệu và chỉ vậy thôi), bạn cần định dạng và mount hệ thống tệp sda7_crypt.

B2.3. So sánh

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

tùy chọn:
* mở - khớp phần “với tên”;
* /dev/sda7 -đĩa logic;
* sda7_crypt - ánh xạ tên được sử dụng để gắn kết phân vùng được mã hóa hoặc khởi tạo nó khi hệ điều hành khởi động.

B2.4. Định dạng hệ thống tệp sda7_crypt thành ext4. Gắn đĩa vào hệ điều hành(Lưu ý: bạn sẽ không thể làm việc với phân vùng được mã hóa trong Gparted)

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

tùy chọn:
* -v -ngôn ngữ hóa;
* -L - nhãn ổ đĩa (được hiển thị trong Explorer cùng với các ổ đĩa khác).

Tiếp theo, bạn nên gắn thiết bị khối được mã hóa ảo /dev/sda7_crypt vào hệ thống

mount /dev/mapper/sda7_crypt /mnt

Làm việc với các tệp trong thư mục/mnt sẽ tự động mã hóa/giải mã dữ liệu trong sda7.

Sẽ thuận tiện hơn khi ánh xạ và gắn kết phân vùng trong Explorer (GUI nautilus/caja), phân vùng sẽ có sẵn trong danh sách chọn đĩa, việc còn lại chỉ là nhập cụm mật khẩu để mở/giải mã đĩa. Tên trùng khớp sẽ được chọn tự động chứ không phải “sda7_crypt”, mà là tên như /dev/mapper/Luks-xx-xx...

B2.5. Sao lưu tiêu đề đĩa (~3 MB siêu dữ liệu)Một trong những quan trọng các hoạt động cần được thực hiện ngay lập tức - bản sao lưu của tiêu đề “sda7_crypt”. Nếu bạn ghi đè/làm hỏng tiêu đề (ví dụ: cài đặt GRUB2 trên phân vùng sda7, v.v.), dữ liệu được mã hóa sẽ bị mất hoàn toàn mà không có khả năng khôi phục lại được vì không thể tạo lại các khóa giống nhau; các khóa được tạo duy nhất.

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

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

tùy chọn:
* luksHeaderBackup —lệnh header-backup-file -backup;
* luksHeaderRestore —lệnh header-backup-file -restore;
* ~/Backup_DebSHIFR - tệp sao lưu;
* /dev/sda7 - phân vùng có bản sao lưu tiêu đề đĩa được mã hóa sẽ được lưu.
Đến bước này <tạo và chỉnh sửa phân vùng được mã hóa> đã hoàn tất.

B3. Chuyển hệ điều hành GNU/Linux (sda4) đến một phân vùng được mã hóa (sda7)

Tạo thư mục /mnt2 (Lưu ý - chúng tôi vẫn đang làm việc với usb trực tiếp, sda7_crypt được gắn tại /mnt), và gắn GNU/Linux của chúng tôi vào /mnt2, cần được mã hóa.

mkdir /mnt2
mount /dev/sda4 /mnt2

Chúng tôi thực hiện chuyển hệ điều hành chính xác bằng phần mềm Rsync

rsync -avlxhHX --progress /mnt2/ /mnt

Các tùy chọn Rsync được mô tả trong đoạn E1.

Hơn nữa, cần thiết chống phân mảnh phân vùng đĩa logic

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

Hãy đặt ra quy tắc: thỉnh thoảng thực hiện e4defrag trên GNU/LInux được mã hóa nếu bạn có ổ cứng HDD.
Quá trình truyền và đồng bộ hóa [GNU/Linux > GNU/Linux-encrypted] được hoàn tất ở bước này.

TẠI 4. Thiết lập GNU/Linux trên phân vùng sda7 được mã hóa

Sau khi chuyển thành công OS /dev/sda4 > /dev/sda7, bạn cần đăng nhập vào GNU/Linux trên phân vùng được mã hóa và tiến hành cấu hình thêm (không cần khởi động lại PC) liên quan đến một hệ thống được mã hóa. Nghĩa là, ở trong usb trực tiếp, nhưng thực thi các lệnh “liên quan đến thư mục gốc của hệ điều hành được mã hóa”. “chroot” sẽ mô phỏng một tình huống tương tự. Để nhanh chóng nhận được thông tin về hệ điều hành bạn đang làm việc (được mã hóa hay không, vì dữ liệu trong sda4 và sda7 được đồng bộ hóa), giải đồng bộ hóa hệ điều hành. Tạo trong thư mục gốc (sda4/sda7_crypt) các tệp đánh dấu trống, ví dụ: /mnt/encryptedOS và /mnt2/decryptedOS. Kiểm tra nhanh hệ điều hành bạn đang sử dụng (bao gồm cả tương lai):

ls /<Tab-Tab>

B4.1. “Mô phỏng đăng nhập vào hệ điều hành được mã hóa”

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

B4.2. Xác minh rằng công việc được thực hiện dựa trên hệ thống được mã hóa

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

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

B4.3. Tạo/cấu hình trao đổi được mã hóa, chỉnh sửa crypttab/fstabVì tệp hoán đổi được định dạng mỗi khi hệ điều hành khởi động nên việc tạo và ánh xạ trao đổi vào một đĩa logic bây giờ là vô nghĩa và gõ các lệnh như trong đoạn B2.2. Đối với Swap, các khóa mã hóa tạm thời của nó sẽ được tạo tự động mỗi lần bắt đầu. Vòng đời của khóa trao đổi: ngắt kết nối/ngắt kết nối phân vùng trao đổi (+làm sạch RAM); hoặc khởi động lại hệ điều hành. Thiết lập trao đổi, mở tệp chịu trách nhiệm cấu hình các thiết bị được mã hóa khối (tương tự như tệp fstab, nhưng chịu trách nhiệm về mật mã).

nano /etc/crypttab 

chúng tôi chỉnh sửa

#"tên mục tiêu" "thiết bị nguồn" "tập tin khóa" "tùy chọn"
trao đổi /dev/sda8 /dev/urandom trao đổi, cipher=twofish-xts-plain64,size=512,hash=sha512

Tùy chọn
* trao đổi - tên được ánh xạ khi mã hóa /dev/mapper/swap.
* /dev/sda8 - sử dụng phân vùng logic của bạn để trao đổi.
* /dev/urandom - trình tạo khóa mã hóa ngẫu nhiên để trao đổi (với mỗi lần khởi động hệ điều hành mới, các khóa mới sẽ được tạo). Trình tạo /dev/urandom ít ngẫu nhiên hơn /dev/random, xét cho cùng thì /dev/random được sử dụng khi làm việc trong các trường hợp hoang tưởng nguy hiểm. Khi tải hệ điều hành, /dev/random làm chậm quá trình tải trong vài ± phút (xem phân tích hệ thống).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -phân vùng biết rằng đó là trao đổi và được định dạng “tương ứng”; thuật toán mã hóa.

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

chúng tôi chỉnh sửa

# swap đã được bật / dev / sda8 trong khi cài đặt
/dev/mapper/swap không trao đổi sw 0 0

/dev/mapper/swap là tên được đặt trong crypttab.

Trao đổi mã hóa thay thế
Nếu vì lý do nào đó mà bạn không muốn nhường toàn bộ phân vùng cho một tệp hoán đổi, thì bạn có thể thực hiện một cách khác và tốt hơn: tạo tệp hoán đổi trong một tệp trên phân vùng được mã hóa với HĐH.

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 будет постоянный

Quá trình thiết lập phân vùng trao đổi đã hoàn tất.

B4.4. Thiết lập GNU/Linux được mã hóa (chỉnh sửa các tệp crypttab/fstab)Tệp /etc/crypttab, như đã viết ở trên, mô tả các thiết bị khối được mã hóa được định cấu hình trong quá trình khởi động hệ thống.

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

nếu bạn khớp phần sda7>sda7_crypt như trong đoạn B2.1

# "tên mục tiêu" "thiết bị nguồn" "tập tin khóa" "tùy chọn"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

nếu bạn khớp phần sda7>sda7_crypt như trong đoạn B2.2

# "tên mục tiêu" "thiết bị nguồn" "tập tin khóa" "tùy chọn"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

nếu bạn khớp phần sda7>sda7_crypt như trong đoạn B2.1 hoặc B2.2, nhưng không muốn nhập lại mật khẩu để mở khóa và khởi động hệ điều hành, thì thay vì mật khẩu, bạn có thể thay thế bằng khóa bí mật/tệp ngẫu nhiên

# "tên mục tiêu" "thiết bị nguồn" "tập tin khóa" "tùy chọn"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Описание
* không có - báo cáo rằng khi tải hệ điều hành, cần phải nhập cụm mật khẩu bí mật để mở khóa root.
* UUID - mã định danh phân vùng. Để tìm ra ID của bạn, hãy nhập vào thiết bị đầu cuối (xin nhắc rằng từ thời điểm này trở đi, bạn đang làm việc trên một thiết bị đầu cuối trong môi trường chroot chứ không phải trong một thiết bị đầu cuối USB trực tiếp khác).

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»

dòng này hiển thị khi yêu cầu blkid từ thiết bị đầu cuối usb trực tiếp có gắn sda7_crypt).
Bạn lấy UUID từ sdaX của bạn (không phải sdaX_crypt!, UUID sdaX_crypt - sẽ tự động được để lại khi tạo cấu hình grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -mã hóa luks ở chế độ nâng cao.
* /etc/skey - tệp khóa bí mật, được chèn tự động để mở khóa khởi động hệ điều hành (thay vì nhập mật khẩu thứ 3). Bạn có thể chỉ định bất kỳ tệp nào có kích thước tối đa 8 MB, nhưng dữ liệu sẽ được đọc <1 MB.

#Создание "генерация" случайного файла <секретного ключа> размером 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 

Nó sẽ trông giống như thế này:

(tự mình làm và xem nhé).

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

/etc/fstab chứa thông tin mô tả về các hệ thống tệp khác nhau.

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

# "hệ thống tập tin" "điểm gắn kết" "loại" "tùy chọn" "kết xuất" "vượt qua"
# / đã bật / dev / sda7 trong khi cài đặt
/dev/mapper/sda7_crypt / ext4 lỗi=remount-ro 0 1

Lựa chọn
* /dev/mapper/sda7_crypt - tên của ánh xạ sda7>sda7_crypt, được chỉ định trong tệp /etc/crypttab.
Quá trình thiết lập crypttab/fstab đã hoàn tất.

B4.5. Chỉnh sửa tập tin cấu hình. Thời điểm quan trọngB4.5.1. Chỉnh sửa cấu hình /etc/initramfs-tools/conf.d/resume

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

và nhận xét (nếu tồn tại) dòng "#" "tiếp tục". Tệp phải hoàn toàn trống.

B4.5.2. Chỉnh sửa cấu hình /etc/initramfs-tools/conf.d/cryptsetup

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

Nên khớp

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=có
xuất CRYPTSETUP

B4.5.3. Chỉnh sửa cấu hình /etc/default/grub (cấu hình này chịu trách nhiệm về khả năng tạo grub.cfg khi làm việc với /boot được mã hóa)

nano /etc/default/grub

thêm dòng “GRUB_ENABLE_CRYPTODISK=y”
value 'y', grub-mkconfig và grub-install sẽ kiểm tra các ổ đĩa được mã hóa và tạo các lệnh bổ sung cần thiết để truy cập chúng khi khởi động (insmods ).
chắc chắn phải có sự tương đồng

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || tiếng vang Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=nhà cung cấp"
GRUB_CMDLINE_LINUX="không có tự động giật gân yên tĩnh"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Chỉnh sửa cấu hình /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

kiểm tra xem dòng đã nhận xét <#>.
Trong tương lai (và thậm chí bây giờ, thông số này sẽ không có ý nghĩa gì, nhưng đôi khi nó cản trở việc cập nhật hình ảnh initrd.img).

B4.5.5. Chỉnh sửa cấu hình /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

thêm

KEYFILE_PATTERN=”/etc/skey”
UMASK=0077

Điều này sẽ gói khóa bí mật "skey" vào initrd.img, khóa này cần có để mở khóa root khi hệ điều hành khởi động (nếu không muốn nhập lại mật khẩu thì dùng phím “skey” thay cho ô tô).

B4.6. Cập nhật /boot/initrd.img [phiên bản]Để đóng gói khóa bí mật vào initrd.img và áp dụng các bản sửa lỗi cryptsetup, hãy cập nhật hình ảnh

update-initramfs -u -k all

khi cập nhật initrd.img (như người ta nói “Có thể nhưng không chắc chắn”) Các cảnh báo liên quan đến cryptsetup sẽ xuất hiện hoặc chẳng hạn như thông báo về việc mất mô-đun Nvidia - điều này là bình thường. Sau khi cập nhật file xong kiểm tra xem nó đã thực sự được cập nhật chưa, xem thời gian (liên quan đến môi trường chroot./boot/initrd.img). Cảnh báo! trước [update-initramfs -u -k all] hãy chắc chắn kiểm tra xem cryptsetup có mở/dev/sda7 không sda7_crypt - đây là tên xuất hiện trong /etc/crypttab, nếu không sau khi khởi động lại sẽ báo lỗi busybox)
Đến bước này, việc thiết lập các file cấu hình đã hoàn tất.

[C] Cài đặt và cấu hình GRUB2/Protection

C1. Nếu cần, hãy định dạng phân vùng dành riêng cho bootloader (một phân vùng cần ít nhất 20MB)

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

C2. Gắn /dev/sda6 vào /mntVì vậy chúng ta làm việc trong chroot thì sẽ không có thư mục /mnt2 trong root và thư mục /mnt sẽ trống.
gắn kết phân vùng GRUB2

mount /dev/sda6 /mnt

Nếu bạn đã cài đặt phiên bản GRUB2 cũ hơn, trong thư mục /mnt/boot/grub/i-386-pc (có thể sử dụng nền tảng khác, ví dụ: không phải “i386-pc”) không có mô-đun tiền điện tử (nói tóm lại, thư mục phải chứa các mô-đun, bao gồm các mô-đun .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), trong trường hợp này, GRUB2 cần được lắc.

apt-get update
apt-get install grub2 

Quan trọng! Khi cập nhật gói GRUB2 từ kho lưu trữ, khi được hỏi “về việc chọn” nơi cài đặt bootloader, bạn phải từ chối cài đặt (lý do - cố gắng cài đặt GRUB2 - trong “MBR” hoặc trên usb trực tiếp). Nếu không bạn sẽ làm hỏng phần đầu/bộ nạp của VeraCrypt. Sau khi cập nhật các gói GRUB2 và hủy cài đặt, bộ tải khởi động phải được cài đặt thủ công trên đĩa logic chứ không phải trong MBR. Nếu kho lưu trữ của bạn có phiên bản GRUB2 đã lỗi thời, hãy thử cập nhật nó từ trang web chính thức - chưa kiểm tra nó (hoạt động với bộ tải khởi động GRUB 2.02 ~ BetaX mới nhất).

C3. Cài đặt GRUB2 vào phân vùng mở rộng [sda6]Bạn phải có một phân vùng được mount [mục C.2]

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

các tùy chọn
* —force - cài đặt bộ nạp khởi động, bỏ qua tất cả các cảnh báo hầu như luôn tồn tại và chặn cài đặt (cờ bắt buộc).
* --root-directory - cài đặt thư mục vào thư mục gốc của sda6.
* /dev/sda6 - phân vùng sdaХ của bạn (đừng bỏ lỡ <dấu cách> giữa/mnt/dev/sda6).

C4. Tạo tệp cấu hình [grub.cfg]Hãy quên lệnh "update-grub2" và sử dụng lệnh tạo tệp cấu hình đầy đủ

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

sau khi hoàn tất việc tạo/cập nhật tệp grub.cfg, thiết bị đầu cuối đầu ra sẽ chứa (các) dòng có hệ điều hành được tìm thấy trên đĩa (“grub-mkconfig” có thể sẽ tìm và nhận hệ điều hành từ usb trực tiếp, nếu bạn có ổ flash multiboot với Windows 10 và một loạt bản phân phối trực tiếp - điều này là bình thường). Nếu thiết bị đầu cuối “trống” và tệp “grub.cfg” không được tạo, thì đây là trường hợp tương tự khi có lỗi GRUB trong hệ thống (và rất có thể là trình tải từ nhánh thử nghiệm của kho lưu trữ), cài đặt lại GRUB2 từ các nguồn đáng tin cậy.
Quá trình cài đặt "cấu hình đơn giản" và thiết lập GRUB2 đã hoàn tất.

C5. Kiểm tra bằng chứng về hệ điều hành GNU/Linux được mã hóaChúng tôi hoàn thành nhiệm vụ tiền điện tử một cách chính xác. Cẩn thận để lại GNU/Linux được mã hóa (thoát khỏi môi trường chroot).

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

Sau khi khởi động lại PC, bộ tải khởi động VeraCrypt sẽ tải.
Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

*Nhập mật khẩu cho phân vùng đang hoạt động sẽ bắt đầu tải Windows.
*Nhấn phím "Esc" sẽ chuyển quyền điều khiển sang GRUB2, nếu bạn chọn GNU/Linux được mã hóa - sẽ cần có mật khẩu (sda7_crypt) để mở khóa /boot/initrd.img (nếu grub2 ghi uuid "không tìm thấy" - đây là vấn đề với bộ tải khởi động grub2, nó cần được cài đặt lại, ví dụ: từ nhánh thử nghiệm/ổn định, v.v.).
Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

*Tùy thuộc vào cách bạn định cấu hình hệ thống (xem đoạn B4.4/4.5), sau khi nhập đúng mật khẩu để mở khóa image /boot/initrd.img, bạn sẽ cần mật khẩu để tải kernel/root của hệ điều hành hoặc bí mật khóa sẽ được tự động thay thế " skey ", loại bỏ nhu cầu nhập lại cụm mật khẩu.
Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa
(màn hình “tự động thay thế khóa bí mật”).

*Sau đó, quy trình tải GNU/Linux quen thuộc với xác thực tài khoản người dùng sẽ diễn ra sau đó.
Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

*Sau khi ủy quyền người dùng và đăng nhập vào hệ điều hành, bạn cần cập nhật lại /boot/initrd.img (xem B4.6).

update-initramfs -u -k all

Và trong trường hợp có thêm dòng trong menu GRUB2 (từ xe bán tải OS-m có usb trực tiếp) loại bỏ chúng

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

Tóm tắt nhanh về mã hóa hệ thống GNU/Linux:

  • GNU/Linuxinux được mã hóa hoàn toàn, bao gồm /boot/kernel và initrd;
  • khóa bí mật được đóng gói trong initrd.img;
  • chương trình ủy quyền hiện tại (nhập mật khẩu để mở khóa initrd; mật khẩu/key để khởi động hệ điều hành; mật khẩu cấp quyền cho tài khoản Linux).

Quá trình mã hóa hệ thống "Cấu hình GRUB2 đơn giản" của phân vùng khối đã hoàn tất.

C 6. Cấu hình GRUB2 nâng cao. Bảo vệ bootloader bằng chữ ký số + bảo vệ xác thựcGNU/Linux được mã hóa hoàn toàn, nhưng bộ nạp khởi động không thể được mã hóa - điều kiện này do BIOS quy định. Vì lý do này, không thể khởi động được mã hóa theo chuỗi của GRUB2, nhưng có thể/có sẵn một khởi động theo chuỗi đơn giản, nhưng từ quan điểm bảo mật thì điều đó là không cần thiết [xem P.F].
Đối với GRUB2 “dễ bị tổn thương”, các nhà phát triển đã triển khai thuật toán bảo vệ bộ tải khởi động “chữ ký/xác thực”.

  • Khi bộ nạp khởi động được bảo vệ bằng “chữ ký số của chính nó”, việc sửa đổi tệp bên ngoài hoặc cố gắng tải các mô-đun bổ sung trong bộ nạp khởi động này sẽ dẫn đến quá trình khởi động bị chặn.
  • Khi bảo vệ bộ nạp khởi động bằng xác thực, để chọn tải bản phân phối hoặc nhập các lệnh bổ sung trong CLI, bạn sẽ cần nhập thông tin đăng nhập và mật khẩu của superuser-GRUB2.

C6.1. Bảo vệ xác thực bootloaderKiểm tra xem bạn có đang làm việc trong thiết bị đầu cuối trên hệ điều hành được mã hóa không

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

tạo mật khẩu siêu người dùng để ủy quyền trong GRUB2

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

Lấy mật khẩu băm. Một cái gì đó như thế này

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

gắn kết phân vùng GRUB

mount /dev/sda6 /mnt 

chỉnh sửa cấu hình

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

kiểm tra tìm kiếm tập tin để đảm bảo không có cờ nào trong “grub.cfg” (“-unrestricted” “-user”,
thêm vào cuối (trước dòng ### END /etc/grub.d/41_custom ###)
"đặt siêu người dùng="root"
băm gốc mật khẩu_pbkdf2."

Nó phải là một cái gì đó như thế này

# Tệp này cung cấp một cách dễ dàng để thêm các mục menu tùy chỉnh. Đơn giản chỉ cần gõ
# mục menu bạn muốn thêm sau nhận xét này. Hãy cẩn thận để không thay đổi
# dòng 'đuôi thực thi' ở trên.
### KẾT THÚC /etc/grub.d/40_custom ###

### BẮT ĐẦU /etc/grub.d/41_custom ###
nếu [ -f ${config_directory}/custom.cfg ]; sau đó
nguồn ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; sau đó
nguồn $prefix/custom.cfg;
fi
đặt siêu người dùng="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### KẾT THÚC /etc/grub.d/41_custom ###
#

Nếu bạn thường sử dụng lệnh “grub-mkconfig -o /mnt/boot/grub/grub.cfg” và không muốn mỗi lần thay đổi grub.cfg, hãy nhập các dòng trên (Mật khẩu đăng nhập) trong tập lệnh người dùng GRUB ở dưới cùng

nano /etc/grub.d/41_custom 

mèo <<EOF
đặt siêu người dùng="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Khi tạo cấu hình “grub-mkconfig -o /mnt/boot/grub/grub.cfg”, các dòng chịu trách nhiệm xác thực sẽ được tự động thêm vào grub.cfg.
Bước này hoàn tất thiết lập xác thực GRUB2.

C6.2. Bảo vệ bootloader bằng chữ ký sốGiả định rằng bạn đã có khóa mã hóa pgp cá nhân của mình (hoặc tạo một khóa như vậy). Hệ thống phải cài đặt phần mềm mật mã: gnuPG; kleopatra/GPA; Cá ngựa. Phần mềm tiền điện tử sẽ giúp cuộc sống của bạn dễ dàng hơn nhiều trong mọi vấn đề như vậy. Seahorse - phiên bản ổn định của gói 3.14.0 (các phiên bản cao hơn, chẳng hạn như V3.20, bị lỗi và có lỗi nghiêm trọng).

Khóa PGP chỉ cần được tạo/khởi chạy/thêm trong môi trường su!

Tạo khóa mã hóa cá nhân

gpg - -gen-key

Xuất khóa của bạn

gpg --export -o ~/perskey

Gắn đĩa logic vào hệ điều hành nếu nó chưa được gắn

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

dọn sạch phân vùng GRUB2

rm -rf /mnt/

Cài đặt GRUB2 trong sda6, đặt khóa riêng của bạn vào ảnh GRUB chính "core.img"

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

các tùy chọn
* --force - cài đặt bộ nạp khởi động, bỏ qua tất cả các cảnh báo luôn tồn tại (cờ bắt buộc).
* —modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" - hướng dẫn GRUB2 tải trước các mô-đun cần thiết khi PC khởi động.
* -k ~/perskey -đường dẫn đến “khóa PGP” (sau khi đóng gói key vào ảnh có thể xóa được).
* --root-directory -đặt thư mục khởi động vào thư mục gốc của sda6
/dev/sda6 - phân vùng sdaX của bạn.

Tạo/cập nhật grub.cfg

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

Thêm dòng “trust /boot/grub/perskey” vào cuối file “grub.cfg” (buộc sử dụng khóa pgp.) Vì chúng tôi đã cài đặt GRUB2 với một bộ mô-đun, bao gồm cả mô-đun chữ ký “signature_test.mod”, điều này giúp loại bỏ nhu cầu thêm các lệnh như “set check_signatures=enforce” vào cấu hình.

Nó sẽ trông giống như thế này (dòng cuối trong tệp grub.cfg)

### BẮT ĐẦU /etc/grub.d/41_custom ###
nếu [ -f ${config_directory}/custom.cfg ]; sau đó
nguồn ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; sau đó
nguồn $prefix/custom.cfg;
fi
tin tưởng /boot/grub/perskey
đặt siêu người dùng="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### KẾT THÚC /etc/grub.d/41_custom ###
#

Đường dẫn đến “/boot/grub/perskey” không cần phải trỏ đến một phân vùng đĩa cụ thể, chẳng hạn như hd0,6; đối với chính bộ nạp khởi động, “root” là đường dẫn mặc định của phân vùng mà GRUB2 được cài đặt trên đó (xem tập thối=..).

Ký GRUB2 (tất cả các tệp trong tất cả các thư mục/GRUB) bằng chìa khóa “perkey” của bạn.
Một giải pháp đơn giản về cách ký (đối với nhà thám hiểm nautilus/caja): cài đặt tiện ích mở rộng “seahorse” cho Explorer từ kho lưu trữ. Khóa của bạn phải được thêm vào môi trường su.
Mở Explorer bằng sudo “/mnt/boot” – RMB – sign. Trên màn hình nó trông như thế này

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Bản thân khóa là “/mnt/boot/grub/perskey” (sao chép vào thư mục grub) cũng phải được ký bằng chữ ký của chính bạn. Kiểm tra xem chữ ký tệp [*.sig] có xuất hiện trong thư mục/thư mục con hay không.
Sử dụng phương pháp được mô tả ở trên, ký tên vào “/boot” (hạt nhân của chúng tôi, initrd). Nếu thời gian của bạn có giá trị thì phương pháp này sẽ loại bỏ nhu cầu viết tập lệnh bash để ký vào “rất nhiều tệp”.

Để xóa tất cả chữ ký bootloader (nếu có sự cố xảy ra)

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

Để không ký bootloader sau khi cập nhật hệ thống, chúng tôi đóng băng tất cả các gói cập nhật liên quan đến GRUB2.

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

Ở bước này <bảo vệ bộ nạp khởi động bằng chữ ký số> cấu hình nâng cao của GRUB2 đã hoàn tất.

C6.3. Kiểm tra bằng chứng bộ tải khởi động GRUB2, được bảo vệ bằng chữ ký số và xác thựcGRUB2. Khi chọn bất kỳ bản phân phối GNU/Linux nào hoặc vào CLI (dòng lệnh) Ủy quyền siêu người dùng sẽ được yêu cầu. Sau khi nhập đúng tên người dùng/mật khẩu, bạn sẽ cần mật khẩu initrd

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa
Ảnh chụp màn hình xác thực thành công siêu người dùng GRUB2.

Nếu bạn giả mạo bất kỳ tệp GRUB2 nào/thực hiện các thay đổi đối với grub.cfg hoặc xóa tệp/chữ ký hoặc tải mô-đun.mod độc hại, một cảnh báo tương ứng sẽ xuất hiện. GRUB2 sẽ tạm dừng tải.

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa
Ảnh chụp màn hình, một nỗ lực can thiệp vào GRUB2 “từ bên ngoài”.

Trong quá trình khởi động "bình thường" "không có sự xâm nhập", trạng thái mã thoát hệ thống là "0". Do đó, không biết liệu sự bảo vệ có hoạt động hay không (nghĩa là “có hoặc không có bảo vệ chữ ký bootloader” trong quá trình tải bình thường, trạng thái giống nhau “0” - điều này không tốt).

Làm thế nào để kiểm tra bảo vệ chữ ký số?

Một cách bất tiện để kiểm tra: giả mạo/xóa một mô-đun được GRUB2 sử dụng, ví dụ: xóa chữ ký luks.mod.sig và gặp lỗi.

Cách đúng: vào bootloader CLI và gõ lệnh

trust_list

Để phản hồi, bạn sẽ nhận được dấu vân tay "perskey", nếu trạng thái là "0" thì tính năng bảo vệ chữ ký không hoạt động, hãy kiểm tra kỹ đoạn C6.2.
Ở bước này, cấu hình nâng cao “Bảo vệ GRUB2 bằng chữ ký số và xác thực” đã hoàn tất.

C7 Phương pháp thay thế để bảo vệ bộ tải khởi động GRUB2 bằng cách sử dụng hàm bămPhương pháp "Xác thực/Bảo vệ bộ tải khởi động CPU" được mô tả ở trên là phương pháp cổ điển. Do sự không hoàn hảo của GRUB2, trong điều kiện hoang tưởng, nó dễ bị tấn công thực sự, điều mà tôi sẽ trình bày bên dưới trong đoạn [F]. Ngoài ra, sau khi cập nhật hệ điều hành/kernel, bộ nạp khởi động phải được ký lại.

Bảo vệ bộ tải khởi động GRUB2 bằng cách băm

Ưu điểm so với kinh điển:

  • Mức độ tin cậy cao hơn (việc băm/xác minh chỉ diễn ra từ một tài nguyên cục bộ được mã hóa. Toàn bộ phân vùng được phân bổ trong GRUB2 được kiểm soát đối với mọi thay đổi và mọi thứ khác đều được mã hóa; trong sơ đồ cổ điển với tính năng bảo vệ/Xác thực bộ tải CPU, chỉ các tệp được kiểm soát, nhưng không miễn phí không gian, trong đó có thể thêm “thứ gì đó” thứ gì đó nham hiểm).
  • Ghi nhật ký được mã hóa (nhật ký mã hóa cá nhân mà con người có thể đọc được sẽ được thêm vào lược đồ).
  • tốc độ (việc bảo vệ/xác minh toàn bộ phân vùng được phân bổ cho GRUB2 diễn ra gần như ngay lập tức).
  • Tự động hóa tất cả các quy trình mã hóa.

Nhược điểm so với kinh điển.

  • Giả mạo chữ ký (về mặt lý thuyết có thể tìm thấy xung đột hàm băm cho trước).
  • Tăng mức độ khó (so với kiểu cổ điển, cần có thêm một chút kỹ năng về Hệ điều hành GNU/Linux).

Ý tưởng băm GRUB2/phân vùng hoạt động như thế nào

Phân vùng GRUB2 được “ký”; khi hệ điều hành khởi động, phân vùng bộ tải khởi động được kiểm tra tính bất biến, sau đó đăng nhập vào môi trường an toàn (được mã hóa). Nếu bộ nạp khởi động hoặc phân vùng của nó bị xâm phạm, ngoài nhật ký xâm nhập, phần sau sẽ được khởi chạy:

Điều.Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Kiểm tra tương tự xảy ra bốn lần một ngày, không tải tài nguyên hệ thống.
Bằng cách sử dụng lệnh “-$ check_GRUB”, quá trình kiểm tra tức thời sẽ diễn ra bất kỳ lúc nào mà không cần ghi nhật ký nhưng với thông tin được xuất ra CLI.
Sử dụng lệnh “-$ sudo signature_GRUB”, bộ tải/phân vùng khởi động GRUB2 ngay lập tức được ký lại và ghi nhật ký được cập nhật của nó (cần thiết sau khi cập nhật hệ điều hành/khởi động) và cuộc sống vẫn tiếp diễn.

Triển khai phương pháp băm cho bộ nạp khởi động và phần của nó

0) Hãy ký vào bộ tải khởi động/phân vùng GRUB bằng cách gắn nó vào /media/username trước tiên

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

1) Chúng tôi tạo một tập lệnh không có phần mở rộng trong thư mục gốc của hệ điều hành được mã hóa ~/podpis, áp dụng các quyền bảo mật cần thiết và khả năng bảo vệ hoàn hảo cho tập lệnh đó.

Điền nội dung của nó

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

Chạy tập lệnh từ su, việc băm phân vùng GRUB và bộ nạp khởi động của nó sẽ được kiểm tra, hãy lưu nhật ký.

Ví dụ: hãy tạo hoặc sao chép một “tệp độc hại” [virus.mod] vào phân vùng GRUB2 và chạy quét/kiểm tra tạm thời:

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

CLI phải chứng kiến ​​cuộc xâm lược -citadel- của chúng ta#Trimmed đăng nhập 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

#Như bạn có thể thấy, “Đã di chuyển tệp: 1 và Kiểm tra không thành công” xuất hiện, có nghĩa là quá trình kiểm tra không thành công.
Do tính chất của phân vùng đang được kiểm tra, thay vì “Đã tìm thấy tệp mới” > “Đã di chuyển tệp”

2) Đặt gif ở đây > ~/warning.gif, đặt quyền thành 744.

3) Định cấu hình fstab để tự động kết nối phân vùng GRUB khi khởi động

-$ sudo nano /etc/fstab

LABEL=GRUB /media/tên người dùng/GRUB ext4 mặc định 0 0

4) Xoay nhật ký

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

/var/log/podpis.txt {
tiền thưởng
xoay 50
kích thước 5M
ngày tháng
nén
nén chậm
olddir /var/log/old
}

/var/log/vtorjenie.txt {
hàng tháng
xoay 5
kích thước 5M
ngày tháng
olddir /var/log/old
}

5) Thêm công việc vào cron

-$ sudo crontab -e

khởi động lại '/đăng ký'
0 */6 * * * '/podpis

6) Tạo bí danh vĩnh viễn

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

Sau khi cập nhật hệ điều hành -$ apt-get upgrade ký lại phân vùng GRUB của chúng tôi
-$ подпись_GRUB
Tại thời điểm này, quá trình bảo vệ băm của phân vùng GRUB đã hoàn tất.

[D] Wipe - hủy dữ liệu không được mã hóa

Theo phát ngôn viên Trey Gowdy của Nam Carolina, hãy xóa hoàn toàn các tập tin cá nhân của bạn đến mức “ngay cả Chúa cũng không thể đọc được chúng”.

Như thường lệ, có rất nhiều “huyền thoại và huyền thoại", về việc khôi phục dữ liệu sau khi bị xóa khỏi ổ cứng. Nếu bạn tin vào cyberwitchcraft hoặc là thành viên của cộng đồng web Dr và chưa bao giờ thử khôi phục dữ liệu sau khi bị xóa/ghi đè (ví dụ: khôi phục bằng R-studio), thì phương pháp được đề xuất khó có thể phù hợp với bạn, hãy sử dụng phương pháp gần gũi nhất với bạn.

Sau khi chuyển thành công GNU/Linux sang một phân vùng được mã hóa, bản sao cũ phải bị xóa mà không có khả năng phục hồi dữ liệu. Phương pháp làm sạch phổ quát: phần mềm dành cho phần mềm GUI miễn phí của Windows/Linux BleachBit.
Быстро định dạng phần, dữ liệu cần được hủy (thông qua Gparted) khởi chạy BleachBit, chọn “Dọn dẹp dung lượng trống” - chọn phân vùng (sdaX của bạn với bản sao GNU/Linux trước đó), quá trình tước sẽ bắt đầu. BleachBit - xóa sạch đĩa trong một lần - đây là thứ “chúng tôi cần”, Nhưng! Về lý thuyết, điều này chỉ hoạt động nếu bạn định dạng đĩa và làm sạch nó trong phần mềm BB v2.0.

Sự chú ý! BB xóa đĩa, để lại siêu dữ liệu; tên tệp được giữ nguyên khi dữ liệu bị loại bỏ (Ccleaner - không để lại siêu dữ liệu).

Và huyền thoại về khả năng phục hồi dữ liệu không hoàn toàn là huyền thoại.Gói Debian hệ điều hành không ổn định trước đây của Bleachbit V2.0-2 (và bất kỳ phần mềm tương tự nào khác: sfill; lau-Nautilus - cũng được chú ý trong hoạt động kinh doanh bẩn thỉu này) thực sự có một lỗi nghiêm trọng: chức năng "xóa không gian trống" nó hoạt động không chính xác trên ổ đĩa HDD/Flash (ntfs/ext4). Phần mềm loại này khi xóa dung lượng trống sẽ không ghi đè lên toàn bộ đĩa như nhiều người dùng nghĩ. Và một số (nhiều) dữ liệu đã xóa Hệ điều hành/phần mềm coi dữ liệu này là dữ liệu người dùng/không bị xóa và khi dọn dẹp “OSP”, nó sẽ bỏ qua các tệp này. Vấn đề là sau một thời gian dài như vậy, việc dọn dẹp đĩa "tệp đã xóa" có thể được phục hồi ngay cả sau hơn 3 lần lau đĩa.
Trên GNU/Linux tại Bleachbit 2.0-2 Chức năng xóa vĩnh viễn các tập tin và thư mục hoạt động đáng tin cậy nhưng không xóa được dung lượng trống. Để so sánh: trên Windows trong CCleaner, chức năng “OSP cho ntfs” hoạt động bình thường và Chúa thực sự sẽ không thể đọc được dữ liệu đã xóa.

Và vì vậy, để loại bỏ triệt để "Làm tổn hại" dữ liệu cũ không được mã hóa, Bleachbit cần truy cập trực tiếp vào dữ liệu này, sau đó, hãy sử dụng chức năng “xóa vĩnh viễn tập tin/thư mục”.
Để xóa “các tệp đã xóa bằng các công cụ hệ điều hành tiêu chuẩn” trong Windows, hãy sử dụng CCleaner/BB với chức năng “OSP”. Trong GNU/Linux về vấn đề này (xóa các tập tin đã xóa) bạn cần phải tự mình thực hành (xóa dữ liệu + nỗ lực khôi phục dữ liệu độc lập và bạn không nên dựa vào phiên bản phần mềm (nếu không phải dấu trang thì là lỗi)), chỉ trong trường hợp này, bạn mới có thể hiểu được cơ chế của vấn đề này và loại bỏ hoàn toàn dữ liệu đã bị xóa.

Tôi chưa kiểm tra Bleachbit v3.0, vấn đề có thể đã được khắc phục.
Bleachbit v2.0 hoạt động trung thực.

Ở bước này, việc xóa đĩa đã hoàn tất.

[E] Sao lưu toàn bộ hệ điều hành được mã hóa

Mỗi người dùng có phương pháp sao lưu dữ liệu riêng, nhưng dữ liệu Hệ điều hành hệ thống được mã hóa yêu cầu cách tiếp cận tác vụ hơi khác một chút. Phần mềm hợp nhất, chẳng hạn như Clonezilla và phần mềm tương tự, không thể hoạt động trực tiếp với dữ liệu được mã hóa.

Tuyên bố về vấn đề sao lưu thiết bị khối được mã hóa:

  1. tính phổ biến - cùng một thuật toán/phần mềm sao lưu cho Windows/Linux;
  2. khả năng làm việc trong bảng điều khiển với bất kỳ usb GNU/Linux trực tiếp nào mà không cần tải xuống phần mềm bổ sung (nhưng vẫn khuyên dùng GUI);
  3. tính bảo mật của các bản sao lưu - “hình ảnh” được lưu trữ phải được mã hóa/bảo vệ bằng mật khẩu;
  4. kích thước của dữ liệu được mã hóa phải tương ứng với kích thước của dữ liệu thực tế được sao chép;
  5. trích xuất thuận tiện các tập tin cần thiết từ bản sao lưu (không yêu cầu giải mã toàn bộ phần trước).

Ví dụ: sao lưu/khôi phục qua tiện ích “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

Nó tương ứng với hầu hết tất cả các điểm của nhiệm vụ, nhưng theo điểm 4, nó không bị chỉ trích vì nó sao chép toàn bộ phân vùng đĩa, bao gồm cả dung lượng trống - không thú vị.

Ví dụ: bản sao lưu GNU/Linux thông qua trình lưu trữ [tar" | gpg] rất tiện lợi, nhưng để sao lưu Windows, bạn cần tìm giải pháp khác - điều đó không thú vị.

E1. Sao lưu phổ quát Windows/Linux. Liên kết rsync (Grsync)+âm lượng VeraCryptThuật toán tạo bản sao lưu:

  1. tạo một thùng chứa được mã hóa (tập tin/tập tin) VeraCrypt cho hệ điều hành;
  2. chuyển/đồng bộ hóa hệ điều hành bằng phần mềm Rsync vào vùng chứa mật mã VeraCrypt;
  3. nếu cần, hãy tải tập đĩa VeraCrypt lên www.

Việc tạo một vùng chứa VeraCrypt được mã hóa có những đặc điểm riêng:
tạo âm lượng động (việc tạo DT chỉ có sẵn trong Windows, cũng có thể được sử dụng trong GNU/Linux);
tạo ra một tập đều đặn nhưng lại yêu cầu phải có “nhân vật hoang tưởng” (theo nhà phát triển) - định dạng vùng chứa.

Một ổ đĩa động được tạo gần như ngay lập tức trong Windows, nhưng khi sao chép dữ liệu từ GNU/Linux > VeraCrypt DT, hiệu suất tổng thể của thao tác sao lưu giảm đáng kể.

Dung lượng Twofish 70 GB thông thường được tạo (giả sử, sức mạnh trung bình của PC) sang ổ cứng ~ trong nửa giờ (ghi đè dữ liệu vùng chứa cũ trong một lượt là do yêu cầu bảo mật). Chức năng định dạng nhanh một tập đĩa khi tạo nó đã bị loại bỏ khỏi VeraCrypt Windows/Linux, do đó việc tạo một bộ chứa chỉ có thể thực hiện được thông qua "ghi lại một lần" hoặc tạo một tập đĩa động hiệu suất thấp.

Tạo một tập đĩa VeraCrypt thông thường (không động/ntfs), sẽ không có vấn đề gì đâu.

Định cấu hình/tạo/mở một vùng chứa trong GUI của VeraCrypt> usb trực tiếp GNU/Linux (ổ đĩa sẽ được tự động gắn vào /media/veracrypt2, ổ đĩa hệ điều hành Windows sẽ được gắn vào /media/veracrypt1). Tạo bản sao lưu được mã hóa của hệ điều hành Windows bằng GUI rsync (grsync)bằng cách chọn các hộp.

Mã hóa toàn bộ đĩa của hệ thống cài đặt Windows Linux. Đa khởi động được mã hóa

Đợi quá trình hoàn tất. Sau khi sao lưu hoàn tất, chúng ta sẽ có một tệp được mã hóa.

Tương tự, tạo bản sao lưu của hệ điều hành GNU/Linux bằng cách bỏ chọn hộp kiểm “Khả năng tương thích với Windows” trong GUI rsync.

Sự chú ý! tạo vùng chứa Veracrypt để “sao lưu GNU/Linux” trong hệ thống tệp ext4. Nếu bạn tạo bản sao lưu vào vùng chứa ntfs thì khi khôi phục bản sao đó, bạn sẽ mất tất cả các quyền/nhóm đối với tất cả dữ liệu của mình.

Bạn có thể thực hiện tất cả các hoạt động trong thiết bị đầu cuối. Các tùy chọn cơ bản cho rsync:
* -g -save nhóm;
* -P —progress — trạng thái thời gian làm việc trên tệp;
* -H - sao chép các liên kết cứng như hiện tại;
* -a -chế độ lưu trữ (nhiều cờ rlptgoD);
* -v -sự diễn đạt bằng lời nói.

Nếu bạn muốn gắn một “khối lượng Windows VeraCrypt” thông qua bảng điều khiển trong phần mềm cryptsetup, bạn có thể tạo một bí danh (su)

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

Bây giờ, lệnh “veramount pictures” sẽ nhắc bạn nhập cụm mật khẩu và ổ đĩa hệ thống Windows được mã hóa sẽ được gắn vào hệ điều hành.

Ánh xạ/gắn ổ đĩa hệ thống VeraCrypt vào lệnh cryptsetup

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

Ánh xạ/gắn kết phân vùng/vùng chứa VeraCrypt vào lệnh cryptsetup

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

Thay vì bí danh, chúng tôi sẽ thêm (tập lệnh để khởi động) ổ đĩa hệ thống với HĐH Windows và đĩa ntfs được mã hóa logic để khởi động GNU/Linux

Tạo tập lệnh và lưu nó vào ~/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.

Chúng tôi phân phối các quyền “chính xác”:

sudo chmod 100 /VeraOpen.sh

Tạo hai tệp giống hệt nhau (cùng tên!) Trong /etc/rc.local và ~/etc/init.d/rc.local
Điền vào các tập tin

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

Chúng tôi phân phối các quyền “chính xác”:

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

Vậy là xong, bây giờ khi tải GNU/Linux, chúng ta không cần nhập mật khẩu để gắn các đĩa ntfs được mã hóa, các đĩa sẽ được gắn tự động.

Một ghi chú ngắn gọn về những gì được mô tả ở trên trong đoạn E1 từng bước một (nhưng bây giờ dành cho OS GNU/Linux)
1) Tạo ổ đĩa ở fs ext4 > 4gb (dành cho tệp) Linux trong Veracrypt [Cryptbox].
2) Khởi động lại vào usb trực tiếp.
3) ~$ cryptsetup mở /dev/sda7 Lunux #mapping phân vùng được mã hóa.
4) ~$ mount /dev/mapper/Linux /mnt #mount phân vùng được mã hóa vào /mnt.
5) ~$ mkdir mnt2 #tạo thư mục để sao lưu trong tương lai.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #Ánh xạ ổ đĩa Veracrypt có tên “CryptoBox” và gắn CryptoBox vào /mnt2.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #backup hoạt động của một phân vùng được mã hóa sang một ổ đĩa Veracrypt được mã hóa.

(p/s/ Sự chú ý! Nếu bạn đang chuyển GNU/Linux được mã hóa từ kiến ​​trúc/máy này sang kiến ​​trúc/máy khác, chẳng hạn như Intel > AMD (nghĩa là triển khai bản sao lưu từ một phân vùng được mã hóa này sang một phân vùng Intel > AMD được mã hóa khác), Đừng quên Sau khi chuyển hệ điều hành được mã hóa, có thể chỉnh sửa khóa thay thế bí mật thay vì mật khẩu. khóa trước đó ~/etc/skey - sẽ không còn vừa với một phân vùng được mã hóa khác nữa và không nên tạo khóa mới “cryptsetup luksAddKey” từ bên dưới chroot - có thể xảy ra trục trặc, chỉ cần chỉ định trong ~/etc/crypttab thay vì “/etc/skey” tạm thời “none” ", sau khi khởi động lại và đăng nhập vào hệ điều hành, hãy tạo lại khóa ký tự đại diện bí mật của bạn một lần nữa).

Là chuyên gia CNTT, hãy nhớ tạo bản sao lưu riêng cho các tiêu đề của phân vùng hệ điều hành Windows/Linux được mã hóa, nếu không việc mã hóa sẽ chống lại bạn.
Ở bước này, quá trình sao lưu hệ điều hành được mã hóa đã hoàn tất.

[F] Tấn công vào bộ tải khởi động GRUB2

chi tiếtNếu bạn đã bảo vệ bộ nạp khởi động của mình bằng chữ ký số và/hoặc xác thực (xem điểm C6.), thì điều này sẽ không bảo vệ khỏi truy cập vật lý. Dữ liệu được mã hóa sẽ vẫn không thể truy cập được nhưng tính năng bảo vệ sẽ bị bỏ qua (đặt lại bảo vệ chữ ký số) GRUB2 cho phép kẻ xấu tiêm mã của hắn vào bộ nạp khởi động mà không gây nghi ngờ (trừ khi người dùng giám sát trạng thái bộ nạp khởi động theo cách thủ công hoặc nghĩ ra mã tập lệnh tùy ý mạnh mẽ của riêng họ cho grub.cfg).

Thuật toán tấn công. kẻ xâm nhập

* Khởi động PC từ usb trực tiếp. Bất cứ thay đổi nào (người vi phạm) các tập tin sẽ thông báo cho chủ sở hữu thực sự của PC về việc xâm nhập vào bộ nạp khởi động. Nhưng việc cài đặt lại GRUB2 đơn giản vẫn giữ được grub.cfg (và khả năng chỉnh sửa nó sau đó) sẽ cho phép kẻ tấn công chỉnh sửa bất kỳ tập tin nào (trong tình huống này, khi tải GRUB2, người dùng thực sẽ không được thông báo. Trạng thái vẫn như cũ <0>)
* Gắn kết một phân vùng không được mã hóa, lưu trữ “/mnt/boot/grub/grub.cfg”.
* Cài đặt lại bộ nạp khởi động (xóa "perskey" khỏi hình ảnh core.img)

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

* Trả về “grub.cfg” > “/mnt/boot/grub/grub.cfg”, chỉnh sửa nó nếu cần, ví dụ: thêm mô-đun “keylogger.mod” của bạn vào thư mục chứa các mô-đun trình tải, trong “grub.cfg” > dòng "keylogger insmod". Hoặc, ví dụ, nếu kẻ thù xảo quyệt, thì sau khi cài đặt lại GRUB2 (tất cả các chữ ký vẫn giữ nguyên) nó xây dựng hình ảnh GRUB2 chính bằng cách sử dụng "grub-mkimage với tùy chọn (-c)." Tùy chọn “-c” sẽ cho phép bạn tải cấu hình của mình trước khi tải “grub.cfg” chính. Cấu hình có thể chỉ bao gồm một dòng: chuyển hướng đến bất kỳ “modern.cfg” nào, ví dụ: được trộn lẫn với ~400 tệp (mô-đun + chữ ký) trong thư mục "/boot/grub/i386-pc". Trong trường hợp này, kẻ tấn công có thể chèn mã tùy ý và tải các mô-đun mà không ảnh hưởng đến “/boot/grub/grub.cfg”, ngay cả khi người dùng áp dụng “hashsum” cho tệp và tạm thời hiển thị nó trên màn hình.
Kẻ tấn công sẽ không cần hack thông tin đăng nhập/mật khẩu siêu người dùng GRUB2; hắn chỉ cần sao chép các dòng (chịu trách nhiệm xác thực) "/boot/grub/grub.cfg" vào "modern.cfg" của bạn

đặt siêu người dùng="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Và chủ sở hữu PC vẫn sẽ được xác thực là siêu người dùng GRUB2.

Tải chuỗi (bộ nạp khởi động tải bộ nạp khởi động khác), như tôi đã viết ở trên, không có ý nghĩa (nó được dùng cho một mục đích khác). Không thể tải bộ tải khởi động được mã hóa do BIOS (khởi động chuỗi khởi động lại GRUB2 > GRUB2 được mã hóa, lỗi!). Tuy nhiên, nếu bạn vẫn sử dụng ý tưởng tải chuỗi, bạn có thể chắc chắn rằng đó là mã hóa đang được tải. (không hiện đại hóa) "grub.cfg" từ phân vùng được mã hóa. Và đây cũng là một cảm giác an toàn sai lầm, bởi vì mọi thứ được chỉ ra trong “grub.cfg” được mã hóa (tải mô-đun) cộng các mô-đun được tải từ GRUB2 không được mã hóa.

Nếu bạn muốn kiểm tra điều này, hãy phân bổ/mã hóa phân vùng khác sdaY, sao chép GRUB2 vào đó (Không thể thực hiện thao tác cài đặt grub trên phân vùng được mã hóa) và trong "grub.cfg" (cấu hình không được mã hóa) thay đổi dòng như thế này

menuentry 'GRUBx2' --class vẹt --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
tải_video
insmod gzio
if [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
insmod part_msdos
đĩa mã hóa insmod
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
bình thường /boot/grub/grub.cfg
}

dòng
* insmod - tải các mô-đun cần thiết để làm việc với đĩa được mã hóa;
* GRUBx2 - tên dòng hiển thị trong menu khởi động GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -xem. fdisk -l (sda9);
* đặt root - cài đặt root;
* normal /boot/grub/grub.cfg - tệp cấu hình thực thi trên phân vùng được mã hóa.

Tin tưởng rằng “grub.cfg” được mã hóa đã được tải là một phản ứng tích cực đối với việc nhập mật khẩu/mở khóa “sdaY” khi chọn dòng “GRUBx2” trong menu GRUB.

Khi làm việc trong CLI, để không bị nhầm lẫn (và kiểm tra xem biến môi trường “set root” có hoạt động không), tạo các tệp mã thông báo trống, ví dụ: trong phần được mã hóa “/shifr_grub”, trong phần không được mã hóa “/noshifr_grub”. Kiểm tra CLI

cat /Tab-Tab

Như đã lưu ý ở trên, điều này sẽ không giúp chống lại việc tải xuống các mô-đun độc hại nếu các mô-đun đó xuất hiện trên PC của bạn. Ví dụ: một keylogger sẽ có thể lưu các lần nhấn phím vào một tệp và trộn nó với các tệp khác trong “~/i386” cho đến khi kẻ tấn công có quyền truy cập vật lý vào PC tải xuống.

Cách dễ nhất để xác minh rằng tính năng bảo vệ chữ ký số đang hoạt động tích cực (không đặt lại), và chưa có ai xâm nhập bootloader, nhập lệnh vào CLI

list_trusted

để đáp lại, chúng tôi nhận được một bản sao “perkey” của mình, hoặc chúng tôi không nhận được gì nếu bị tấn công (bạn cũng cần kiểm tra "set check_signatures=enforce").
Một nhược điểm đáng kể của bước này là nhập lệnh theo cách thủ công. Nếu bạn thêm lệnh này vào “grub.cfg” và bảo vệ cấu hình bằng chữ ký số, thì đầu ra sơ bộ của ảnh chụp nhanh trên màn hình có thời gian quá ngắn và bạn có thể không có thời gian để xem đầu ra sau khi tải GRUB2 .
Không có ai cụ thể để đưa ra yêu cầu: nhà phát triển trong tài liệu khoản 18.2 chính thức tuyên bố

“Lưu ý rằng ngay cả với tính năng bảo vệ bằng mật khẩu GRUB, bản thân GRUB không thể ngăn người nào đó có quyền truy cập vật lý vào máy thay đổi cấu hình chương trình cơ sở của máy đó (ví dụ: Coreboot hoặc BIOS) để khiến máy khởi động từ một thiết bị khác (do kẻ tấn công kiểm soát). GRUB tốt nhất chỉ có một liên kết trong chuỗi khởi động an toàn."

GRUB2 quá tải với các chức năng có thể mang lại cảm giác bảo mật sai lầm và sự phát triển của nó đã vượt xa MS-DOS về mặt chức năng, nhưng nó chỉ là một bộ tải khởi động. Thật buồn cười là GRUB2 - "ngày mai" có thể trở thành HĐH và các máy ảo GNU/Linux có khả năng khởi động cho nó.

Một đoạn video ngắn về cách tôi thiết lập lại cơ chế bảo vệ chữ ký số GRUB2 và khai báo sự xâm nhập của mình với người dùng thực (Tôi làm bạn sợ, nhưng thay vì những gì được hiển thị trong video, bạn có thể viết mã/.mod tùy ý không gây hại).

Kết luận:

1) Mã hóa hệ thống chặn cho Windows dễ thực hiện hơn và việc bảo vệ bằng một mật khẩu sẽ thuận tiện hơn việc bảo vệ bằng nhiều mật khẩu bằng mã hóa hệ thống khối GNU/Linux, công bằng mà nói: công bằng mà nói: mật khẩu sau được tự động hóa.

2) Tôi đã viết bài viết có liên quan và chi tiết đơn giản hướng dẫn về mã hóa toàn bộ đĩa VeraCrypt/LUKS trên một máy ở nhà, đây là máy tốt nhất cho đến nay trong RuNet (IMHO). Hướng dẫn dài > 50 nghìn ký tự nên không đề cập đến một số chương thú vị: các nhà mật mã biến mất/giữ trong bóng tối; về thực tế là trong nhiều cuốn sách GNU/Linux khác nhau họ viết rất ít/không viết về mật mã; về Điều 51 của Hiến pháp Liên bang Nga; ồ cấp phép/lệnh cấm mã hóa ở Liên bang Nga, về lý do tại sao bạn cần mã hóa “root/boot”. Hướng dẫn hóa ra khá rộng rãi nhưng chi tiết. (mô tả các bước đơn giản)Ngược lại, điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian khi chuyển sang “mã hóa thực sự”.

3) Mã hóa toàn bộ ổ đĩa được thực hiện trên Windows 7 64; GNU/Linux Vẹt 4x; GNU/Debian 9.0/9.5.

4) Thực hiện một cuộc tấn công thành công vào của mình Bộ tải khởi động GRUB2.

5) Hướng dẫn được tạo ra để giúp đỡ tất cả những người hoang tưởng ở CIS, nơi cấp lập pháp cho phép làm việc với mã hóa. Và chủ yếu dành cho những ai muốn triển khai mã hóa toàn bộ đĩa mà không phá hủy hệ thống đã cấu hình của họ.

6) Làm lại và cập nhật sổ tay hướng dẫn của tôi, phù hợp vào năm 2020.

[G] Tài liệu hữu ích

  1. Hướng dẫn sử dụng TrueCrypt (Tháng 2012 năm XNUMX RU)
  2. Tài liệu VeraCrypt
  3. /usr/share/doc/cryptsetup(-run) [tài nguyên cục bộ] (tài liệu chi tiết chính thức về cách thiết lập mã hóa GNU/Linux bằng cryptsetup)
  4. Câu hỏi thường gặp chính thức về thiết lập mật mã (tài liệu ngắn gọn về thiết lập mã hóa GNU/Linux bằng cryptsetup)
  5. Mã hóa thiết bị LUKS (tài liệu Archlinux)
  6. Mô tả chi tiết cú pháp cryptsetup (trang Arch man)
  7. Mô tả chi tiết về crypttab (trang Arch man)
  8. Tài liệu GRUB2 chính thức.

Tags: mã hóa toàn bộ đĩa, mã hóa phân vùng, mã hóa toàn bộ đĩa Linux, mã hóa toàn bộ hệ thống LUKS1.

Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát. Đăng nhập, xin vui lòng.

Bạn đang mã hóa phải không?

  • 17,1%Tôi mã hóa mọi thứ có thể. Tôi bị hoang tưởng.14

  • 34,2%Tôi chỉ mã hóa dữ liệu quan trọng.28

  • 14,6%Đôi khi tôi mã hóa, đôi khi tôi quên.12

  • 34,2%Không, tôi không mã hóa, nó bất tiện và tốn kém.28

82 người dùng bình chọn. 22 người dùng bỏ phiếu trắng.

Nguồn: www.habr.com

Thêm một lời nhận xét