ここにいる人々が、デフォルトでオンになっているインストールでSELinuxを通常無効にするかどうかを知りたいですか?もしそうなら、その理由、それがどのようなシステムであったかなどを説明できますか?
できるだけ多くのご意見を伺いたいと思います。
私は、3、4年前に、定義されたポリシーに多くの落とし穴があり、ポリシーの作成が難しすぎて、学ぶ時間がなかったときにそうしました。もちろん、これは重要ではないマシンで行われました。
今日では、適切なポリシーを使用してディストリビューションを出荷するために行われたすべての作業と、ポリシーの作成、修正、および定義に役立つツールとチュートリアルがあり、それを無効にする言い訳はありません。
私は昨年、CentOS 5.x システムで有効になっている「対象を絞った」ポリシーを適用するように設定していた会社で働いていました。Apache がデフォルト ポリシーに含まれていたため、開発者が取り組んだ Web アプリケーション コードに干渉することはありませんでした。Red Hat (または CentOS) 以外のパッケージからインストールされたソフトウェアにはいくつかの課題がありましたが、構成管理ツールであるPuppetを使用して問題を回避することができました。
Puppet のテンプレート機能を使用してポリシーを生成しました。SELinux Enhancements for Puppetの見出し「将来のもの」、項目「ポリシーの生成」を参照してください。
これを実装した方法の基本的な手順を次に示します。audit2allow 以外はすべて自動化されていることに注意してください。
${name} という名前のサービスの SELinux テンプレート ファイルを生成します。
sudo audit2allow -m "${name}" -i /var/log/audit/audit.log > ${name}.te
スクリプトを作成し、/etc/selinux/local/${name}-setup.sh
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
/usr/bin/checkmodule -M -m -o ${BUILD}/${name}.mod ${SOURCE}/${name}.te
/usr/bin/semodule_package -o ${BUILD}/${name}.pp -m ${BUILD}/${name}.mod
/usr/sbin/semodule -i ${BUILD}/${name}.pp
/bin/rm ${BUILD}/${name}.mod ${BUILD}/${name}.pp
とはいえ、ほとんどの人は、SELinux を無効にして、The Center for Internet Security の Benchmarksなどの一般的に受け入れられているコンセンサス ベースのベスト プラクティスを通じてシステムを強化する方がよいでしょう(彼らは SELinux を推奨していることに注意してください :-))。
私の会社は、CMS/統合プラットフォーム製品を製造しています。私たちのクライアントの多くは、まだ重要な運用データを保持しているサードパーティ製のレガシー システムを使用しており、ほとんどの場合、これらのシステムは機能するため、これらのシステムを使い続けたいと考えています。そのため、システムをフックして、さまざまな手段で公開やレポートなどのためにデータを引き出します。各サーバーで大量のクライアント固有のものを実行すると、SELinux を適切に構成することが困難になり、結果として費用のかかる作業になります。
多くのクライアントは、最初は最高のセキュリティを望んでいますが、統合ソリューションのコスト見積もりを聞くと、「SELinux 無効」という言葉がすぐにプロジェクト計画に現れる傾向があります。
多層防御は良い考えなので、残念です。ただし、セキュリティのためにSELinux が必要になることは決してなく、これがその失敗のようです。クライアントが「SELinux なしでセキュアにできますか?」と尋ねた場合、私たちは何と答えるべきでしょうか? 「うーん...よくわかりません」?
できますし、そうするでしょうが、地獄がフリーズし、新しい脆弱性が発見され、更新が間に合わず、システムが不運にもグラウンド ゼロになってしまった場合... SELinux はあなたを救うかもしれませんお尻。
しかし、それは難しい売りです。
私は以前、大手コンピューターメーカーで、その会社のサーバーで実行されているRedHat Linux(および他の2つのフレーバー)の第3レベルのサポートで働いていました。ほとんどの場合、SELinuxをオフにしました。私の考えでは、SeLinuxが本当に必要な場合は、それが必要であることを知っており、なぜそれが必要なのかを具体的に述べることができます。あなたがそれを必要としないか、理由を明確に説明することができず、それがデフォルトで有効になっているとき、あなたはそれが後部の痛みであることにすぐに気づきます。あなたの本能で行きなさい。
SELinuxでは、ユーザーの注意と、何かに対するアクセス許可がない場合は常に(まあ)手動でアクセス許可を付与する必要があります。そのような多くの人々は、それが邪魔になり、それをオフにすることに気づきます。
最近のバージョンでは、SELinuxはよりユーザーフレンドリーであり、オフにする、または非表示にする可能性を排除して、知識のあるユーザーだけがそれを行う方法を知っているという話もあります-そして、ユーザーだけが正確に理解している人であると想定されています結果。
SELinuxには、鶏が先か卵が先かという問題があります。常に問題を抱えているためには、ユーザーとして開発者に問題を報告して、開発者が問題を改善できるようにする必要があります。しかし、ユーザーはそれが改善されるまでそれを使用することを好みません、そしてそれを使用している多くのユーザーがいなければそれは改善されません。
したがって、ほとんどの人がオフにする前に少なくともいくつかの問題を報告するのに十分な時間使用することを期待して、デフォルトでオンのままになっています。
結局のところ、それはあなたの呼びかけです。短期的な修正、またはソフトウェアの長期的な改善を探しますか。これにより、いつかそのような質問をする必要がなくなります。
良くなっていると聞きますが、まだ無効にしています。サーバーの場合、複数のローカル ユーザー間できめ細かいアクセス レベル制御を実装したい ISP や大企業でない限り、実際には意味がありません。
Web サーバーで使用すると、Apache のアクセス許可に多くの問題がありました。私は常に走らなければならないだろう、
chcon -R -h -t httpd_sys_content_t /var/www/html
新しいファイルが追加されたときに ACL を更新します。これは今では解決されていると確信していますが、それでも、SELinux は、標準的な Web サイトの展開で有効にすることで得られる限られた報酬のために非常に苦痛です.
悲しいことに、私はほとんどの場合 SELinux もオフにしています。Oracle などのサードパーティ製アプリケーションの多くは、SELinux をオンにするとうまく動作しないか、SELinux を実行しているプラットフォームではサポートされていないためです。
Red Hat 独自のサテライト製品では、SELinux もオフにする必要があることに注意してください。これは、悲しいことに、SELinux 対応プラットフォームで複雑なアプリケーションを実行する際の困難について多くを語っています。
役に立つかもしれないし役に立たないかもしれない使用上のヒント: SELinux は setenforce を使用して実行時にオンまたはオフにすることができます (現在のステータスを確認するには getenforce を使用します)。chcon は扱いにくいが、ymmv.
cPanelをオンにすると実行されないため、すべてのcPanelボックスでオフにします。
ここで貢献することはあまりありませんが、答えが出ていないので、2セントを投入すると思いました。
個人的には、開発ボックスや重要でないことを扱っているときに無効にします。私が制作を扱っているとき、またはより良いセキュリティが必要なときは、それをオンのままにするか、必要な方法で処理するために時間をかけて調整します。
天候に関係なく、実際に使用するかどうかはニーズに応じて決まりますが、それは理由で作成されたものなので、常に遮断するのではなく、使用することを検討してください。
はい。脳死です。これにより、診断がほぼ不可能な標準デーモンの破損が発生する可能性があります。ドアを閉めることもできますが、窓は開けたままにします。つまり、CentOS の新規インストールでは、何らかの理由で、smbd が「/etc/init.d/smb」から開始するのをブロックしていました。しかし、「sh /etc/init.d/smb」または「smbd -D」として呼び出されたときに起動すること、または init.d/smb ファイルを別のディレクトリに移動することをブロックしませんでした。そこから smbd を起動するだけです。大丈夫。
そのため、システムを保護するために何をしようと考えていたとしても (システムを破壊することによって)、一貫して実行していませんでした。真面目な CentOS の達人に相談しても、彼らはその動作の矛盾を理解していません。安心してご利用いただけるよう設計されています。しかし、それはセキュリティの見せかけです。これは、システム セキュリティをロックする実際の作業の代わりになります。
無効にはしていませんが、いくつか問題があります。
一部のアプリケーションは、特にうまく機能しません。
たとえば、smartd を有効にして RAID ディスクのスマート ステータスを追跡しようとしたと思いますが、selinux は/dev/sda*
起動時に作成された新しいノードについて混乱するでしょう (それが問題だと思います)。
物事を理解するには、ルールのソースをダウンロードする必要があります。
/var/log/messages
「avc denied」メッセージを確認するだけで、何が拒否されているかを解読できます。
Google で「selinux faq」を検索すると、これらの問題を解決する方法を説明する fedora selinux faq が見つかります。
私は selinux を無効にしたことはありません。請負業者が使用する必要があります。また、一部のデーモン (OSS ライセンスを使用) にセキュリティ ポリシーがない場合は、(適切な) ポリシーを作成する必要があります。これは、selinux が Linux で無敵の MAC であると私が信じているからではなく (例を挙げるのは役に立たない)、オペレーティング システムのセキュリティを強化するためです。Web アプリの場合、OSS セキュリティのより良い解決策は mod_security です。したがって、両方を使用します。selinux に関する問題のほとんどは、ドキュメントがほとんどないかわかりやすいものですが、近年では状況が大幅に改善されています。
私が開発マシンとして持っていたCENTOSボックスはオンになっていて、オフにしました。私が開発していたウェブアプリのテストで、私がやろうとしていたいくつかのことを止めていました。システムは (もちろん) ファイアウォールの背後にあり、LAN 外部からのアクセスを完全にブロックし、他の多くのセキュリティが整っていたので、SELinux をオフにしてもかなり安全だと感じました.
デフォルトでオンになっている場合は、何かが壊れるまでオンのままにし、その後オフにします。
個人的には、セキュリティを提供していないと考えており、気にするつもりはありません。
/etc/sysconfig/selinux
Red-hat の下で、編集および設定できますSELINIX=disabled
。
selinux=0 noselinux
Linux のすべてのバージョンで、lilo.conf または grub.conf のブート行に追加できると思います。