LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問5
アクセスおよび権限制御の強化/SELinux による強制アクセス制御RHEL 9系でApacheのドキュメントルートを /srv/web に変更したところ、SELinuxに拒否されて表示できない。ファイルシステムの再ラベル付けを行っても失われない形でコンテキストを直す手順として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Asemanage fcontext -a -t httpd_sys_content_t '/srv/web(/.*)?' で登録し、restorecon -Rv /srv/web で反映する
- Bchcon -R -t httpd_sys_content_t /srv/web でラベルを書き換え、同じ指定を /etc/selinux/config にも追記しておく
- Cホームディレクトリで作成したファイルを mv で /srv/web へ移動し、作成時に付いたコンテキストのまま配置する
- Dsetsebool -P httpd_read_user_content on を実行し、Apacheがラベルに関係なくファイルを読めるよう許可する
正解:A
解説
SELinuxのファイルコンテキストを恒久的に変えるには、semanage fcontext -a でパスの正規表現とタイプの対応をポリシーのローカル設定に登録し、restoreconでその定義どおりにラベルを付け直します。chconはラベルを直接書き換えるだけなので、restoreconやファイルシステム全体の再ラベル付けで元に戻ってしまいます。なおmvは元のコンテキストを保持したまま移動するため、ホームディレクトリで作ったファイルを移すと user_home_t 等のままになり、拒否の原因になります。ls -Z で現在のコンテキストを確認できます。
選択肢ごとの解説
- A正しい。semanage fcontextで定義を登録し、restoreconで反映すれば、再ラベル付けを行っても同じコンテキストになります。
- B誤り。chconの変更はポリシーに登録されないため、restoreconや再ラベル付けで消えます。/etc/selinux/config はモードとポリシータイプを指定するファイルで、コンテキストは書きません。
- C誤り。mvは元のコンテキストを保持するため、ホームディレクトリ由来のラベルのまま配置され、むしろ拒否の原因になります。cp(新規作成)なら移動先の既定ラベルが付きます。
- D誤り。httpd_read_user_content はユーザーのホームディレクトリ内のコンテンツを読ませるためのブール値で、/srv/web のラベル不一致は解決しません。