以下のセクションでは SELinux の設定ファイル及び関連ファイルシステムを説明します。
/selinux/ 疑似ファイルシステムには、カーネルサブシステムで一般に使用されているコマンドが含まれています。このタイプのファイルシステムは/proc/ 疑似ファイルシステムに似ています。
ほとんどの場合、管理者とユーザーは他の SELinux ファイルやディレクトリに比較すれば、このコンポーネントを操作する必要がありません。
次ぎの例では、/selinux/ ディレクトリのサンプル内容を示しています:
-rw-rw-rw- 1 root root 0 Sep 22 13:14 access dr-xr-xr-x 1 root root 0 Sep 22 13:14 booleans --w------- 1 root root 0 Sep 22 13:14 commit_pending_bools -rw-rw-rw- 1 root root 0 Sep 22 13:14 context -rw-rw-rw- 1 root root 0 Sep 22 13:14 create --w------- 1 root root 0 Sep 22 13:14 disable -rw-r--r-- 1 root root 0 Sep 22 13:14 enforce -rw------- 1 root root 0 Sep 22 13:14 load -r--r--r-- 1 root root 0 Sep 22 13:14 mls -r--r--r-- 1 root root 0 Sep 22 13:14 policyvers -rw-rw-rw- 1 root root 0 Sep 22 13:14 relabel -rw-rw-rw- 1 root root 0 Sep 22 13:14 user |
例えば、enforceファイル上でcatコマンドを実行すると執行モードの 1 又は容認モードの 0を提示します。
以下のセクションでは、SELinux の設定とポリシーファイル、及び/etc/ディレクトリ内にある関連ファイルシステムの説明をしています。
Red Hat Enterprise Linux で SELinux を設定するには、2つの方法があります: セキュリティレベル 設定ツール (system-config-securitylevel) の使用か、あるいは設定ファイル(/etc/sysconfig/selinux)の手動編集です。
/etc/sysconfig/selinuxファイルは SELinux を有効/無効にする主要ファイルであり、またシステム上のどのポリシーを執行するか、及びどの様に執行するかの設定もできます。
![]() | 注記 |
---|---|
/etc/sysconfig/selinuxには、実際の設定ファイル/etc/selinux/configへのシンボリックリンクが含まれています。 |
以下に、設定に利用できるオプションの完全なサブセットを説明しています:
SELINUX=<enforcing|permissive|disabled> — システム上の SELinux のトップレベルの状態を定義します。
enforcing — SELinux セキュリティポリシーを執行中です。
permissive — SELinux システムは警告を表示しますが、ポリシーは執行しません。これは、デバッグとトラブルシューティングの時に役に立ちます。この容認モードでは、執行モードで拒否されるようなアクションでもサブジェクトが継続出来るため、より多くの拒否がログされます。例えば、ディレクトリトリーを見て回ると、全ての読み込んだディレクトリレベルで複数のavc: deniedメッセージが発生しますが、執行モードのカーネルは最初の読み取りで停止し、次ぎの拒否メッセージを発生させません。
disabled — SELinux は完全に無効です。SELinux の接点はカーネルから切断されており、疑似ファイルシステムは未登録です。
![]() | ヒント |
---|---|
SELinux が無効な時に実行されたアクションは、ファイルシステムがポリシーに定義されているような正式なセキュリティ条項を持たなくなる原因となります。SELinux を有効にする前にfixfiles relabelを実行することで、ファイルシステムのラベルを変え、SELinux が有効になった時に正常に機能するように出来ます。この詳細については、fixfiles(8)のman ページを参照して下さい。 |
![]() | 注記 |
---|---|
設定行末尾への余分な空白、又はファイルの最後の余分な行は予期できない動作の原因になります。安全の為、無用な空白は削除して下さい。 |
SELINUXTYPE=<targeted|strict> — SELinux で現在執行されているポリシーを指定します。
targeted — 目標されたネットワークデーモンのみが保護されます。
![]() | 重要 |
---|---|
以下のデーモンがデフォルトの目標ポリシーで保護されています:dhcpd、 httpd (apache.te)、 named、 nscd、 ntpd、 portmap、 snmpd、 squid、 及び syslogd。システムの他の部分はunconfined_tドメインで動作します。 これらのデーモンの為に使用されるポリシーファイルは/etc/selinux/targeted/src/policy/domains/programで見ることが可能となっています。これは Red Hat Enterprise Linux の新しいバージョンがリリースされる時に変更の可能性があります。 |
これらのデーモンに対するポリシー執行はセキュリティレベル 設定ツール (system-config-securitylevel)によって制御されるブール値を使用してオン/オフの切替えが出来ます。ブール値を目標デーモン用に切替えるとそのデーモンへのポリシー処理を無効にします。そして、例えば、initのunconfined_tドメインからdhcpd.teに指定されたドメインへのdhcpdの移動を防止します。unconfined_tドメインはサブジェクトとオブジェクトが標準のLinux セキュリティの基でセキュリティ条項を実行できるようにします。
strict — 全てのデーモン用の完全な SELinux 保護です。セキュリティ条項は全てのサブジェクトとオブジェクトに定義されており、全ての単独アクションはポリシー執行サーバーでプロセスされます。
/etc/selinux/ディレクトリは全てのポリシーファイルと主要設定ファイル用の主体となる場所です。
以下のサンプルでは/etc/selinux/ディレクトリの内容を示しています:
-rw-r--r-- 1 root root 448 Sep 22 17:34 config drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted |
strict/ と targeted/の2つのサブディレクトリは同名(strict=厳格、及びtargeted=目標)のポリシーファイルが含まれている特定のディレクトリです。
SELinux ポリシー及びポリシー設定に関する詳細は Red Hat SELinux ポリシーライティングガイド を参照して下さい。
以下に一般的によく使用される SELinux ユーティリティを示します:
/usr/bin/setenforce — SELinux が実行しているモードをリアルタイムで変更します。setenforce 1を実行することにより、SELinux は執行モードになります。setenforce 0の実行で SELinux は容認モードになります。実際に SELinux を無効にするには、/etc/sysconfig/selinuxでパラメータを設定するか、又は/etc/grub.confの中、あるいは起動時にカーネルにselinux=0のパラメータを渡します。
/usr/bin/sestatus -v— SELinux を実行しているシステムの詳細状態を取得します。以下の例では sestatus 出力の一部を示しています:
SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Policy version: 18 |
/usr/bin/newrole— 新しい条項、又は役目内で新規シェルを実行します。ポリシーは新規の役目への移行を許可する必要があります。
/sbin/restorecon — 適切なファイルやセキュリティ条項で拡張属性をマークすることで、1つ又は複数のファイルのセキュリティ条項を設定します。
/sbin/fixfiles — ファイルシステム上のセキュリティ条項データベースをチェックして修正します。
詳しい内容はこれらのユーティリティに関連した manページを参照して下さい。
利用できるバイナリユーティリティの詳細情報はrpm -ql <package-name>を実行して、setools又はpolicycoreutilsパッケージの内容を参照して下さい。<package-name>には、それぞれ必要なパッケージ名をいれます。