LinuCレベル3 303試験の例題と解説
327.2強制アクセス制御
■トピックの概要
このトピックの内容は以下の通りです。
<327.2 強制アクセス制御>
重要度 4
<説明>
SELinux全般の知識があること。
<主要な知識範囲>
・SELinuxの設定
・TE、RBAC、MAC、およびDACの概念と使用方法
<重要なファイル、用語、ユーティリティ>
・fixfiles/setfiles
・newrole
・setenforce/getenforce
・selinuxenabled
・semanage
・sestatus
・/etc/selinux/
・/etc/selinux.d/
■例題
SELinuxについての説明として間違っているものを選びなさい。
1. SELinuxを利用すると、root権限に対してもアクセス制御が行える
2. SELinuxが有効かどうかはgetenforceコマンドで確認できる
3. SELinuxを無効にするにはsetenforceコマンドを使用する
4. コンテキストやポリシーなどを操作するにはsemanageコマンドを使用する
※この例題は実際のLinuC試験とは異なります。
解答と解説
答えは3. SELinuxを無効にするにはsetenforceコマンドを使用する です。
SELinuxでは、ファイルなどに対して「コンテキスト」を設定し、プロセスなどの「サブジェクト」がファイルなどの「オブジェクト」に対して行える操作ルールを定義しています。ルールのことを「ポリシー」と呼んでいます。たとえば、Webサーバー(サブジェクト)がアクセスできるファイル(オブジェクト)についてポリシーが定義されており、許可されているコンテキストが与えられていないファイルはWebサーバーはアクセスできないことになります。
SELinuxはカーネルの機能のため、有効、無効を切り替えるにはシステムの再起動を伴います。現在の状態はgetenfoceコマンドで取得できます。setenforceコマンドは有効な状態のうち、アクセス制御を強制している状態である「Enforcing」と、ポリシーは適用しているがアクセスは許可する「Permissive」の切り替えのために使います。Permissiveの状態でも、ポリシーに違反するとログに書き込まれるので、設定後のテストや、トラブル発生時の切り分けに利用できます。
SELinuxの設定変更にはsemanageコマンドやgetseboolコマンド、setseboolコマンドなど様々なコマンドが用意されています。状況に応じて使い分けが必要なので、まずはポリシーをまとめて設定変更が可能な「ブーリアン」による制御あたりから始めてみるとよいでしょう。