概要
SELinux (Security-Enhanced Linux) は、システムにアクセスできるユーザーを管理者がより詳細に制御できるようにする Linux® システム 用のセキュリティ・アーキテクチャです。もともとは、Linux Security Modules (LSM) を使用した Linux カーネルへの一連のパッチとして、アメリカ国家安全保障局 (NSA) によって開発されました。
SELinux は 2000 年にオープンソース・コミュニティにリリースされ、2003 年にアップストリームの Linux カーネルに統合されました。
セキュリティおよびコンプライアンスに対する Red Hat のアプローチ (動画)
任意アクセス制御 (DAC) と強制アクセス制御 (MAC)
Linux システムと UNIX システムでは旧来から DAC が使用されてきました。SELinux は、Linux 用の MAC システムの一例です。
DAC では、ファイルやプロセスには所有者が存在します。ファイルの所有者にはユーザー、グループ、その他のユーザーがなることができます。「その他のユーザー」とは、ユーザーとグループで指定されている以外のあらゆるユーザーです。ユーザーは、自分のファイルのパーミッションを変更することが可能です。
DAC システムでは、root ユーザーは完全なアクセス制御権を持ちます。つまり、root アクセス権があれば、他のあらゆるユーザーのファイルにアクセスし、システム上であらゆる操作を実行できてしまいます。
しかし、SELinux のような MAC システムでは、アクセスはポリシーで管理されます。たとえホームディレクトリの DAC 設定が変更されても、SELinux ポリシーにより別のユーザーやプロセスはディレクトリにアクセスできないため、システムの安全が維持されます。
SELinux ポリシーを使うと、詳細な設定を多数のプロセスに適用できます。SELinux で変更を加えて、ユーザー、ファイル、ディレクトリなどの間のアクセスを制限できます。
SELinux エラーへの対処
SELinux でエラーが発生する場合、何らかの対処が必要であることを示しています。ほとんどの場合、そうした問題は次の 4 つのいずれかに分類できます。
- ラベルが正しくない:ラベリングが正しくない場合は、ラベル修正ツールで修正できます。
- ポリシーを修正する必要がある:これは、行った変更を SELinux が認識していないか、または、ポリシーの調整が必要かもしれないことを意味します。ブール値やポリシーモジュールを使用して修正できます。
- ポリシーにバグがある:対処が必要なバグがポリシーに存在する可能性があります。
- システムに侵入された:SELinux はさまざまな状況でシステムを保護することができますが、システムが危険にさらされる可能性は依然として存在します。システムへの侵入が疑われる場合は、迅速な対処が必要です。
ブール値とは
ブール値は、SELinux の機能をオン/オフに設定するための値です。SELinux 機能のオン/オフを指定する数百の設定があり、その多くはすでに事前定義されています。getsebool -a を実行すると、システムですでに設定されているブール値を確認できます。
Red Hat が提供できるサポート
Red Hat Enterprise Linux は世界有数のオープンソース Linux プラットフォームです。リスクの緩和、セキュリティ構成とポリシーの適用、コンプライアンス戦略の最適化の実現を支援します。
Red Hat Enterprise Linux システムロールは、サポートされている Ansible® ロールのコレクションであり、一貫したワークフローを提供し、手動タスクの実行を最適化します。システムロールは、セキュリティのワークフローを自動化し、それらを一定期間、大規模に、また最小限のリソースで維持するのに役立ち、ガバナンスとコンプライアンス要件を最適化します。SELinux システムロールを使って、SELinux のデプロイメントと管理を自動化できます。 これには、以下が含まれます。
- enforcing または permissive モードで SELinux を有効にし、制御の一貫性を確保する。
- SELinux ポリシーのブール値、ファイルのコンテキスト、ポートおよびログインをカスタマイズして要件に対応する。
- システムロールを使用し、指定したファイルまたはディレクトリのファイルのコンテキストを調整する。