USB Qubes hoạt động như một trình xử lý an toàn, xử lý các thiết bị USB nguy hiểm, ngăn các USB này tiếp xúc với dom0 (có thể phá vỡ sự an toàn của toàn bộ hệ thống). Bài viết dưới đây Taimienphi.vn sẽ hướng dẫn bạn cách tạo USB Boot Qubes và sử dụng một cách hiệu quả.
Hệ điều hành Qubes OS được đánh giá rất an toàn, có thể đảm bảo cho thiết bị của bạn an toàn khỏi những mối đe dọa như virus,malware,...và đặc biệt là những ransomware tống tiền hiện nay mà không cần phải cài những phần mềm diệt virus tốt nhất. Với cách tạo USB Boot cho Qubes sẽ giúp bạn dễ dàng cài Qubes OS trên bất cứ thiết bị nào.
Cách tạo USB Boot Qubes, cài hệ điều hành Qubes bằng USB
Nếu kết nối thiết bị USB không đáng tin cậy với dom0 sẽ gây ra các nguy cơ về vấn đề bảo mật. Điều này là bởi vì dom0 cũng giống như hầu hết các hệ điều hành, đọc các bảng phân vùng (partition tables) tự động và bởi vì USB stack được đưa vào để phân tích dữ liệu được trình bày trên thiết bị USB để xác định xem nó là thiết bị lưu trữ USB, để đọc cấu hình của nó, …. Điều này xảy ra ngay cả khi ổ đĩa được chỉ định và 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 trình xử lý an toàn, xử lý các thiết bị USB nguy hiểm, ngăn các USB này tiếp xúc với dom0 (có thể phá vỡ sự an toàn của toàn bộ hệ thống).
Với USB Qubes, mỗi lần 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 sẽ phải gắn ổ USB không tin cậy đó vào Qubes nếu muốn sử dụng nó bằng cách sử dụng Qubes VM Manager hoặc dòng lệnh. Ngoài ra bạn có thể tạo USB Boot Qubes sử dụng stack bằng cách thực hiện theo các bước dưới đây giống như root trong dom0:
1. Kích hoạt Enable sys-usb:
Qubesctl top.enable qvm.sys-usb
2. Áp dụng cấu hình:
Qubesctl state.highstate
Ngoài ra bạn cũng có thể tạo USB Boot Qubes thủ công bằng cách thực hiện theo các bước dưới đây:
Bước 1: Bạn có thể tra cứu và tìm hiểu thêm các thông tin trên mạng để tìm hiểu cách liệt kê và xác định bộ điều khiển USB của bạn với cách gán thiết bị với máy ảo Virtual Machine.
Kiểm tra cẩn thận xem bộ điều khiển USB của bạn có thích hợp để gán USB Qubes hay không.
Lưu ý rằng các thiết bị đầu vào, thiết bị có thể lập trình và bất kỳ thiết bị nào khác kết phải nối trực tiếp với dom0. Nếu tìm thấy bộ điều khiển miễn phí, lưu ý tên của bộ điều khiển đó và thực hiện tiếp bước 2.
Bước 2: Tạo một Qubes mới. Đặt một tên và chọn màu thích hợp (lời khuyên là sử dụng tên sys-usb, và chọn màu đỏ). Nếu cần gắn một thiết bị mạng, bạn có thể tạo NetVM. Nếu không, sử dụng AppVM có thể có hữu ích hơn. (Mặc định sys-usb là một NetVM.)
Bước 3: Trong bộ cài đặt của Qubes, truy cập tab Devices. Tìm bộ điều khiển USB mà bạn đã xác định ở bước 1 trong danh sách Available. Di chuyển bộ điều khiển đó vào danh sách Selected.
Lưu ý: Bằng cách gán một bộ điều khiển USB cho USB Qubes, nó sẽ không còn khả dụng cho dom0 nữa. Điều này có thể khiến hệ thống của bạn không sử dụng được. Chẳng hạn nếu bạn chỉ có một bộ điều khiển USB, và bạn đang thoát Qubes trên ổ USB.
Bước 4: Click chọn OK và khởi động lại Qubes.
Bước 5: Mẹo: Đánh tích chọn hộp Start VM automatically on boot trên tab Basic. Thao tác này để giảm thiểu các cuộc tấn công mà người dùng nào đó buộc hệ thống khởi động lại, sau đó cắm 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 từ dom0?
Nếu tạo ổ USB Qubes bằng tay, trong quá trình khởi động sẽ có một khoảng thời gian ngắn dom0 tiếp xúc với các bộ điều khiển USB (và bất kỳ các thiết bị kèm theo).
Điều này tiềm ẩn các nguy cơ về vấn đề bảo mật vì khi tiếp xúc với một thiết bị USB độc hại trong thời gian ngắn có thể khiến dom0 bị tổn hại. Có 2 cách để khắc phục vấn đề này:
- Rút tất cả các thiết bị USB bất cứ khi nào bạn khởi động lại máy chủ.
- Ẩn (ví dụ: danh sách đen) tất cả bộ điều khiển USB từ dom0.
Cảnh báo: Nếu sử dụng thiết bị USB AEM, không được sử dụng tùy chọn thứ hai. Sử dụng thiết bị USB AEM yêu cầu dom0 phải 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 đính kèm. Nếu dom0 không thể đọc được thiết bị USB AEM, AEM sẽ bị treo.
Thực hiện theo các bước dưới đây để ẩn tất cả các bộ điều khiển USB từ dom0:
Bước 1: Mở file /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 file lại.
Bước 5: Chạy 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 để gõ 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 các bộ điều khiển USB, hãy chắc chắn rằng bàn phím laptop của bạn không được kết nối nội bộ thông qua USB (bằng cách kiểm tra đầu ra của lệnh lsusb) hoặc sử dụng bàn phím PS/ 2 (nếu sử dụng máy tính để bàn). Nếu không hệ thống của bạn sẽ không sử dụng được.
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ới dom0.
Bước 1: Tắt USB Qubes.
Bước 2: Trên Qubes Manager, kích chuột phải vào USB Qubes và chọn Remove 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ỳ một dòng nào, xóa dòng đó đi.
Bước 6: Lưu và đóng file lại.
Bước 7: Chạy 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 kết nối thiết bị đầu vào USB (bàn phím và chuột) với VM (máy ảo), VM đó sẽ kiểm soát hệ thống của bạn hiệu quả. Ngoài việc kiểm soát hệ thống của bạn, VM như vậy cũng có thể phát hiện tất cả các đầu vào mà bạn nhập vào đó (ví dụ như sử dụng bàn phím USB để nhập mật khẩu).
Không có giải pháp nào để “chống lại” việc phát hiện đầu vào của VM, nhưng bạn có thể làm cho việc khai thác, kiểm soát thiết bị đầu vào khó hơn.
Nếu chỉ có chuột USB kết nối với USB Qubes, nhưng bàn phím được kết nối trực tiếp với dom0 (ví dụ như sử dụng đầu nối PS/2), bạn chỉ cần khóa màn hình máy tính khi rời khỏi máy tính để làm việc gì đó và việc khóa màn hình máy tính sẽ giúp bạn bảo vệ dữ liệu quan trọng trong máy tính mà không làm gián đoạn tiến trình đang làm việc.
Bạn phải 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 nào khác ở đó để truy cập trực tiếp máy tính của bạn. Điều này không những để đảm bảo không có bất 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 các “hành động” có thể xảy ra từ một USB Qubes bị “tổn thương”.
Nếu bàn phím của bạn cũng được kết nối với một USB Qubes, mọi thứ sẽ khó khăn hơn nhiều. Khóa màn hình máy tính (bằng mật khẩu truyền thống) sẽ không giải quyết được vấn đề vì USB Qubes có thể “đánh hơi” mật khẩu này và sau đó dễ dàng mở khóa màn hình.
Tuy nhiên giải pháp là bạn có thể 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 để làm được điều này hoặc mỗi lần mở khóa, nhập mật khẩu bằng tay.
Cách sử dụng bàn phím USB
Lưu ý: Đọ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 bàn phím USB, trước tiên bạn phải gắn bàn phím USB đó vào USB Qubes, sau đó cho phép USB Qubes pass đầu vào bàn phím tới dom0. Chỉnh sửa file policy Qubes.InputKeyboard trong dom0, file này nằm trong:
/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
Thay đổi sys-usb thành USB Qubes mà bạn muố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 ý: Đọ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 tiên bạn phải gắn chuột USB đó vào USB Qubes, sau đó cho phép USB Qubes pass đầu vào chuột tới dom0. Chỉnh sửa file policy Qubes.InputMouse trong dom0, file này nằm trong:
/etc/Qubes-rpc/policy/Qubes.InputMouse
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
Thay đổi sys-usb thành USB Qubes mà bạn muốn.
Bây giờ bạn đã có thể sử dụng chuột USB. Trường hợp máy tính không nhận chuột usb, các bạn tham khảo cách sửa lỗi máy tính không nhận USB trong đó có chuột, bàn phím USB nhé, cách sửa lỗi máy tính không nhận USB rất đơn giản, không cầu kỳ như nhiều bạn nghĩ.
Làm thế nào để gắn ổ USB?
(Lưu ý: Trong ngữ cảnh hiện tại, thuật ngữ "ổ USB" dùng để chỉ bất kỳ một thiết bị lưu trữ USB nào.)
Qubes OS hỗ trợ khả năng gắn một ổ USB (hoặc chỉ một hoặc nhiều phân vùng của ổ USB đó) vào bất kỳ Qubes nào một cách dễ dàng, dù Qubes có xử lý bộ điều khiển USB hay không. (Bộ điều khiển USB có thể được chỉ định trên tab Devices trong trang cài đặt Qubes trong Qubes VM Manager hoặc bằng cách sử dụng lệnh qvm-pci).
Việc gắn ổ USB được tích hợp trong Qubes VM Manager GUI. Rất đơn giản chỉ cần cắm ổ USB của bạn vào, kích chuột phải vào Qubes mà bạn muốn trong danh sách Qubes VM Manager, click chọn Attach/detach block devices và chọn hành động và thiết bị mà bạn muốn. Tuy nhiên, điều này chỉ hoạt động cho toàn bộ thiết bị. Nếu muốn đính kèm các phân vùng cá nhân, bạn phải sử dụng công cụ dòng lệnh.
Sử dụng công cụ dòng lệnh qvm-block để gắn ổ USB hoặc các phân vùng của ổ USB đó. 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: Trên 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 block devices có sẵn:
qvm-block -l
Lệnh này sẽ liệt kê tất cả các block devices có sẵn 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ó lưu trữ bộ điều khiển hay không. Tên của Qubes lưu trữ bộ điều khiển USB được hiển thị 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 của thiết bị được sử dụng trong Qubes, như sau:
dom0:sdb1 Cruzer () 4GiB
usbVM:sdb1 Disk () 2GiB
Lưu ý: Nếu thiết bị của bạn không được liệt kê tại đây, bạn có thể làm mới danh sách bằng cách gọi (từ Qubes đến các 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 của thiết bị như sau:
qvm-block -a personal dom0:sdb
Thao tác trên sẽ gắn thiết bị với Qubes bằng /dev/xvdi nếu tên đó chưa được thực hiện bởi các thiết bị được kết nối khác, hoặc /dev/xvdj, ... .
Ngoài ra bạn cũng có thể gắn một phân vùng cùng một lúc bằng cách sử dụng cù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ể phân chia cùng một phân vùng cho nhiều Qubes. Ví dụ, bạn có thể gắn sdb1 với Qubes1 và sau đó gắn sdb với Qubes2. Điều này để người dùng không bị nhầm.
Bước 4: Lúc này ổ USB của bạn được gắn với Qubes. Nếu sử dụng Qubes mặc định, bạn có thể mở Nautilus trên Qubes và thiế bị của bạn sẽ được hiển thị trên bảng Devices ở khung bên trái.
Bước 5: Khi không sử dụng ổ USB nữa, bạn click chọn nút eject hoặc kích chuột phải vào USB và chọn Unmount.
Bước 6: Tách ổ USB trên bảng điều khiển dom0:
qvm-block -d
Hoặc:
qvm-block -d
Bước 7: Như vậy là bạn hoàn tất quá trình rút thiết bị.
Cảnh báo: Không được rút thiết bị ra trước khi chưa tách thiết bị trên VM.
Nếu thiết bị của bạn không hiển thị trên Nautilus, bạn sẽ phải thao tác gắn thiết bị bằng tay.
Thiết bị sẽ hiển thị dưới dạng /dev/xvdi (hoặc /dev/ xvdj nếu đã có một thiết bị đính kèm, hoặc nếu có 2 thiết bị đính kèm thì thiết bị sẽ hiển thị dưới dạng /dev/ xvdk, ...).
Chuyện gì sẽ xảy ra nếu rút thiết bị trước khi tách thiết bị 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 thiết bị ra khỏi Qubes, hệ điều hành Qubes (chính xác hơn là libvirtd) sẽ nghĩ rằng thiết bị vẫn còn gắn với Qubes và sẽ không cho phép gắn các thiết bị khác cùng tên.
Cách đơn giản nhất để khôi phục lại thiết bị trong trường hợp này là khởi động lại Qubes mà thiết bị được gắn, nhưng nếu tùy chọn này không khả dụng, bạn có thể thực hiện theo các bước dưới đây:
Bước 1: Kết nối lại thiết bị. Bạn có thể sử dụng bất kỳ các thiết bị nào miễn là thiết bị đó sẽ được phát hiện cùng một tên (chẳng hạn như sdb).
Bước 2: Gắn thiết bị bằng tay trên cùng VM bằng cách sử dụng lệnh xl block-attach. Điều quan trọng là sử dụng cùng tên thiết bị " frontend " (theo 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 (attached to 'testvm' as 'xvdi')
[user@dom0 ~]$ xl block-attach testvm phy:/dev/sda backend=sys-usb xvdi
Trong ví dụ trên, các tham số xl block-attach có thể được suy ra từ đầu ra của qvm-block. Theo thứ tự:
- Testvm: tên của Qubes đích trên thiết bị đã được gắn - được liệt kê trong ngoặc bằng lệnh qvm-block
- phy: /dev/sda: đường dẫn vật lý tại đó thiết bị xuất hiện trong nguồn Qubes (ở phía 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, hoặc sử dụng Qubes VM Manager hoặc lệnh qvm-block -d.
Gắn một thiết bị USB với một Qubes (USB passsthrough)
Kể từ Qubes 3.2, bạn có thể gắn một thiết bị USB với bất kỳ Qubes nào. Mặc dù đây là tính năng hữu ích, tuy nhiên bạn nên cẩn thận khi sử dụng vì nguy cơ các vấn đề bảo mật là cao. Nếu có thể nên sử dụng phương pháp cụ thể cho từng loại thiết bị cụ thể (ví dụ block devices ở các bước trên) thay vì sử dụng phương pháp chung.
Để sử dụng tính năng này, bạn phải 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 ý bạn không thể pass các thiết bị từ dom0 (nói cách khác, USB VM là bắt buộc.
Liệt kê 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
Gắn các thiết bị USB 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 (attached to conferences)
sys-usb:2-1 03f0:0641 PixArt_HP_X1200_USB_Optical_Mouse
Bây giờ bạn có thể sử dụng thiết bị USB (trong trường hợp này là camera) trong conferences Qubes.
Khi đã tạo USB Boot Qubes và sử dụng xong, thực hiện tách các 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 khả dụng trên Qubes Manager.
Hiện nay có rất nhiều cách hỗ trợ người dùng tạo USB Boot trên máy tính như Grub4dos hay Hiren's Boot ... trong đó cách tạo usb boot bằng Grub4dos là một trong những cách được sử dụng rộng rãi hiện nay, công cụ Grub4dos hỗ trợ đắc lực trong việc copy và sao lưu dữ liệu giúp cài win, ghost win dễ dàng hơn.
https://thuthuat.taimienphi.vn/cach-tao-usb-boot-qubes-24501n.aspx
Nếu chỉ tạo usb boot cài win thì thật mất công với người dùng, chính vì thế, có nhiều phần mềm hỗ trợ tạo USB boot đa chức năng để làm nhiều việc cùng lúc như cài win, ghost win hay sửa lỗi máy tính, tham khảo cách tạo USB boot đa chức năng để tự mình sở hữu một chiếc USB với nhiều công dụng nhất.