SELinux で Java アプリケーションを処理するためのベスト プラクティスはありますか? Java アプリごとに SELinux を構成できますか、それともフィナーレ システム コールを行うため、VM のみを処理できますか?
3 に答える
Java と SELinux が機能するかどうかは、ポリシーの定義方法によって異なります。Java プロセスがどのドメインで実行されているか、どのようにそのドメインに到達したか、およびそのドメインが何を許可されているかが主な関心事です。
ドメインは、ps の -Z オプション (つまり ps -Z) を試して、プロセスが実行されているコンテキスト/ドメインを確認するための単なる SELinux コンテキストです。同様に、ファイルのコンテキストを表示するには、ls の -Z オプション (つまり ls -Z) を試してください。
SELinux ポリシー ソースを参照するか、sesearch や apol (setools から) などの分析ツールを使用して、どのポリシーが許可されているか、どのように Java が特定のドメインに侵入したかを確認してください。
そこから、複雑なプロセスになる可能性のあるポリシーを修正/作成することに関心がありますが、たとえば、SLIDE (eclipse プラグイン)、seedit (ただし、これについては経験がありません) などのツールが作成されています。
JVM はいくつでも、JVM のバージョンもいくつでも持つことができます。必要に応じて、それらをすべて個別に構成できます。
JVM の数は、使用しているコアの数とほぼ同じかそれ以下に抑えることをお勧めします。何百もの JVM を使い始めると、管理と構成が難しくなる可能性があります。
心配する必要があるのは実行可能ファイルだけではなく、それが触れるすべてのファイルです。これが SElinux の真の力です。私はこの貴重なツールを無効にすることに反対します。Redhat の Dan Walsh から私が認識したことは、 unconfined_u が消えようとしているということです。つまり、ホーム ディレクトリにある .eclipse 内のデータ ファイルを含めて、データ ファイルを再配置する必要があります。メインのログインをstaff_uに減らしました.sudoアクセスができますが、fcontextを/ HOME_DIR/.eclipse(/.*)+に変更してstaff_java_tに変更しました