LinuCレベル3 303試験の例題と解説
327.2強制アクセス制御
LinuCレベル3 303試験の試験範囲から「327.2 強制アクセス制御」についての例題を解いてみます。
SELinuxの設定について確認しておきましょう。
例題
/var/run/hellodディレクトリ配下に適用されるセキュリティコンテキストのマッピングルールを調べることのできるコマンドを1つ選択してください。
- semanage fcontext -l | grep /var/run/hellod
- ls -dZ /var/run/hellod
- restorecon -R /var/run/hellod
- semanage fcontext -a -t hellod_var_run_t '/var/run/hellod(/.*)?'
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1. semanage fcontext -l | grep /var/run/hellod」です。
SELinuxを使用しているシステムでは、プロセスやファイルにセキュリティ関連の情報が付与されます。この情報をセキュリティコンテキストといいます。セキュリティコンテキストには、ユーザ識別子、ロール識別子、タイプ、レベルについての情報が含まれます。
semanageコマンドは、セキュリティコンテキストを管理するコマンドのひとつです。サブコマンドにfcontextを指定することで、ファイルのセキュリティコンテキストを管理することができます。
semanage fcontextコマンドには以下のようなオプションがあります。
-a, | --add | : | 新しくコンテキストのマッピングルールを追加 |
-d, | --delete | : | コンテキストのマッピングルールを削除 |
-m, | --modify | : | コンテキストのマッピングルールを編集 |
-l, | --list | : | コンテキストのマッピングルールを一覧表示 |
それでは、選択肢を見ていきます。
1.semanage fcontext -l | grep /var/run/hellod
正解です。
セキュリティコンテキストのマッピングルールを確認するには、semanage fcontextコマンドに -l オプションを指定します。「semanage fcontext -l」を実行すると、SELinuxのデフォルトのマッピングルールとユーザが後から定義したマッピングルールを確認することができます。
選択肢のコマンドでは、grepコマンドを用いて「/var/run/hellod」にマッピングされるセキュリティコンテキストのみを表示するようにしています。
# semanage fcontext -l | grep /var/run/hellod
/var/run/hellod(/.*)? all files system_u:object_r:hellod_var_run_t:s0
なお、「/var/run/hellod(/.*)?」と記載されているルールは、/var/run/hellodディレクトリ配下のファイルは、すべて同じセキュリティコンテキストが設定されるようになっています。
2.ls -dZ /var/run/hellod
誤りです。
lsコマンドに -Z オプションを指定すると、現在設定されているセキュリティコンテキストを確認することができます。
選択肢のコマンドでは -d オプションも合わせて指定することで、ディレクトリに設定されているセキュリティコンテキストを確認することができます。
# ls -dZ /var/run/hellod
drwxr-xr-x. root root system_u:object_r:hellod_var_run_t:s0 /var/run/hellod
しかし、ディレクトリ配下に適用されるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。
3.restorecon -R /var/run/hellod
誤りです。
restoreconコマンドは、セキュリティコンテキストを反映するためのコマンドです。semanageコマンドなどで、セキュリティコンテキストのマッピングルールを追加した後に使用します。
選択肢のコマンドのように -R オプションをつけることで、指定したディレクトリ配下全てに設定したセキュリティコンテキストを反映することができます。
例題にあるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。
4.semanage fcontext -a -t hellod_var_run_t '/var/run/hellod(/.*)?'
誤りです。
semanage fcontextコマンドに -a オプションを指定すると、セキュリティコンテキストのマッピングルールを追加することができます。
選択肢のコマンドは、/var/run/hellodディレクトリ配下に hellod_var_run_t というタイプのセキュリティコンテキストをマッピングするルールを追加します。例題にあるセキュリティコンテキストのマッピングルールを確認することはできないため不正解です。
SELinuxの設定変更にはsemanageコマンド以外に、getseboolコマンド、setseboolコマンドなど様々なコマンドが用意されています。
まずは、どこのディレクトリにどのようなセキュリティ設定がされているのか、確認できるようにしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本 知里