13.7. サブシステムの SELinux ポリシーの管理

SELinux は、承認されていないアクセスと改ざんを制限するためにシステム全体で実施される、必須のアクセス制御ルールのコレクションです。SELinux の詳細は、SELinux ユーザーおよび管理者のガイドを参照してください。

13.7.1. SELinux について

基本的に、SELinux はシステム上の オブジェクト を識別します。これは、ファイル、ディレクトリー、ユーザー、プロセス、ソケット、または Linux ホスト上その他の物になります。これらのオブジェクトは Linux API オブジェクトに対応します。各オブジェクトは セキュリティーコンテキスト にマッピングされ、オブジェクトのタイプと、Linux サーバーでの機能が可能になります。
システムプロセスは SELinux ドメイン内で実行されます。各ドメインには、SELinux ドメインがシステム上の他の SELinux オブジェクトと対話する方法を定義する一連のルールがあります。この一連のルールは、プロセスがアクセスできるリソースと、それらのリソースで実行できる操作を決定します。
Certificate System では、各サブシステムタイプはそのサブシステムタイプの特定のドメイン内で実行されます。そのサブシステムタイプのすべてのインスタンスは、システム上のインスタンスの数に関係なく、同じ SELinux ドメインに属します。たとえば、サーバーに 3 つの CA がインストールされている場合は、その 3 つがすべて http_port_t SELinux ドメインに属しています。
すべてのサブシステムのルールと定義は、Certificate System SELinux ポリシー全体を設定します。Certificate System SELinux ポリシーは、サブシステムのインストール時に設定され、pkispawn でサブシステムが追加されたり、pkidestroy で削除されるたびに、すべての SELinux ポリシーが更新されます。
Certificate System サブシステムは、SELinux を強制モードに設定して実行します。つまり、すべての SELinux ルールに従う必要がある場合でも、Certificate System の操作を正常に実行できます。
デフォルトでは、Certificate System サブシステムは SELinux ポリシーにより制限が限定されます。

13.7.2. サブシステムの SELinux ポリシーの表示

すべての Certificate System ポリシーは、システムの SELinux ポリシーに含まれます。設定したポリシーは、SELinux 管理 GUI を使用して表示できます。この GUI は、policycoreutils-gui パッケージをインストールできます。
  1. system-config-selinux コマンドを実行するか、メインのシステムメニュー用の ApplicationsOtherSELinux Management にアクセスしてユーティリティーを開きます。
  2. インストールされている Certificate System SELinux ポリシーのバージョンを確認するには、左側のバーの Policy Module セクションを参照してください。
  3. 個々のファイルおよびプロセスに設定したポリシーを表示するには、File Labeling セクションをクリックします。サブシステムのポート割り当てのポリシーを表示するには、Network Port セクションをクリックします。

13.7.3. nCipher netHSM コンテキストの再ラベル付け

nCipher netHSM ソフトウェアには独自の SELinux ポリシーが同梱されないため、例13.1「netHSM SELinux ポリシー」 にあるように、Certificate System にはデフォルトの netHSM ポリシーが含まれます。

例13.1 netHSM SELinux ポリシー

# default labeling for nCipher
/opt/nfast/scripts/init.d/(.*)  gen_context(system_u:object_r:initrc_exec_t,s0)
/opt/nfast/sbin/init.d-ncipher  gen_context(system_u:object_r:initrc_exec_t,s0)
/opt/nfast(/.*)?                gen_context(system_u:object_r:pki_common_t, s0)
/dev/nfast(/.*)?                gen_context(system_u:object_r:pki_common_dev_t,0)
他のルールを使用すると、pki_*_t ドメインが pki_common_tpki_common_dev_t のラベルが付いたファイルと通信できます。
(デフォルトディレクトリー /opt/nfast であっても) nCipher 設定のいずれかを変更した場合は、restorecon を実行して、ファイルがすべて適切にラベル付けされていることを確認します。
restorecon -R /dev/nfast
restorecon -R /opt/nfast
nCipher ソフトウェアが別の場所にインストールされている場合や、HSM が異なる場合は、semanage を使用してデフォルトの Certificate System HSM ポリシーを再ラベル付けする必要があります。