SJ blog
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 — クリップボード転送

これらを覚えれば日常的な作業は快適にこなせます。