Qubes OS, một hệ điều hành được đánh giá cao về tính an toàn, giúp bảo vệ thiết bị của bạn khỏi virus, malware và ransomware mà không cần sử dụng phần mềm diệt virus. Bạn có thể dễ dàng cài đặt Qubes OS trên bất kỳ thiết bị nào với cách tạo USB Boot cho Qubes.
Hướng dẫn chi tiết cách tạo USB Boot cho Qubes và cài đặt hệ điều hành Qubes OS bằng USB
Nếu liên kết với thiết bị USB không đáng tin cậy trong dom0, có thể tạo ra nguy cơ về vấn đề bảo mật. Điều này xảy ra vì dom0, giống như hầu hết các hệ điều hành, tự động đọc bảng phân vùng và USB stack được sử dụng để phân tích dữ liệu trên thiết bị USB để xác định liệu đó có phải là thiết bị lưu trữ USB hay không, để đọc cấu hình, và nhiều thứ khác. Điều này diễn ra ngay cả khi ổ đĩa được chỉ định và được mount trong Qubes khác.
Để tránh rủi ro này, bạn có thể tạo USB Boot Qubes.
USB Qubes hoạt động như một bộ xử lý an toàn, xử lý các thiết bị USB nguy hiểm, ngăn chúng tiếp cận dom0 và đảm bảo an toàn cho toàn bộ hệ thống.
Với USB Qubes, mỗi khi bạn kết nối một ổ USB không đáng tin cậy vào một cổng USB được quản lý bởi bộ điều khiển USB, bạn cần gắn ổ USB đó vào Qubes để sử dụng, có thể thực hiện thông qua Qubes VM Manager hoặc dòng lệnh. Bạn cũng có thể tạo USB Boot Qubes sử dụng stack bằng cách thực hiện các bước dưới đây với quyền root trong dom0:
1. Bật chế độ kích hoạt sys-usb:
qubesctl top.enable qvm.sys-usb
2. Áp dụng cấu hình:
qubesctl state.highstate
Bên cạnh đó, bạn cũng có thể tự tạo USB Boot Qubes theo cách thủ công với các bước sau đây:
Bước 1: Tìm hiểu và tra cứu thông tin trên mạng để xác định và liệt kê bộ điều khiển USB của bạn để gán thiết bị cho máy ảo (Virtual Machine).
Kiểm tra kỹ xem bộ điều khiển USB có thích hợp để gán cho USB Qubes hay không.
Lưu ý rằng các thiết bị đầu vào và có thể lập trình không nên kết nối trực tiếp với dom0. Nếu bạn tìm thấy bộ điều khiển phù hợp, ghi lại tên của nó và chuyển sang bước 2.
Bước 2: Tạo một Qubes mới. Đặt tên và chọn màu sắc phù hợp (nên sử dụng sys-usb và chọn màu đỏ). Nếu cần gắn thiết bị mạng, bạn có thể tạo NetVM. Nếu không, sử dụng AppVM với tiện ích hơn. (Theo mặc định, sys-usb là NetVM.)
Bước 3: Trong cài đặt Qubes, vào tab Thiết bị. Tìm bộ điều khiển USB bạn đã xác định ở bước 1 trong danh sách Có sẵn. Di chuyển bộ điều khiển đó vào danh sách Đã chọn.
Lưu ý: Khi bạn gán một bộ điều khiển USB cho USB Qubes, nó sẽ không còn sẵn cho dom0. Điều này có thể ảnh hưởng đến việc sử dụng hệ thống của bạn. Ví dụ, nếu bạn chỉ có một bộ điều khiển USB và bạn đang chạy Qubes từ ổ USB.
Bước 4: Click OK và khởi động lại Qubes.
Bước 5: Mẹo: Đánh dấu chọn hộp Khởi động VM tự động khi khởi động trong tab Cơ bản. Điều này giúp giảm thiểu rủi ro từ các cuộc tấn công mà người dùng có thể buộc hệ thống khởi động lại, sau đó kết nối thiết bị USB độc hại vào máy tính.
Làm thế nào để ẩn tất cả bộ điều khiển USB khỏi dom0?
Nếu tạo USB Qubes thủ công, trong quá trình khởi động, dom0 sẽ tạm thời tiếp xúc với các bộ điều khiển USB (và bất kỳ thiết bị kèm theo nào).
Điều này mang theo rủi ro về vấn đề bảo mật, vì tiếp xúc ngắn hạn với một thiết bị USB độc hại có thể làm tổn thương dom0. Có 2 cách để giải quyết vấn đề này:
- Ngắt tất cả kết nối của thiết bị USB mỗi khi khởi động lại máy chủ.
- Che giấu (ví dụ: danh sách đen) tất cả bộ điều khiển USB khỏi dom0.
Cảnh báo: Nếu sử dụng thiết bị USB AEM, không sử dụng tùy chọn thứ hai. Sử dụng thiết bị USB AEM đòi hỏi dom0 có quyền truy cập vào bộ điều khiển USB mà thiết bị USB AEM của bạn được kết nối. Nếu dom0 không thể đọc thiết bị USB AEM, AEM có thể treo máy.
Thực hiện theo các bước sau để ẩn tất cả bộ điều khiển USB khỏi dom0:
Bước 1: Mở tệp /etc/default/grub trên dom0.
Bước 2: Tìm dòng bắt đầu bằng GRUB_CMDLINE_LINUX.
Bước 3: Thêm rd.Qubes.hide_all_usb vào dòng đó.
Bước 4: Lưu và đóng tệp lại.
Bước 5: Thực hiện lệnh grub2-mkconfig -o /boot/grub2/grub.cfg trên dom0.
Bước 6: Khởi động lại.
(Lưu ý: Bắt đầu từ R3.2, rd.Qubes.hide_all_usb được thiết lập tự động nếu bạn chọn tạo một USB Qubes trong quá trình cài đặt. Điều này cũng xảy ra tự động nếu bạn chọn tạo một USB Qubes bằng phương pháp Qubesctl).
Cảnh báo: Không thể sử dụng bàn phím USB để nhập mật khẩu disk passphrase nếu các bộ điều khiển USB bị ẩn khỏi dom0.
Trước khi ẩn bộ điều khiển USB, hãy đảm bảo rằng bàn phím laptop của bạn không được kết nối thông qua cổng USB (kiểm tra đầu ra của lệnh lsusb) hoặc sử dụng bàn phím PS/2 (đối với máy tính để bàn). Nếu không, hệ thống của bạn có thể không hoạt động.
Tháo USB Qubes
Cảnh báo: Kết quả của thao tác này là các bộ điều khiển USB sẽ được gắn trực tiếp vào dom0.
Bước 1: Tắt USB Qubes.
Bước 2: Trên Qubes Manager, nhấp chuột phải vào USB Qubes và chọn Xóa VM.
Bước 3: Mở file /etc/default/grub trên dom0.
Bước 4: Tìm các dòng bắt đầu bằng GRUB_CMDLINE_LINUX.
Bước 5: Nếu thấy rd.Qubes.hide_all_usb xuất hiện trên bất kỳ dòng nào, xóa dòng đó.
Bước 6: Lưu và đóng file lại.
Bước 7: Thực hiện lệnh grub2-mkconfig -o /boot/grub2/grub.cfg trên dom0.
Bước 8: Khởi động lại.
Cảnh báo về vấn đề bảo mật trên các thiết bị đầu vào USB
Nếu bạn kết nối bàn phím và chuột vào VM (máy ảo) thông qua cổng USB, VM sẽ kiểm soát hệ thống của bạn một cách hiệu quả. Không chỉ kiểm soát hệ thống, VM còn ghi nhận mọi đầu vào bạn nhập vào đó (như việc sử dụng bàn phím USB để nhập mật khẩu).
Mặc dù không có giải pháp 'chống lại' việc theo dõi đầu vào của VM, nhưng bạn có thể làm cho việc khai thác và kiểm soát thiết bị đầu vào trở nên khó khăn hơn.
Nếu chỉ có chuột USB kết nối với USB Qubes, trong khi bàn phím được kết nối trực tiếp với dom0 (ví dụ: sử dụng đầu nối PS/2), bạn chỉ cần khóa màn hình khi rời máy tính để làm việc và việc này sẽ bảo vệ dữ liệu quan trọng trong máy tính mà không làm gián đoạn công việc đang thực hiện.
Bạn cần thực hiện điều này mỗi khi rời khỏi máy tính, ngay cả khi không có người khác ở đó để truy cập máy tính của bạn. Điều này không chỉ đảm bảo rằng không có người dùng nào khác có thể truy cập máy tính của bạn mà còn ngăn chặn các 'hành động' có thể phát sinh từ một USB Qubes bị 'tổn thương'.
Nếu bàn phím của bạn kết nối với một USB Qubes, tình hình trở nên phức tạp hơn. Khóa màn hình máy tính thông thường sẽ không đảm bảo an toàn vì USB Qubes có thể 'đánh cắp' mật khẩu và dễ dàng mở khóa màn hình.
Tuy nhiên, bạn có thể giải quyết vấn đề này bằng cách thiết lập màn hình khóa yêu cầu thêm một bước để mở khóa (xác thực 2 yếu tố). Bạn có thể sử dụng YubiKey hoặc nhập mật khẩu bằng tay mỗi khi mở khóa.
Cách sử dụng bàn phím USB
Lưu ý: Hãy đọc kỹ các cảnh báo về vấn đề bảo mật trên thiết bị đầu vào USB trước khi thực hiện các bước.
Để sử dụng bàn phím USB, đầu tiên, bạn cần kết nối bàn phím USB vào USB Qubes và cho phép USB Qubes chuyển đầu vào của bàn phím đến dom0. Hãy chỉnh sửa file policy Qubes.InputKeyboard trong dom0, file này nằm tại:
/etc/Qubes-rpc/policy/Qubes.InputKeyboard
Thêm một dòng tương tự như dòng dưới lên đầu của file:
sys-usb dom0 ask,user=root
Đổi sys-usb thành USB Qubes theo mong muốn của bạn.
Bây giờ, bạn đã có thể sử dụng bàn phím USB.
Cách sử dụng chuột USB
Lưu ý: Hãy đọc kỹ các cảnh báo về vấn đề bảo mật trên các thiết bị đầu vào USB trước khi thực hiện các bước.
Để sử dụng chuột USB, trước hết, bạn cần kết nối chuột USB vào USB Qubes, sau đó cho phép USB Qubes truyền đầu vào chuột đến dom0. Hãy chỉnh sửa file policy Qubes.InputMouse trong dom0, file này nằm ở:
/etc/Qubes-rpc/policy/Qubes.InputMouse
Thêm một dòng giống như dòng dưới lên đầu của file:
sys-usb dom0 ask,user=root
Đổi sys-usb thành USB Qubes theo sở thích của bạn.
Bây giờ bạn đã có thể sử dụng chuột USB. Trong trường hợp máy tính không nhận chuột USB, bạn có thể tham khảo cách sửa lỗi máy tính không nhận USB, bao gồm cả chuột và bàn phím USB. Cách sửa lỗi này rất đơn giản và không phức tạp như nhiều người nghĩ.
Làm thế nào để kết nối ổ USB?
(Lưu ý: Trong ngữ cảnh hiện tại, thuật ngữ 'ổ USB' được sử dụng để chỉ bất kỳ thiết bị lưu trữ USB nào.)
Qubes OS hỗ trợ khả năng kết nối một ổ USB (hoặc một hoặc nhiều phân vùng từ ổ USB đó) vào bất kỳ Qubes nào một cách dễ dàng, ngay cả khi Qubes đang xử lý bộ điều khiển USB hay không. (Bộ điều khiển USB có thể được chỉ định trong tab Thiết Bị trên trang cài đặt Qubes VM Manager hoặc thông qua lệnh qvm-pci).
Việc kết nối ổ USB được tích hợp trong giao diện Qubes VM Manager. Rất đơn giản, chỉ cần cắm ổ USB vào, kích chuột phải vào Qubes bạn muốn trong danh sách Qubes VM Manager, chọn Attach/detach block devices và chọn hành động cùng thiết bị bạn muốn. Tuy nhiên, điều này chỉ áp dụng cho toàn bộ thiết bị. Nếu muốn kết nối các phân vùng riêng lẻ, bạn cần sử dụng công cụ dòng lệnh.
Sử dụng công cụ dòng lệnh qvm-block để kết nối ổ USB hoặc các phân vùng từ ổ USB đó. Bạn có thể sử dụng công cụ này để chỉ định một ổ USB cho một Qubes:
Bước 1: Cắm ổ USB của bạn vào.
Bước 2: Trong bảng điều khiển dom0 (chạy như người dùng bình thường, liệt kê tất cả các thiết bị lưu trữ có sẵn:
qvm-block -l
Lệnh này sẽ hiển thị tất cả các thiết bị lưu trữ kết nối với bất kỳ bộ điều khiển USB nào trong hệ thống của bạn, dù Qubes có quản lý bộ điều khiển hay không. Tên của Qubes quản lý bộ điều khiển USB được thể hiện trước dấu hai chấm trong tên thiết bị. Chuỗi phía sau dấu hai chấm là tên thiết bị được sử dụng trong Qubes, ví dụ:
dom0:sdb1 Cruzer () 4GiB
usbVM:sdb1 Ổ đĩa () 2GiB
Lưu ý: Nếu thiết bị của bạn không xuất hiện ở đây, bạn có thể làm mới danh sách bằng cách sử dụng (từ Qubes đến thiết bị được kết nối):
sudo udevadm trigger --action=change
Bước 3: Giả sử ổ USB của bạn đã được gắn vào dom0 và có tên là sdb, bạn đính kèm thiết bị với Qubes bằng tên thiết bị như sau:
qvm-block -a cá nhân dom0:sdb
Thao tác này sẽ kết nối thiết bị với Qubes qua /dev/xvdi nếu tên này chưa được sử dụng bởi các thiết bị được kết nối khác, hoặc /dev/xvdj, ... .
Bạn cũng có thể kết nối nhiều phân vùng cùng một lúc bằng cách sử dụng lệnh đó kèm theo số phân vùng sau sdb.
Cảnh báo: Khi làm việc với một phân vùng, có thể chia sẻ cùng một phân vùng cho nhiều Qubes. Ví dụ, bạn có thể kết nối sdb1 với Qubes1 và sau đó kết nối sdb với Qubes2. Điều này giúp tránh sự nhầm lẫn cho người dùng.
Bước 4: Bây giờ, ổ USB của bạn đã được gắn với Qubes. Nếu bạn đang sử dụng Qubes mặc định, hãy mở Nautilus trên Qubes và thiết bị của bạn sẽ xuất hiện trong bảng Devices ở phía bên trái.
Bước 5: Khi không cần sử dụng ổ USB nữa, bạn có thể nhấp chuột vào nút eject hoặc chuột phải vào USB và chọn Unmount.
Bước 6: Tách ổ USB từ bảng điều khiển dom0:
qvm-block -d
Hoặc:
qvm-block -d
Bước 7: Điều này hoàn tất quá trình rút thiết bị.
Cảnh báo: Không nên rút thiết bị trước khi đã tách thiết bị trên VM.
Nếu Nautilus không hiển thị thiết bị, bạn sẽ cần thực hiện việc gắn thiết bị thủ công.
Thiết bị sẽ xuất hiện dưới dạng /dev/xvdi (hoặc /dev/xvdj nếu đã có thiết bị đính kèm, hoặc /dev/xvdk nếu có 2 thiết bị đính kèm, ...).
Chuyện gì xảy ra nếu rút thiết bị trước khi tách ra khỏi VM?
Hiện tại (cho đến khi phát hành phiên bản 1082), nếu rút thiết bị trước khi tách khỏi Qubes, hệ điều hành Qubes (cụ thể là libvirtd) sẽ nghĩ rằng thiết bị vẫn đang gắn với Qubes và sẽ không cho phép gắn thiết bị khác cùng tên.
Để khôi phục thiết bị trong tình huống này, đơn giản nhất là khởi động lại Qubes mà thiết bị đã được gắn. Nếu không, bạn có thể thực hiện các bước sau:
Bước 1: Kết nối lại thiết bị. Bạn có thể sử dụng bất kỳ thiết bị nào, miễn là nó được phát hiện với cùng một tên (ví dụ như sdb).
Bước 2: Gắn thiết bị thủ công vào VM bằng lệnh xl block-attach. Quan trọng là sử dụng cùng tên thiết bị 'frontend' (mặc định là xvdi). Bạn có thể lấy từ danh sách qvm-block:
[user@dom0 ~]$ qvm-block
sys-usb:sda DataTraveler_2.0 () 246 MiB (đã gắn vào 'testvm' với tên 'xvdi')
[user@dom0 ~]$ xl block-attach testvm phy:/dev/sda backend=sys-usb xvdi
Trong ví dụ này, các tham số của xl block-attach có thể suy ra từ đầu ra của qvm-block. Theo thứ tự:
- Testvm: tên của Qubes đích cho thiết bị đã được gắn - hiển thị trong ngoặc với lệnh qvm-block
- phy: /dev/sda: Đường dẫn vật lý nơi thiết bị xuất hiện trong nguồn Qubes (sau tên nguồn Qubes trong đầu ra qvm-block)
- backend = sys-usb: Tên của nguồn Qubes, có thể bỏ qua trong trường hợp của dom0
- xvdi: Tên thiết bị 'frontend' (được liệt kê ở cuối dòng đầu ra qvm-block)
Bước 3: Tách thiết bị đúng cách, sử dụng Qubes VM Manager hoặc lệnh qvm-block -d.
Kết nối thiết bị USB với một Qubes (USB pass-through)
Tính từ Qubes 3.2, bạn có khả năng kết nối thiết bị USB với bất kỳ Qubes nào. Mặc dù tính năng này hữu ích, nhưng hãy cẩn thận với nguy cơ về vấn đề bảo mật cao. Nếu có thể, hãy sử dụng phương pháp đặc biệt cho từng loại thiết bị (như block devices trong các bước trước) thay vì phương pháp chung.
Để sử dụng tính năng này, bạn cần cài đặt gói Qubes-usb-proxy trong các template được sử dụng cho USB Qubes và Qubes mà bạn muốn kết nối thiết bị USB.
Lưu ý rằng bạn không thể kết nối các thiết bị từ dom0 (nói cách khác, USB VM là bắt buộc).
Danh sách các thiết bị USB có sẵn:
[user@dom0 ~]$ qvm-usb
sys-usb:2-4 04ca:300d 04ca_300d
sys-usb:2-5 058f:3822 058f_USB_2.0_Camera
sys-usb:2-1 03f0:0641 PixArt_HP_X1200_USB_Optical_Mouse
Kết nối các thiết bị USB theo lựa chọn:
[user@dom0 ~]$ qvm-usb -a conferences sys-usb:2-5
[user@dom0 ~]$ qvm-usb
conferences:2-1 058f:3822 058f_USB_2.0_Camera
sys-usb:2-4 04ca:300d 04ca_300d
sys-usb:2-5 058f:3822 058f_USB_2.0_Camera (đã được kết nối với conferences)
sys-usb:2-1 03f0:0641 PixArt_HP_X1200_USB_Optical_Mouse
Bây giờ, bạn có thể tận hưởng sự linh hoạt của thiết bị USB (trong trường hợp này là camera) trong Qubes của conferences.
Khi bạn đã sử dụng xong USB Boot Qubes, hãy thực hiện tách thiết bị:
[user@dom0 ~]$ qvm-usb -d sys-usb:2-5
[user@dom0 ~]$ qvm-usb
sys-usb:2-4 04ca:300d 04ca_300d
sys-usb:2-5 058f:3822 058f_USB_2.0_Camera
sys-usb:2-1 03f0:0641 PixArt_HP_X1200_USB_Optical_Mouse
Tính năng này không sẵn có trên Qubes Manager.
Ngày nay, có nhiều phương pháp hỗ trợ người dùng tạo USB Boot trên máy tính, chẳng hạn như Grub4dos hoặc Hiren's Boot. Trong số đó, việc tạo USB boot bằng Grub4dos đang trở thành một lựa chọn phổ biến. Công cụ Grub4dos không chỉ hỗ trợ sao chép và sao lưu dữ liệu một cách hiệu quả mà còn giúp cài đặt win và ghost win trở nên dễ dàng hơn.
Nếu chỉ tạo USB boot để cài đặt win, đó có lẽ là một công việc tốn thời gian và công sức. Chính vì vậy, đã xuất hiện nhiều phần mềm hỗ trợ tạo USB boot đa nhiệm, không chỉ giúp cài đặt win và ghost win mà còn có khả năng sửa lỗi máy tính. Hãy tham khảo cách tạo USB boot đa nhiệm để sở hữu một chiếc USB linh hoạt với nhiều chức năng.