LUKS là gì và nó bảo mật hệ thống tập tin Linux của bạn như thế nào?

Tác giả ChatGPT, T.Chín 09, 2024, 06:52:43 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

LUKS giống như dữ liệu của bạn được bảo mật hơn rất nhiều.

  • Linux Unified Key Setup (LUKS) là thông số kỹ thuật mã hóa đĩa dành cho Linux.
  • LUKS sử dụng khóa chính để mã hóa dữ liệu, cùng với cụm mật khẩu để mở khóa.
  • LUKS bảo vệ dữ liệu người dùng trên các thiết bị khối, bao gồm máy tính xách tay và ổ đĩa ngoài, khỏi bị trộm cắp.


Bạn đã gặp thuật ngữ "LUKS" nhưng không biết nó làm gì hoặc liên quan đến Linux như thế nào? Nếu bạn là người quan tâm đến việc bảo vệ dữ liệu của mình, thì việc thiết lập LUKS là điều cần thiết đối với bạn. Trong hướng dẫn này, tôi sẽ giải thích cách LUKS hoạt động và cách nó giúp bạn bảo mật dữ liệu quan trọng của mình.

1. LUKS trên Linux là gì?

Linux Unified Key Setup (hay viết tắt là LUKS) là một thông số kỹ thuật mã hóa đĩa được sử dụng rộng rãi trong các hệ thống Linux. Được Clemens Fruhwirth tạo ra vào năm 2004, nó được thiết kế để cung cấp một cơ chế mã hóa chuẩn hóa vừa an toàn vừa thân thiện với người dùng. Nó bảo vệ dữ liệu bằng cách mã hóa dữ liệu bên trong các phân vùng đĩa vật lý và logic để chỉ những người dùng được ủy quyền mới có thể truy cập vào nội dung của phân vùng được mã hóa đó. Bạn có thể coi nó tương tự như Windows BitLocker.

LUKS hoạt động ở cấp độ khối. Nó mã hóa toàn bộ phân vùng hoặc đĩa thay vì các tệp riêng lẻ. Nó sử dụng các thuật toán mã hóa mạnh như AES (Tiêu chuẩn mã hóa nâng cao). Nó sử dụng tiêu đề phân vùng để lưu trữ thông tin thiết lập cần thiết như thuật toán mã hóa và kích thước khóa. Tiêu đề này là thứ khiến LUKS khác biệt so với dm-crypt. Nếu tiêu đề bị hỏng, bạn sẽ không thể giải mã thiết bị.

2. LUKS hoạt động như thế nào?

Mã hóa LUKS tạo ra một container được mã hóa gọi là LUKS volume trên một phân vùng đĩa. Nó sử dụng các thuật toán đối xứng như AES để mã hóa volume mà chỉ có thể truy cập bằng mật khẩu. Khi bạn mở khóa LUKS volume, nó sẽ có thể truy cập được như một thiết bị khối thông thường. Vì vậy, bạn có thể đọc từ nó và ghi vào nó.

LUKS lưu trữ siêu dữ liệu mã hóa của nó trong một phần đặc biệt ở đầu phân vùng được mã hóa được gọi là tiêu đề LUKS. Tiêu đề này chứa một số thông tin quan trọng như mã hóa và chế độ, hàm băm và khe khóa. Việc mã hóa thực tế của phân vùng được thực hiện bằng cách sử dụng khóa chính. Khóa chính này được tạo ngẫu nhiên khi thiết lập LUKS được khởi tạo. Khóa chính này là thứ trực tiếp mã hóa và giải mã dữ liệu trên phân vùng. Cụm mật khẩu không mã hóa dữ liệu. Thay vào đó, nó mã hóa khóa chính được lưu trữ trong các khe khóa.

Nếu bạn muốn truy cập dữ liệu được mã hóa, LUKS yêu cầu bạn nhập mật khẩu. Mật khẩu này sau đó được sử dụng để giải mã khóa chính được lưu trữ trong một trong các khe khóa. Sau khi khóa chính được giải mã, khóa đó sẽ được sử dụng để giải mã dữ liệu trên phân vùng.

3. Tại sao bạn nên sử dụng LUKS?

Lý do chính để sử dụng LUKS là để bảo vệ dữ liệu người dùng. LUKS có thể mã hóa toàn bộ thiết bị khối, khiến nó phù hợp để bảo vệ dữ liệu trong các thiết bị di động như ổ đĩa máy tính xách tay và phương tiện di động. Vì nội dung của các thiết bị khối được mã hóa là tùy ý, nên nó cũng tốt để mã hóa các thiết bị hoán đổi.

LUKS thường được sử dụng để mã hóa toàn bộ đĩa. Bạn có thể mã hóa phân vùng gốc của hệ thống Linux trong quá trình cài đặt để không ai không được phép có thể truy cập vào các tệp hệ thống. Bạn cũng có thể mã hóa phân vùng khởi động trong hệ thống Linux để bảo vệ chống lại việc can thiệp vào hạt nhân Linux. Nếu bạn đang sử dụng systemd, thì bạn cũng có thể mã hóa các thư mục home riêng lẻ.

LUKS hỗ trợ nhiều khe khóa, cho bạn cơ hội gán các cụm mật khẩu khác nhau cho cùng một phân vùng được mã hóa. Vì vậy, nếu bạn có thiết lập nhiều người dùng, mỗi người dùng có thể có một khóa giải mã riêng mà không cần phải chia sẻ một cụm mật khẩu chung. Hơn nữa, nếu quên một cụm mật khẩu, có thể sử dụng các cụm mật khẩu khác để truy cập dữ liệu.

Nó bảo vệ thiết bị của bạn khỏi bị trộm cắp vật lý. Ngay cả khi máy tính xách tay, ổ cứng ngoài hoặc các thiết bị lưu trữ khác bị đánh cắp, dữ liệu bên trong vẫn không thể truy cập được nếu không có khóa giải mã chính xác.

4. Nó có một số điểm hấp dẫn

Một trong những nhược điểm lớn nhất của việc sử dụng mã hóa toàn bộ ổ đĩa nằm ở các vấn đề về hiệu suất. Giải mã dữ liệu khi đang chạy đòi hỏi sức mạnh xử lý, dẫn đến tốc độ đọc-ghi chậm hơn. Nếu bạn có phần cứng hiện đại, đôi khi sự khác biệt có thể không đáng kể, nhưng không phải là không thể. Bạn cũng sẽ gặp phải thời gian khởi động tăng lên vì hệ thống cần giải mã toàn bộ ổ đĩa trước khi tải đầy đủ hệ điều hành. Bạn có thể đọc thêm về điều này trong chuỗi Reddit này và bài kiểm tra chuẩn này.

Một lưu ý quan trọng khác là mã hóa đĩa LUKS chỉ bảo vệ dữ liệu của bạn khi hệ thống của bạn tắt. Nếu máy tính xách tay của bạn bị đánh cắp khi đang bật nguồn và ổ đĩa đã được giải mã, kẻ trộm có khả năng truy cập dữ liệu của bạn mà không cần phải bỏ qua mã hóa. Sau khi giải mã, bất kỳ ai cũng có thể truy cập vào các tệp trên ổ đĩa đó.

Thiết lập mã hóa LUKS không phải là một quá trình dễ dàng trên các hệ thống Linux được cài đặt sẵn. Nó đòi hỏi phải sao lưu đầy đủ để bạn có thể khôi phục dữ liệu quan trọng trong trường hợp bạn mất dữ liệu. Nói về sao lưu, sao lưu được mã hóa cần được xử lý cẩn thận. Nếu bạn làm mất khóa giải mã, bạn có thể không bao giờ khôi phục được dữ liệu của mình.

5. Cách thiết lập mã hóa LUKS

Cách dễ nhất để thiết lập mã hóa toàn bộ đĩa LUKS là khi bạn cài đặt Linux lần đầu. Hãy để tôi chỉ cho bạn cách thực hiện trên Ubuntu 24.04.

Cho dù bạn muốn cài đặt Linux mới hay muốn mã hóa hệ thống đã cài đặt sẵn (sẽ đề cập sau), bạn cũng nên sao lưu cẩn thận các tệp quan trọng trên thiết bị Linux của mình.

Trong quá trình cài đặt, bạn sẽ thấy lời nhắc thiết lập đĩa. Nhấn "Tính năng nâng cao".


Trong danh sách, chọn "Sử dụng LVM và Mã hóa". Nhấn "OK".


Nhấn nút "Tiếp theo" để tiếp tục. Trên màn hình tiếp theo, bạn được yêu cầu tạo mật khẩu. Nhập mật khẩu an toàn vào cả hai trường và nhấn "Tiếp theo".


Sau đó tiếp tục thực hiện phần còn lại của quá trình cài đặt.

Nếu bạn không muốn cài đặt lại Linux, có một tiện ích có tên là cryptsetup để thiết lập hệ thống tệp được mã hóa. Bạn có thể cần quyền root để chạy một số lệnh. Trước tiên, bạn sẽ cần cài đặt nó. Trên Debian/Ubuntu, hãy chạy:

Mã nguồn [Chọn]
sudo apt install cryptsetup
Liệt kê các phân vùng có sẵn của bạn bằng các lệnh sau:

Mã nguồn [Chọn]
sudo fdisk -l

blkid

Tìm phân vùng bạn muốn mã hóa từ danh sách.



Tiếp theo, sử dụng tiện ích cryptsetup để mã hóa phân vùng bạn đã chọn theo cách sau:

Mã nguồn [Chọn]
cryptsetup -y -v luksFormat /path/to/partition

cryptsetup -y -v luksFormat /dev/xvdc # For example

Bạn sẽ được yêu cầu xác nhận rằng bạn muốn ghi đè phân vùng và sau đó nhập mật khẩu. Bạn phải lưu và nhớ mật khẩu vì không thể khôi phục được.

Lệnh trên sẽ xóa toàn bộ dữ liệu trên phân vùng. Hãy đảm bảo sao lưu mọi dữ liệu quan trọng.

Sau đó, tạo ánh xạ logic bằng cách chạy:

Mã nguồn [Chọn]
cryptsetup luksOpen /path/to/partition partition_name

cryptsetup luksOpen /dev/xvdc backup_partition # For example

Nhập mật khẩu khi được nhắc. Thao tác này sẽ khởi tạo ổ đĩa. Để xem chi tiết ánh xạ, hãy chạy:

Mã nguồn [Chọn]
ls -l /dev/mapper/backup_partition
Để xem trạng thái ánh xạ, hãy sử dụng:

Mã nguồn [Chọn]
cryptsetup -v status backup_partition
Sau đó, sử dụng cryptsetup để xem thiết bị đã được định dạng đúng để mã hóa hay chưa.

Mã nguồn [Chọn]
cryptsetup luksDump /path/to/partition

cryptsetup luksDump /dev/xvdc # For example

Sử dụng lệnh dd để phân bổ dữ liệu khối có số không vào phân vùng được mã hóa LUKS:

Mã nguồn [Chọn]
dd if=/dev/zero of=/dev/mapper/backup_partition
Khi hoàn tất, hãy định dạng phân vùng mới bằng lệnh này:

Mã nguồn [Chọn]
mkfs.ext4 /dev/mapper/backup_partition
Tôi đã sử dụng hệ thống tệp ext4 ở đây. Bạn có thể sử dụng hệ thống tệp ưa thích của mình. Cuối cùng, hãy gắn hệ thống tệp mới.

Mã nguồn [Chọn]
mkdir /backup2
mount /dev/mapper/backup_partition /backup_partition
df -H
cd /backup_partition
ls -l

Nếu bạn muốn thay đổi mật khẩu cho phân vùng được mã hóa, hãy chạy các lệnh bên dưới:

Mã nguồn [Chọn]
cryptsetup luksDump /dev/xvdc # Using /dev/xvdc as an example

cryptsetup luksAddKey /dev/xvdc # Using /dev/xvdc as an example

Bạn sẽ được nhắc nhập mật khẩu mới và sau đó xác nhận.

Bằng cách triển khai LUKS, bạn có thể đảm bảo an ninh tốt hơn cho dữ liệu bí mật của mình. Nó cũng phù hợp với các thiết bị được nhiều người dùng sử dụng. Bạn có thể thực hiện nhiều biện pháp khác để làm cho thiết bị Linux của mình an toàn hơn.