Qubes OS
Z
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Qubes OS 便利小技・Tips 20選
Qubes OS を使いこなすための実用的な小技集。qvm-run の活用、dmenu でVMを素早く起動、PDF変換、スクリーンショット、USBメモリの安全な使い方などを紹介します。
一言結論
qvm-convert-pdfで信頼できないPDFをラスタライズしてマルウェアを無効化し、qvm-open-in-dvmで怪しいファイルを使い捨てVMで開く習慣こそ、Qubes OSのセキュリティを日常で最大限に活用する基本作法だ。
1. 素早くVMのターミナルを開く
# dom0 ターミナルから
qvm-run work xterm
qvm-run personal xterm
# キーボードショートカットに登録する
# ~/.config/i3/config または XFCE のキーボード設定
bindsym $mod+w exec qvm-run work xterm
2. AppVM を起動せずにコマンドを実行
# --auto で VM が起動していなければ自動起動
qvm-run --auto work "grep -r 'TODO' ~/projects/"
3. PDFを安全に開く
信頼できないPDFは Qubes PDF Converter を使って一度ラスタライズします:
# PDF を安全にクリーンな形式に変換
qvm-convert-pdf untrusted.pdf
# 変換後のPDFが ~/QubesConvertedPDFs/ に保存される
これにより、PDFに埋め込まれたマルウェアを無効化できます。
4. DisposableVM で怪しいファイルを開く
# 怪しいファイルを使い捨てVMで開く
qvm-open-in-dvm /path/to/suspicious-file
# 右クリックメニューからも使える:
# "Open in Disposable VM"
5. コマンドラインからGUIアプリを起動
# dom0 から AppVM の GUI アプリを起動
qvm-run personal "firefox https://example.com"
qvm-run banking "firefox https://mybank.co.jp"
6. AppVM のIPアドレスを確認する
# dom0 ターミナルで
qvm-ls --all -O name,ip
# または AppVM のターミナルで
ip addr show eth0
7. ファイルをVMから取り出す
# AppVM からdom0経由でファイルを取り出す(セキュリティに注意)
qvm-run --auto --pass-io work "cat ~/document.txt" > /tmp/document.txt
# または AppVM から qvm-copy を使う
qvm-run work "qvm-copy ~/document.txt"
8. スクリーンショットを撮る
# dom0 ターミナルで(全画面)
import -window root /tmp/screenshot.png
# または scrot
scrot /tmp/screenshot.png
# 特定のウィンドウ
scrot -s /tmp/screenshot.png # クリックでウィンドウ選択
9. VM の名前をタイトルバーに表示
Qubes OS はデフォルトでウィンドウのタイトルに VM 名が表示されます。確認できない場合:
# AppVM のターミナルで
# タイトルに VM 名を追加する設定
xprop -root _QUBES_VMNAME
10. USB メモリを安全に使う
# sys-usb でUSBメモリを確認
qvm-run sys-usb "lsusb"
# GUI でアタッチ(タスクバーのUSBアイコン)
# または コマンドラインで
qvm-usb attach work sys-usb:1-3
# マウント後に使用
qvm-run work "ls /run/media/user/"
# 使用後はデタッチ
qvm-usb detach work sys-usb:1-3
11. VM の状態を一括で確認
# 実行中のVM と使用メモリを一覧表示
qvm-ls -O name,state,mem,maxmem | grep Running
12. VM のメモリを動的に調整する
# 実行中のVMのメモリを変更
qvm-prefs work memory 1024 # 1GB に変更
# Qubes は Balloon Driver で動的にメモリを調整する
# xl mem-set domain_id size でも調整可能
13. テンプレートなしで素早いスタンドアロン環境
# Fedora の最新テンプレートをベースにStandaloneVMを作成
qvm-create --class StandaloneVM --template fedora-40 --label orange quicktest
qvm-start quicktest
# 使い終わったら削除
qvm-remove quicktest
14. dom0 に新しいファイルをコピーしない
dom0 は汚染しないのが原則ですが、どうしても必要な場合:
# AppVM から dom0 へのコピー(非推奨だが緊急時)
qvm-run --pass-io personal "cat ~/file.txt" | cat > /tmp/file.txt
15. Qubes ポリシーを一時的に変更する
# ポリシーの確認
cat /etc/qubes/policy.d/10-default.policy
# 一時的な許可(テスト用)
qvm-run personal "qvm-copy-to-vm work ~/testfile.txt"
16. VM のタグを使ってグループ管理
# タグを追加
qvm-tags work add client-a
qvm-tags personal add private
# タグでフィルタリング
qvm-ls --tags client-a
17. Qrexec でVM間通信を設定
# カスタムサービスを定義
# /etc/qubes-rpc/custom.GetData(サービスVM側)
#!/bin/bash
cat /home/user/shared-data.txt
# ポリシー設定
# /etc/qubes/policy.d/30-user.policy
custom.GetData * personal work allow
18. 起動を高速化する
# 自動起動VMを最小限にする
qvm-prefs sys-net autostart true # 必要
qvm-prefs sys-firewall autostart true # 必要
qvm-prefs work autostart false # 必要な時だけ起動
# dom0 のサービスを無効化
sudo systemctl disable bluetooth # Bluetoothを使わない場合
19. VM の使用ディスクを確認
# dom0 で各VMのディスク使用量を確認
qvm-ls -O name,disk
# 特定のVM
du -sh /var/lib/qubes/appvms/work/
20. ログを素早く確認する
# dom0 の最近のログ
sudo journalctl -b -n 50
# 特定のVMのログ(AppVM から)
qvm-run work "journalctl -n 50"
# Qubes サービスのログ
sudo journalctl -u qubesd -n 50
sudo journalctl -u xen* -n 50
まとめ
Qubes OS は最初は複雑に感じますが、日常的に使う操作は限られています。特によく使うのは:
qvm-run --auto VM名 "コマンド"— VM でコマンド実行qvm-copy ファイル— ファイルを別VMにコピーqvm-open-in-dvm ファイル— 使い捨てVMで開くCtrl+Shift+C/V— クリップボード転送
これらを覚えれば日常的な作業は快適にこなせます。