6.10. MLS ユーザーによる下位レベルのファイルの編集を許可する
デフォルトでは、MLS ユーザーは、クリアランス範囲の下限値を下回る機密レベルのファイルに書き込むことはできません。シナリオで、ユーザーによる下位レベルのファイルの編集を許可する必要がある場合は、ローカル SELinux モジュールを作成することで実行できます。ただし、ファイルへの書き込みにより、機密レベルがユーザーの現在の範囲の下限まで上昇します増加します。
前提条件
-
SELinux ポリシーが
mls
に設定されている。 -
SELinux モードが
Enforcing
に設定されている。 -
policycoreutils-python-utils
パッケージがインストールされている。 -
検証用の
setools-console
パッケージおよびaudit
パッケージ。
手順
オプション: トラブルシューティングを実施しやすくするために、Permissive モードに切り替えます。
# setenforce 0
~/local_mlsfilewrite.cil
などのテキストエディターで新しい.cil
ファイルを開き、以下のカスタムルールを挿入します。(typeattributeset mlsfilewrite (_staff_t_))
staff_t
は、別の SELinux タイプに置き換えることができます。ここで SELinux タイプを指定することで、下位レベルのファイルを編集できる SELinux ロールを制御できます。ローカルモジュールをより適切に整理するには、ローカル SELinux ポリシーモジュール名で接頭辞
local_
を使用します。ポリシーモジュールをインストールします。
# semodule -i ~/local_mlsfilewrite.cil
注記ローカルポリシーモジュールを削除するには、
semodule -r ~/local_mlsfilewrite
を使用します。モジュール名を参照する場合は、接頭辞.cil
なしで参照する必要がある点に注意してください。オプション: 以前に permissive モードに戻した場合は、enforcing モードに戻ります。
# setenforce 1
検証
インストールされている SELinux モジュールのリストでローカルモジュールを検索します。
# semodule -lfull | grep "local_mls" 400 local_mlsfilewrite cil
ローカルモジュールの優先度は
400
であるため、semodule -lfull | grep -v ^100
コマンドを使用してリスト表示することもできます。-
カスタムルールで定義されているタイプ (
staff_t
など) に割り当てられたユーザーとしてログインします。 機密レベルが低いファイルに書き込みを試みます。これにより、ファイルの区分レベルがユーザーのクリアランスレベルまで上昇します。
重要検証に使用するファイルには、設定が間違っており、ユーザーが実際に認証なしにファイルにアクセスできてしまう場合に備え、機密情報を含めないようにしてください。