Cách mã hóa phân vùng trên Linux với dm-crypt

Ổ cứng và ổ SSD có thể dễ dàng tháo ra khỏi máy tính xách tay hoặc máy tính để bàn. Trong trường hợp này, tất cả các biện pháp bảo mật được thực hiện bởi hệ điều hành của bạn sẽ chẳng còn ý nghĩ gì nữa. Nếu bạn có dữ liệu cần bảo vệ, bạn có thể tạo container (vùng chứa) được mã hóa. Bạn sẽ lưu trữ các file nhạy cảm ở đó, các file còn lại thì lưu trên các phân vùng thông thường.

Dễ nhất là thiết lập phân vùng được mã hóa khi bạn cài đặt bản phân phối Linux. Trình cài đặt có thể hướng dẫn bạn làm điều đó. Nhưng nếu bạn bỏ lỡ cơ hội đó, hãy làm theo các bước trong hướng dẫn này để tạo phân vùng mật của riêng bạn.

Điều kiện tiên quyết

Bạn cần một phân vùng trống cho quá trình này. Điều này có nghĩa là một phân vùng không định dạng (không có hệ thống file trên đó).

Nếu phân vùng được định dạng của bạn hiện đang chiếm toàn bộ dung lượng trống trên thiết bị lưu trữ, bạn sẽ cần phải sử dụng GParted để thu nhỏ một trong số chúng.

Cảnh báo: Bạn nên sao lưu dữ liệu của mình trước tiên. Khi bạn thu nhỏ phân vùng và hệ thống file của nó, sẽ có những rủi ro nhất định. Máy tính của bạn có thể bị lỗi hoặc mất điện trong quá trình xử lý. Điều này có thể khiến hệ thống file của bạn ở trạng thái không nhất quán và khó khôi phục.

Làm theo các bước đầu tiên trong hướng dẫn này để thay đổi kích thước phân vùng bằng GParted. Hoặc, nếu có một phân vùng không cần nữa, bạn có thể xóa nó. (Sau khi bạn giải phóng một số không gian và chúng hiển thị trạng thái "unallocated", hãy bỏ qua các bước còn lại trong hướng dẫn). Cụ thể, không tạo phân vùng được định dạng là ext4. Thay vào đó, nhấp chuột phải vào không gian chưa được phân bổ, như được hiển thị trong hướng dẫn. Trong cửa sổ hộp thoại mở ra, bạn sẽ thấy một trường có nhãn “File system”. Thông thường, ext4 sẽ được chọn làm mặc định tại đây. Nhấp vào nó và thay đổi nó thành "cleared".

Điều kiện

Sau khi bạn chọn “Add”, hãy nhấp vào dấu kiểm màu xanh lục để áp dụng các thay đổi.

Cài đặt cryptsetup

Nếu bạn đã boot hệ điều hành trực tiếp để chỉnh sửa phân vùng của mình bằng GParted, hãy khởi động lại vào bản phân phối Linux chính.

Mở trình giả lập terminal. Trên các hệ thống dựa trên Debian, chẳng hạn như Ubuntu hoặc Linux Mint, hãy nhập lệnh này:

sudo apt update && sudo apt install cryptsetup

Mở terminal

Trên các bản phân phối như Fedora hoặc CentOS và những phiên bản khác sử dụng gói RPM thay vì DEB, bạn có thể cài đặt cryptsetup. Nếu không, bạn có thể cài đặt nó với:

sudo yum install cryptsetup

Trên OpenSUSE, nếu cryptsetup không được cài đặt sẵn, bạn có thể cài đặt nó bằng:

sudo zypper refresh && sudo zypper install cryptsetup

Và trên các bản phân phối dựa trên Arch, bạn sẽ sử dụng lệnh này:

sudo pacman -S cryptsetup

Tìm Block Device Name của phân vùng

Nhập lệnh sau:

lsblk

Block Device Name

Trong ví dụ được cung cấp trong hình, thiết bị lưu trữ là “vda”. “vda1” đến “vda3” là các phân vùng.

Để tìm phân vùng bạn đã chuẩn bị, hãy nhớ kích thước bạn đã bảo toàn cho nó. Bạn sẽ tìm thấy nó trong số các phân vùng không có điểm mount. Trong trường hợp của bạn, điều này có thể là “/dev/sda2” thay vì “/dev/sda3”.

Mã hóa phân vùng sẽ ghi đè lên dữ liệu trên nó (nếu có), có nghĩa là nếu bạn nhận được tên thiết bị sai, bạn có thể sẽ hủy bỏ dữ liệu hữu ích. Để đảm bảo bạn có được tên thiết bị đúng, bạn có thể cài đặt GParted và xem xét bố cục phân vùng của mình. Tên thiết bị sẽ được liệt kê trong giao diện người dùng đồ họa. Không sử dụng tên bạn đã thấy trong GParted khi bạn boot từ hệ thống trực tiếp (nếu bạn đã làm điều đó). Bố cục được hiển thị trong hệ thống trực tiếp sẽ khác với bố cục bạn thấy khi khởi động từ bản phân phối đã cài đặt.

Có một cách khác để đảm bảo bạn không ghi trên thiết bị sai. Hãy thử mount nó. Thông thường, nó sẽ từ chối làm như vậy vì không có một hệ thống file nào trên đó.

Lưu ý quan trọng: Hãy nhớ luôn thay thế "vda3" bằng tên thiết bị của bạn:

sudo mount /dev/vda3 /mnt

Trong trường hợp của bạn, lệnh có thể là sudo mount /dev/sda2 /mnt hoặc một thứ khác.

Đây là thông báo bạn sẽ nhận được.

Thông báo

Thiết lập tiêu đề LUKS

Khi bạn chắc chắn mình có tên thiết bị phù hợp, hãy thêm tiêu đề LUKS vào phân vùng.

sudo cryptsetup luksFormat /dev/vda3

Nhập “YES” và sau đó chọn một mật khẩu mạnh cho phân vùng đã mã hóa. Nhập lại cùng một mật khẩu khi được yêu cầu xác minh cụm mật khẩu.

Tạo một hệ thống file trên phân vùng

Bạn phải ánh xạ thiết bị vật lý này vào thiết bị ảo. Những gì được ghi vào thiết bị ảo sẽ được mã hóa trước khi được lưu trữ trên thiết bị vật lý.

sudo cryptsetup luksOpen /dev/vda3 encrypted-partition

Phân vùng cần một hệ thống file có thể sử dụng được. Tạo một hệ thống file ext4 với lệnh này:

sudo mkfs.ext4 /dev/mapper/encrypted-partition

Tạo hệ thống file ext4

Mount phân vùng được mã hóa

Tạo thư mục nơi bạn sẽ mount hệ thống file từ phân vùng.

mkdir ~/encrypted-storage

Mount hệ thống file:

sudo mount /dev/mapper/encrypted-partition ~/encrypted-storage

Thay đổi thư mục đó:

cd ~/encrypted-storage

Hiện tại, chỉ người dùng root mới có thể ghi ở đây. Cho phép người dùng của bạn ghi trong hệ thống file này bằng cách đặt họ làm chủ sở hữu của thư mục cấp cao hơn. Sao chép và dán toàn bộ lệnh, bao gồm cả "." ở cuối.

sudo chown $USER:$USER .

Hạn chế người dùng khác đọc hoặc ghi vào thư mục này.

chmod o=.

Tại thời điểm này, hầu hết các file manager sẽ hiển thị cho bạn thiết bị được mã hóa mới trên giao diện. Hình sau cho thấy nó trông như thế nào trong file manager Thunar, mặc định được sử dụng trong môi trường desktop XFCE.

Thunar

Nếu ổ đĩa không được mount, khi bạn nhấp vào nó, bạn sẽ được hỏi mật khẩu ổ đĩa và mật khẩu sudo. Ổ đĩa sẽ được tự động mount và bạn có thể duyệt nó. Điểm mount sẽ khác với “~/encrypted-storage”. Nó có thể giống như sau: “/media/user/f42f3025-755d-4a71-95e0-37eaeb761730/”.

Điều đó không quan trọng. Các quyền bạn đã đặt trước đó vẫn áp dụng. Điều quan trọng là phải nhớ nhấp chuột phải vào nó và ngắt kết nối khi bạn hoàn thành công mọi công việc với ổ đĩa. Bỏ mount và đóng thiết bị ảo đảm bảo rằng không ai có thể đọc dữ liệu từ phân vùng được mã hóa, thậm chí là cả từ hệ điều hành của bạn.

Nếu vì một lý do nào đó, file manager của bạn không hỗ trợ tính năng này, bạn có thể mount từ terminal:

sudo cryptsetup luksOpen /dev/vda3 encrypted-partition
sudo mount /dev/mapper/encrypted-partition ~/encrypted-storage

Bây giờ bạn có thể truy cập vào ổ đĩa bằng cách vào "/home/username/encrypted-storage" trong file manager. Khi bạn hoàn tất, hãy bỏ mount hệ thống file và đóng thiết bị ảo:

cd && sudo umount /dev/mapper/encrypted-partition
 sudo cryptsetup luksClose /dev/mapper/encrypted-partition

Bây giờ các file quan trọng của bạn đã được an toàn. Việc biết rằng không ai có thể nhìn thấy những gì bạn lưu trữ trong máy tính sẽ khiến bạn an tâm hơn rất nhiều. Chúc bạn thành công!

Xem thêm:

Thứ Năm, 06/12/2018 14:18
31 👨 47