📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 190行目: | 190行目: | ||
<br> | <br> | ||
まず、/etc/apparmor.d/usr.sbin.libvirtdファイルにある最後の <code>}</code> スコープの直前に、以下に示す設定を追記する。<br> | まず、/etc/apparmor.d/usr.sbin.libvirtdファイルにある最後の <code>}</code> スコープの直前に、以下に示す設定を追記する。<br> | ||
以下の例では、QEMUを/home/<ユーザ名>/ | 以下の例では、QEMUを /home/<ユーザ名>/QEMU/ディレクトリ にインストールしているものとする。<br> | ||
sudo vi /etc/apparmor.d/usr.sbin.libvirtd | sudo vi /etc/apparmor.d/usr.sbin.libvirtd | ||
<br> | <br> | ||
| 218行目: | 218行目: | ||
AppArmorの設定を反映させるため、ルールセットを再読み込みする。<br> | AppArmorの設定を反映させるため、ルールセットを再読み込みする。<br> | ||
sudo systemctl reload apparmor | sudo systemctl reload apparmor | ||
<br> | |||
===== セキュリティ設定 : SELinuxを使用している場合 ===== | |||
QEMUを/usrディレクトリ以外の場所にインストールする場合、SELinuxによるアクセス拒否が発生する可能性がある。<br> | |||
そのため、QEMUバイナリに適切なセキュリティコンテキスト(ラベル)を付与する必要がある。<br> | |||
<br> | |||
まず、現在のSELinuxモードを確認する。<br> | |||
getenforce | |||
<br> | |||
<u>Permissive</u> または <u>Disabled</u> と表示された場合は、設定は不要である。<br> | |||
<u>Enforcing</u> と表示された場合は、以下に示す設定が必要となる。<br> | |||
<br> | |||
====== ファイルコンテキストの設定 ====== | |||
QEMUバイナリに適切なコンテキストを設定する。<br> | |||
以下の例では、QEMUを /home/<ユーザ名>/QEMU/ディレクトリにインストールしているものとする。<br> | |||
<br> | |||
sudo semanage fcontext -a -t qemu_exec_t "/home/<ユーザ名>/QEMU/bin/qemu-system-.*" | |||
sudo semanage fcontext -a -t qemu_exec_t "/home/<ユーザ名>/QEMU/bin/qemu-i386" | |||
sudo semanage fcontext -a -t qemu_exec_t "/home/<ユーザ名>/QEMU/bin/qemu-x86_64" | |||
<br> | |||
関連ライブラリやデータファイルにも必要に応じて設定する。<br> | |||
sudo semanage fcontext -a -t qemu_exec_t "/home/<ユーザ名>/QEMU/libexec(/.*)?" | |||
sudo semanage fcontext -a -t virt_image_t "/home/<ユーザ名>/QEMU/share(/.*)?" | |||
<br> | |||
====== コンテキストの適用 ====== | |||
設定したコンテキストを実際のファイルに適用 (再ラベル付け) する。<br> | |||
sudo restorecon -Rv /home/<ユーザ名>/QEMU/ | |||
<br> | |||
====== 設定の確認 ====== | |||
コンテキストが正しく設定されたかどうかを確認する。<br> | |||
ls -Z /home/<ユーザ名>/QEMU/bin/ | |||
<br> | |||
正しく設定されていれば、<u>qemu_exec_t</u> ラベルが表示される。<br> | |||
<br> | |||
====== ブール値の調整(必要に応じて) ====== | |||
状況によっては、SELinuxのブール値を変更する必要がある。<br> | |||
<br> | |||
仮想化関連のブール値を確認する。<br> | |||
getsebool -a | grep virt | |||
<br> | |||
必要に応じて有効化する。<br> | |||
sudo setsebool -P virt_use_nfs on # NFSを使用する場合 | |||
sudo setsebool -P virt_use_samba on # Sambaを使用する場合 | |||
sudo setsebool -P virt_sandbox_use_all_caps on # 特権が必要な場合 | |||
<br> | |||
====== 上記で解決しない場合 : カスタムポリシーモジュールの作成 ====== | |||
上記の設定でもアクセス拒否が発生する場合は、カスタムポリシーを作成する。<br> | |||
<br> | |||
拒否ログを確認する。<br> | |||
sudo ausearch -m avc -ts recent | |||
<br> | |||
ログからポリシーモジュールを自動生成する。<br> | |||
sudo ausearch -m avc -ts recent | audit2allow -M qemu_custom | |||
<br> | |||
モジュールをインストールする。<br> | |||
sudo semodule -i qemu_custom.pp | |||
<br> | <br> | ||