信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Qubes OS でファイルをVM間でコピーする方法
Qubes OS でQube間のファイルコピー、クリップボード共有、Open in DisposableVMの使い方と、ファイル転送時のセキュリティ上の注意点を解説します。
一言結論
Qubes OSでのVM間ファイル転送はqvm-copyで受信VMを明示的に選択する必要があり、この意図的な手間がドラッグ&ドロップによる誤転送を防ぐセキュリティ設計の核心だ。
Qubes OS でのファイル転送の基本
Qubes OS では、通常のOSのようにVMをまたいでファイルをドラッグ&ドロップはできません。意図的な操作でのみファイルをVM間で転送できます。これがセキュリティを高めています。
GUI でのファイルコピー
ファイルマネージャー(または送信元VM のターミナル)でファイルを右クリック → Copy to Other AppVM または Move to Other AppVM
コピー先のVMを選択するダイアログが表示されます。
コピー先のVMの /home/user/QubesIncoming/[送信元VM名]/ にファイルが配置されます。
コマンドラインでのファイルコピー
送信元VM から dom0 を経由してコピー
# 送信元VM(例: personal)のターミナルで実行
qvm-copy-to-vm work /path/to/file.txt
# または
qvm-copy /path/to/file.txt
# → コピー先VMを選択するダイアログが表示される
dom0 からのコピー操作
# dom0 ターミナルから
qvm-run --auto --pass-io personal "cat /home/user/document.txt" > /tmp/document.txt
qvm-run --auto --pass-io work "cat > /home/user/document.txt" < /tmp/document.txt
注意: dom0 を経由した場合、dom0 の /tmp を汚染する可能性があります。dom0 は最も信頼されたドメインなので、信頼できないデータを dom0 に通すのは推奨されません。
クリップボードの共有
Qubes OS では、クリップボードも VM 間で自動共有はされません。
手順
- コピー元VM でテキストを選択してコピー(
Ctrl+C) - グローバルクリップボードに転送:
Ctrl+Shift+C - コピー先VM のウィンドウにフォーカスを移動
- グローバルクリップボードから取得:
Ctrl+Shift+V - 貼り付け:
Ctrl+V
[personal VM: Ctrl+C] → [Ctrl+Shift+C] → [グローバルクリップボード]
→ [work VM にフォーカス] → [Ctrl+Shift+V] → [Ctrl+V]
クリップボードのセキュリティ
グローバルクリップボードは 一方向の操作 が必要で、意図せずデータが漏れることを防ぎます。クリップボードのサイズには制限があります(64KB)。
DisposableVM でファイルを開く
信頼できないファイル(メールの添付ファイル、ダウンロードしたPDFなど) は必ず DisposableVM で開きます。
# 右クリック → "Open in DisposableVM" を選択
# コマンドラインから
qvm-open-in-dvm /path/to/untrusted-document.pdf
# 特定のDisposableVMテンプレートを指定
qvm-open-in-dvm --dispvm=whonix-ws-dvm /path/to/file
DisposableVM はファイルを開いて確認したら自動的に削除されます。マルウェアが含まれていても使い捨てのVMなので影響が限定されます。
qvm-copy と qvm-move の違い
qvm-copy file.txt # コピー(元のファイルは残る)
qvm-move file.txt # 移動(元のファイルは削除される)
ファイル転送のポリシー設定
/etc/qubes/policy.d/ で転送のポリシーを設定できます:
# /etc/qubes/policy.d/30-user-copy.policy
# personal から work へのファイルコピーを自動許可
qubes.Filecopy * personal work allow
# untrusted からのコピーは常に拒否
qubes.Filecopy * untrusted @anyvm deny
# それ以外は確認ダイアログを表示
qubes.Filecopy * @anyvm @anyvm ask
大きなファイルの転送
ファイルが大きい場合(数GB)、GUI ツールは遅い場合があります。qvm-copy は内部的に qrexec を使いますが、一時的に /tmp を使うためディスクスペースに注意が必要です。
大容量の場合は共有フォルダ(bind-dirs)の設定を検討します。
注意事項
| 操作 | 推奨度 | 理由 |
|---|---|---|
| 信頼できるVMへのコピー | ◯ | 通常の運用 |
| 信頼できないVMからのコピー | △ | ファイルの内容を確認してから |
| dom0 へのコピー | ✕ | dom0 は汚染しないこと |
| DisposableVM で開く | ◎ | 最も安全な方法 |
ファイルを扱う際は「どのVMから来たか」を常に意識することが Qubes OS の使い方の基本です。