Cách mã hóa các thiết bị khối bằng LUKS trên Linux

Tác giả Network Engineer, T.M.Một 24, 2021, 11:05:20 SÁNG

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

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

Cách mã hóa các thiết bị khối bằng LUKS trên Linux


Đôi khi bạn có thể muốn mã hóa đĩa cứng của mình để khi ai đó kết nối ổ cứng của bạn với máy tính của họ, họ cần cung cấp thông tin đăng nhập của người dùng để gắn ổ đĩa. Trong Linux, có thể mã hóa các thiết bị khối riêng lẻ. Trong bài viết này, chúng ta sẽ học cách mã hóa khối thiết bị trong Linux bằng LUKS. LUKS là lớp mã hóa Linux có thể được sử dụng để mã hóa toàn bộ phân vùng gốc, một ổ đĩa logic hoặc một phân vùng cụ thể.

Hướng dẫn này bao gồm các Bản phân phối Linux sau:

  • Debian
  • Ubuntu
  • RHEL
  • CentOS
  • Rocky Linux
  • Almalinux

1. Cài đặt gói cryptsetup-luks

Công cụ tiện ích Cryptsetup đi kèm với gói cryptsetup-luks được sử dụng để thiết lập mã hóa thiết bị khối trong hệ thống Linux. Cài đặt có thể được thực hiện bằng cách sử dụng lệnh sau.

Ubuntu/Debian

Mã nguồn [Chọn]
$ apt-get install cryptsetup

RHEL/CentOS/Rocky Linux/Almalinux

Mã nguồn [Chọn]
$ dnf install cryptsetup-luks
2. Chuẩn bị một phân vùng LUKS

Sau khi công cụ tiện ích được cài đặt, hãy chuẩn bị một phân vùng để mã hóa. Để liệt kê tất cả các phân vùng có sẵn và thiết bị khối, hãy chạy lệnh sau.

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

Bây giờ sử dụng lệnh cryptsetup luksFormat để thiết lập mã hóa trong phân vùng. Trong ví dụ này, phân vùng, sdb, được sử dụng để mã hóa. Bạn có thể đưa ra giả định của riêng mình dựa trên môi trường của bạn.

Mã nguồn [Chọn]
$ cryptsetup -y -v luksFormat /dev/sdb

Lệnh được thực thi ở trên sẽ xóa tất cả dữ liệu trên phân vùng /dev/sdb

Bây giờ chúng ta cần tạo một thiết bị ánh xạ thiết bị hợp lý được gắn vào phân vùng được mã hóa LUKS trong bước trên. Trong ví dụ này, được mã hóa là tên được cung cấp cho tên ánh xạ của phân vùng LUKS đã mở.

Lệnh sau sẽ tạo một volume và đặt cụm mật khẩu hoặc các phím ban đầu. Hãy nhớ rằng không thể khôi phục được cụm mật khẩu.

Mã nguồn [Chọn]
$ cryptsetup luksOpen /dev/sdb encrypted

Chi tiết ánh xạ của phân vùng có thể được tìm thấy bằng cách sử dụng lệnh sau.

Mã nguồn [Chọn]
$ ls -l /dev/mapper/encrypted

Sử dụng lệnh sau để xem trạng thái của ánh xạ. Thay thế tên ánh xạ của bạn bằng encrypted

Mã nguồn [Chọn]
$ cryptsetup -v status encrypted

Cryptsetup cùng với lệnh luksDump có thể được sử dụng để kiểm tra xem thiết bị đã được định dạng thành công để mã hóa hay chưa. Trong ví dụ này, phân vùng sdb đang được sử dụng để xác nhận.

Mã nguồn [Chọn]
$ cryptsetup luksDump /dev/sdb

3. Định dạng phân vùng LUKS

Việc ghi các số không vào phân vùng được mã hóa LUKS sẽ phân bổ kích thước khối bằng các số không. Sử dụng lệnh sau để đặt số không cho thiết bị khối được mã hóa.

Mã nguồn [Chọn]
$ dd if=/dev/zero of=/dev/mapper/encrypted

Lệnh dd có thể mất một khoảng thời gian để được thực thi. Sử dụng lệnh pv để kiểm tra tiến trình.

Mã nguồn [Chọn]
$ pv -tpreb /dev/zero | dd of=/dev/mapper/encrypted bs=128M

Lưu ý: Thay thế encrypted bằng tên ánh xạ thiết bị của bạn.

Bây giờ hãy định dạng phân vùng mới với hệ thống tập tin mong muốn của bạn. Trong ví dụ này, hệ thống tập tin ext4 được sử dụng.

Mã nguồn [Chọn]
$ mkfs.ext4 /dev/mapper/encrypted
Thay thế encrypted bằng tên ánh xạ thiết bị của bạn.


Gắn hệ thống tập tin mới. Trong ví dụ này, hệ thống tập tin mới được gắn kết tại /encrypted

Mã nguồn [Chọn]
$ mkdir /encrypted
Mã nguồn [Chọn]
$ mount /dev/mapper/encrypted /encrypted
Thay thế tên ánh xạ thiết bị được mã hóa bằng tên ánh xạ của riêng bạn.

Mã nguồn [Chọn]
$ df -h
Mã nguồn [Chọn]
$ cd /encrypted
Mã nguồn [Chọn]
$ ls -l

Như vậy là chúng ta đã tạo thành công một phân vùng mã hóa trên Linux bằng LUKS.