selinuxがdefault_tでサービスの開始を拒否するのはなぜですか?

selinuxがdefault_tでサービスの開始を拒否するのはなぜですか?

新しいトップレベルディレクトリが作成され、新しいトップレベルディレクトリのデフォルトのラベルが付けられますdefault_t

ExecStartが新しいトップレベルディレクトリ()/ansible-managed/に作成されたプログラムの場合、SELinuxはサービスの起動を拒否します。

この拒否には目的はありますか?

sealertは、次のいずれかのタグを許可することをお勧めします。

  • 女性
  • start_t
  • etc_runtime_t
  • ちょっと待って
  • 初期化状態_t
  • ld_so_t
  • library_t
  • ソースコード
  • システム制御
  • システムデータベース
  • テキストrel_shlib_t
  • tmpfs_t
  • usr_t
  • var_run_t

/dev/shmしたがって、誰かが()などのユーザーが書き込むことができる場所でデーモンを実行できない可能性を排除できますtmpfs_t


SELinux ポリシー: selinux-policy-targeted-3.13.1-225.18.fc25.noarch

答え1

SELinux ポリシーは、システムで許可されるポリシーを定義するために存在します。このポリシーは非常に許容可能ですが、共通タグを使用していくつかの異なるファイルを生成するときに潜在的な脅威を回避することができます。

唯一の脅威は何かを実行するのではなく、潜在的にユーザーが書き込む可能性のある/dev/shmディレクトリで何かを実行するのは非常に危険です(特にデーモンがrootとして実行されている場合はそうではありませんか?)。

通常、Fedoraのすべての新しいサービス/デーモンには、SELinuxが少なくともある程度制御できるようにSELinuxポリシーが必要です。これが長期サービスなら、これをお勧めします。

一時サービスである必要がある場合は、通常のbin_tタグを割り当てるだけです。あるいは、/opt/your-path/(s)bin/ディレクトリツリーからタグを正しくインポートするようにバイナリをインストールしてポリシーを調整することもできます。

答え2

したがって、誰かが/ dev / shm(tmpfs_t)などのユーザー書き込み可能な場所でデーモンを実行するのを防ぐ可能性を排除できます。

間違っています。

/ dev / shm /にタグが付けられていますが、tmpfs_tユーザーがファイルを作成すると/dev/shm/タグが付けられますuser_tmp_t

関連情報