機械翻訳について

第2章 SELinuxポリシーの管理

SELinuxポリシーは、すべてのユーザー、プログラム、プロセス、ファイルおよびこれらが動作するデバイスのアクセス権限を示します。 SELinuxは、TargetedポリシーまたはMultilevel Security (MLS)ポリシーを実装するように構成できます。 この章では、SELinuxのポリシーとその管理方法について説明します。

2.1 ターゲット・ポリシー

システム上で攻撃対象となる可能性が最も高い限られた数のプロセスに、アクセス制御を適用します。 ターゲット・プロセスは、攻撃者が悪用する可能性のあるファイルへのアクセスを制限する、制限されたドメインと呼ばれる独自のSELinuxドメインで実行されます。 ターゲット・プロセスが制限されたドメイン外のリソースにアクセスを試みていることが検出された場合、SELinuxはこれらのリソースへのアクセスを拒否して、拒否を記録します。 制限されたドメインでは、特定のサービスのみが実行されます。 例として、httpdnamedsshdなど、ネットワーク上でクライアント・リクエストをリスニングするサービス、およびpasswdなど、ユーザーのかわりにタスクを実行するためにrootとして実行されるプロセスがあげられます。 多くのユーザー・プロセスを含め、その他のプロセスは、DACルールのみが適用される制限されないドメインで実行されます。 制限されないプロセスが攻撃によって危険にさらされた場合、SELinuxはシステム・リソースおよびデータへのアクセスを防ぐことはできません。

次の表に、SELinuxドメインの例を示します。

ドメイン

説明

init_t

systemd

httpd_t

HTTPデーモン・スレッド

kernel_t

カーネル・スレッド

syslogd_t

journaldおよびrsyslogdロギング・デーモン

unconfined_t

制限されないドメインで稼働中のOracle Linuxユーザーによって実行されるプロセス

2.2 Multilevel Security (MLS)ポリシー

各レベルが異なるユーザー・アクセス・ルールを持つ複数レベルのプロセスに、アクセス制御を適用します。 特定レベルでプロセスを実行するための適切な権限を持っていない場合、ユーザーは情報にアクセスできません。 SELinuxでは、MLSはシステム・セキュリティにBell-LaPadula (BLP)モデルを実装します。このモデルでは、ファイル、プロセスおよびその他のシステム・オブジェクトにラベルを適用して、セキュリティ・レベル間の情報フローを制御します。標準的な実装では、セキュリティ・レベルのラベルの範囲はtop secretからsecretclassifiedおよび最もセキュリティの低いunclassifiedです。 たとえば、MLSでは、top secretとラベル付けされたファイルへの書込みは可能であるが、このファイルからの読取りは可能でない、secretとラベル付けされたプログラムを構成できます。 同様に、同じプログラムに対して、secretとラベル付けされたファイルからの読取りおよびファイルへの書込みを許可し、classifiedまたはunclassifiedファイルの読取りのみを許可することができます。 すなわち、プログラムを通過する情報を、セキュリティ・レベル階層の上方に流すことはできますが、下方に流すことはできません。

ノート

MLSポリシーを適用するには、selinux-policy-mlsパッケージをインストールする必要があります。

2.3 SELinuxポリシーの設定

ノート

実行中のシステムのポリシー・タイプを変更することはできません。

/etc/selinux/configファイルを編集し、SELINUXTYPEディレクティブの値をtargetedまたはmlsに設定することによって、デフォルトのポリシー・タイプを構成できます。

2.4 SELinuxポリシーのカスタマイズ

一連のブール値のメンバーを有効または無効にすることで、SELinuxポリシーをカスタマイズできます。 変更内容はただちに有効になり、リブートは必要ありません。

すべてのブール値とその説明を表示するには、次のコマンドを使用します:

semanage boolean -l
SELinux boolean                State  Default Description

ftp_home_dir                   (off  ,  off)  
Determine whether ftpd can read and write files in user home directories.
smartmon_3ware                 (off  ,  off)  
Determine whether smartmon can support devices on 3ware controllers.
mpd_enable_homedirs            (off  ,  off)  
Determine whether mpd can traverse user home directories.
...

getseboolおよびsetseboolコマンドを使用して、特定のブールの値を表示および設定できます。

getsebool boolean
sudo setsebool boolean on|off

次の例では、ftp_home_dirブール値を表示および設定する方法を示します:

getsebool ftp_home_dir
ftp_home_dir --> off
sudo setsebool ftp_home_dir on
getsebool ftp_home_dir
ftp_home_dir --> on

ブール値の値を切り替えるには、次の例に示すように、toggleseboolコマンドを使用します:

sudo togglesebool ftp_home_dir
ftp_home_dir: inactive

リブート後にブール値を維持するには、次のようにsetsebool-Pを指定します。

sudo setsebool -P ftp_home_dir on
getsebool ftp_home_dir
ftp_home_dir --> on