Linuxのセキュリティ機能のSELINUXってどういう機能?
Linuxをインストールすると、いつも真っ先に disabled にする SELinux の機能なのですが、ざっくりとどんな機能なのでしょうか。
SELinux(Security-Enhanced Linux)は、Linux カーネルに統合された強化されたセキュリティ機能であり、アクセス制御をより細かく管理するための仕組みです。SELinux は、アクセス制御をより厳密にすることによって、システムのセキュリティを向上させることを目的としています。
以下に、SELinux の主な機能と特徴を説明します:
主な機能
- マルチレベルセキュリティ (MLS) とマルチカテゴリセキュリティ (MCS):
- MLS: データの機密性を守るために、情報のフローを管理します。異なる機密レベルの情報が混在しないようにすることで、情報漏洩を防ぎます。
- MCS: タグ付けされたカテゴリに基づいてアクセス制御を行います。MLS よりも柔軟性があり、特定のカテゴリに属するプロセスやファイルへのアクセスを制御できます。
- 型ベースの強制アクセス制御 (TE):
- SELinux はオブジェクトとプロセスに対してラベル(タイプ)を付け、それに基づいてアクセス制御を行います。各プロセスやファイルにセキュリティコンテキストを割り当て、それに基づいてアクセス許可が決定されます。
- ロールベースアクセス制御 (RBAC):
- ユーザーやプロセスにロールを割り当て、それに基づいてアクセス許可を管理します。これにより、ユーザーの役割に応じたアクセス制御が可能になります。
SELinux のモード
- Enforcing モード: ポリシー違反を防ぎ、ログに記録します。実際のアクセス制御を強制します。
- Permissive モード: ポリシー違反をログに記録しますが、アクセスは許可されます。主にデバッグやポリシー開発時に使用されます。
- Disabled モード: SELinux が無効になり、通常の Linux アクセス制御のみが適用されます。
利点
- セキュリティの向上: より細かいアクセス制御により、潜在的なセキュリティ脅威を減少させます。
- 柔軟性: ポリシーをカスタマイズすることで、特定の要件に応じたセキュリティ設定が可能です。
実装例
- Web サーバーが SELinux によって制御されている場合、悪意のあるスクリプトが実行されたとしても、そのスクリプトがシステムの他の部分にアクセスすることを防ぐことができます。
SELinux は強力なセキュリティツールですが、設定と管理が複雑な場合があり、適切なポリシーの設計と運用が必要です。それにより、システムのセキュリティを効果的に強化できます。