
すべてのユーザー(ルートを含む)がSELinuxまたは他のLinuxツールを介して特定のターゲット(たとえば/ tmp)の下に何もインストールできないようにしたいと思います。これは可能ですか?何をすべきか?
提案されたコピーに関して: インストール権限を拒否する方法は?——私が望むのはこんなものではない。
まず、rootユーザーについて話すときにSELinuxを完全に無視します。次に、「インストール権限」の削除について説明します。これは私が達成したいものではありません。実際、インストール権限よりも「フォルダ権限の拒否」について話しています。私が試しているものに最も近いのは神話または現実:SELinuxはrootユーザーを制限できますか?フォルダへのアクセス、特にそのフォルダへの「インストール」を拒否することについては言及しません。
質問の代わりに可能な解決策を選択した場合は、「インストールを制限するSELinuxドメインはありますか?」と尋ねたいと思います。
答え1
SELinux対応システムでは、各オブジェクト(プロセス、ファイルなど)にセキュリティラベルがあります。 SELinux ポリシーには、これらのラベルが許可するアクションを記述するルールが含まれています。基本的なポリシーは非常に複雑で広範囲です。ポリシーを設定すると、ほとんどの場所(タグベース)でのインストールを防ぐのに十分です。
このポリシーは無制限のユーザーに制限を課しません。また allow_mount_anyfile
ブール値は、mount
コマンドが(ほぼ)すべてのファイルをマウントポイントとして使用できるかどうかを制御します。使用制限されたユーザーユーザーがシステムにアクセスする方法には多くの制限が適用されます。 SELinux役割ベースのアクセス制御(RBAC)制限されたユーザーを制限された役割に配置します。役割は、その役割が実行できるドメイン(プロセスセキュリティラベル)を制限します。さらに、制限されたユーザーはuser_r
他の役割に切り替えることはできません。
制限された役割を持つユーザーが、表示されたファイル/ディレクトリをマウントポイントとして使用できることを確認するためにインストールされたポリシーを確認できます(直接または他の許可されたドメインを乱用)。
まず、user_r
次のコマンドを使用して変換できるドメインを確認しますseinfo
。
seinfo -r user_t -x
SELinuxポリシー言語ではmounton
ドメインがターゲットファイル/ディレクトリをマウントポイントとして使用できるようにする権限。ターゲットオブジェクトをマウントポイントとして使用することを許可されているドメインに対してインストールされているポリシーを照会するには、次のようにします。
sesearch --allow -t <target file/directory type> -p mounton
ドメインに許可ルールがない場合、user_r
ドメインのユーザーはターゲットをuser_r
マウントポイントとして使用できません(ドメインのルートであっても同じですuser_r
)。また、ポリシーをバイパスするために使用できるrelabelfrom
権限(ラベルの上書き)または権限がないことを確認する必要があります。unlink
管理者を制限(rootでsysadm_r
)するのは簡単な作業ではありません。新しいカスタムタイプおよび/またはカスタムデフォルトポリシーを含むポリシーモジュールが必要であり、sysadm_t
前述の権限もあります。カスタムポリシーには、ドメインにのみアクセスできるようにするタイプが必要です。さらに、ポリシーはポリシーバイパスを許可する可能性があるすべての動作を拒否する必要があるため、rootユーザーはrootより制限されたユーザーに近づくことになります。