selinuxを許可に設定するよりも、chconを使用してselinuxを安全にバイパスする方が安全ですか?

selinuxを許可に設定するよりも、chconを使用してselinuxを安全にバイパスする方が安全ですか?

chconSELinuxを使用して、許可モードでCentOS 7サーバーをSELinuxより安全にすることが可能かどうか疑問に思います。私はデフォルトでrbenvsudoer(ユーザーのホームディレクトリにRubyライブラリ、バイナリ、libsなどをデフォルトでインストールするRubyバージョンマネージャ)ではなく、ユーザーと一緒にインストールされたRubyバージョンを使用するためにNginxを使用してPhusion Passengerを設定しようとしています。私はSELinuxブールなどのさまざまな問題を根本的に解決するために同様のツールを使用しましたが、setroubleshoot-server特定のユーザーのホームディレクトリにインストールされているRubyバージョンの問題を診断するのには役に立ちませんでした。次の条件では、Phusion PassengerとNginxですべてがうまく機能します。

  • システム全体のRuby(v2.0)インストールの使用(適用モードのSELinux)
  • インストールされたRuby(v2.2.3)の使用rbenv(許可モードのSELinux)
  • rbenv次のコマンドを実行した後、インストールされたRuby(v2.2.3)(SELinuxは適用モードにあります)を使用してください。

    chcon -R --reference /bin /home/myuser/.rbenv/

観察された動作を確認するために、構成変更の間にサーバーを再起動しました。

Rubyのバージョンを含むフォルダのセキュリティコンテキストをchcon変更してそのフォルダと同じセキュリティコンテキストを持たせることで、基本的にSELinuxをバイパスするように感じます。このように使用すると、意図しないセキュリティ結果が発生しますか?rbenv/binchcon

これは質問の範囲外ですが、NginxとPhusion Passengerで使用するためにユーザーのホームディレクトリにインストールされているRubyインタプリタのセキュリティコンテキストを設定する正しい方法はありますか?

ベストアンサー1

SELinuxは基本的に明示的に許可されていないすべてを拒否します。 SELinuxが許可モードで実行されている場合、SELinuxは許可拒否を記録しますが、これを強制しません(つまり、SELinuxはジョブの完了を妨げません)。施行モードでは、SELinuxは権限の拒否を記録して強制します(つまり、SELinuxはジョブの完了を防ぎます)。

基本的にSELinuxをバイパスする方法を使用しても、chcon許可モードでSELinuxを使用するよりもシステムが安全になるわけではありません。強制モードのSELinuxは、ユーザーがまだ触れていないシステムの他のすべての部分に対する操作を拒否しているためですchcon

源泉:https://source.android.com/security/selinux/

おすすめ記事