SELinux には、無効、許可、強制という 3 つの動作モードがあります。無効モードでは、SELinux がオフになり、デフォルトの DAC アクセス制御方式が使用されます。 Permissive モードでは、SELinux は有効になりますが、セキュリティ ポリシー ルールは強制されず、セキュリティ ポリシー ルールがアクセスを拒否する必要がある場合でもアクセスは許可されます。 Enforcing モードでは、SELinux が起動され、すべてのセキュリティ ポリシー ルールが適用されます。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
SELinuxとはSecurity Enhanced Linux、つまりセキュリティが強化されたLinuxの略で、米国国家安全保障局 (NSA) と他のセキュリティ機関 (SCC など) が共同で開発したもので、従来の Linux オペレーティング システムのセキュリティを強化し、従来の Linux オペレーティング システムの随意アクセス制御 (DAC) システムにおけるさまざまな権限の問題を解決することを目的としています。 Linux システム (root 権限が高すぎるなど)。
SELinux プロジェクトは、2000 年に GPL ライセンスの下でオープンソース化されました。Red Hat が Linux ディストリビューションに SELinux を含めると、SELinux は徐々に普及してきました。現在、SELinux は多くの組織で広く使用されており、ほぼすべての Linux カーネル バージョン 2.6 以降に SELinux 機能が統合されています。
初心者でもわかるSELinuxとは、Linux上に配備され、システムのセキュリティを強化する機能モジュールです。
従来の Linux システムでは、デフォルトのアクセス許可が、ファイルまたはディレクトリの所有者、グループ、その他のユーザーの読み取り、書き込み、および実行のアクセス許可を制御することであることがわかっています。この制御方法は、随意アクセス制御 ( DAC) メソッド; SELinux では、強制アクセス制御 (MAC) システム が使用され、プロセスが特定のファイル システム上のファイルまたはディレクトリへのアクセス権を持つかどうかを制御します。プロセスがファイルまたはディレクトリにアクセスできるかどうかは、SELinux で設定されている多くのポリシー ルールに依存します。
SELinux では、Linux のデフォルトの権限が引き続き有効であることに注意してください。つまり、ユーザーがファイルにアクセスできるようにするには、ユーザーの権限が rwx 権限に準拠する必要があります。 、ユーザーはプロセスが SELinux 規制に準拠することも求められます。しかし、システム内には非常に多くのプロセスやファイルがあり、これらを手動で割り当てて指定すると負荷が大きくなってしまいます。したがって、SELinux には比較的完全なデフォルトのポリシー ルールが多数用意されており、これらのポリシー ルールを表示および管理する方法については後ほど説明します。 読者に SELinux が果たす役割を明確に理解していただくために、ここに例を示します。Apache で脆弱性が発見され、リモート ユーザーがシステムの機密ファイル (/etc など) にアクセスできるようになったとします。 /影の多い)。 Linux で SELinux が有効になっている場合、Apache サービス プロセスには /etc/shadow にアクセスする権限がないため、Apache を介したリモート ユーザーの /etc/shadow ファイルへのアクセスは、Linux を保護する SELinux によってブロックされます。システムの役割。
1.件名 : ファイルまたはディレクトリのリソースにアクセスしようとするプロセスです。リソースを取得するための基本的なプロセスは次のとおりです。ユーザーがコマンドを呼び出し、コマンドによってプロセスが生成され、プロセスがファイルまたはディレクトリのリソースにアクセスします。任意のアクセス制御システム (Linux のデフォルトのアクセス許可) では、アクセス許可によって制御される主体はユーザーであり、必須のアクセス制御システム (SELinux) では、ポリシー ルールによって制御される主体はプロセスです。
2. オブジェクト (オブジェクト) : この概念は比較的明確であり、アクセスする必要があるファイルまたはディレクトリ リソースです。
3. ポリシー: Linux システムには膨大な数のプロセスとファイルがあるため、プロセスがファイルにアクセスできるかどうかを制限する SELinux ルールの数はさらに複雑になります。管理者が手動で設定を行うと、SELinux の可用性が非常に低くなります。幸いなことに、ルールを手動で定義する必要はありません。SELinux はデフォルトで 2 つのポリシーを定義します。ルールはこれら 2 つのポリシーに記述されています。デフォルトでは、ポリシーを呼び出すだけで通常どおり使用できます。
4. セキュリティ コンテキスト : 各プロセス、ファイル、ディレクトリには独自のセキュリティ コンテキストがあります。プロセスがファイルまたはディレクトリにアクセスできるかどうかは、このセキュリティ コンテキストが一致するかどうかによって決まります。プロセスのセキュリティ コンテキストがファイルまたはディレクトリのセキュリティ コンテキストと一致する場合、プロセスはファイルまたはディレクトリにアクセスできます。もちろん、プロセスのセキュリティ コンテキストがファイルまたはディレクトリのセキュリティ コンテキストと一致するかどうかを判断するには、ポリシー内のルールに依存する必要があります。
例えば、パートナーを探す場合、男性を主体、女性を対象とすることができます。男性が女性を追跡できるかどうか(被験者がターゲットにアクセスできるかどうか)は、主に二人の性格が適切かどうか(被験者とターゲットのセキュリティコンテキストが一致するかどうか)に依存します。ただし、二人の性格が適切であるかどうかは、生活習慣、行動、家庭環境などの特定の条件に基づいて判断する必要があります(セキュリティコンテキストが一致するかどうかは、ポリシーのルールによって判断する必要があります)。
図 1 に示すように、これらの概念間の関係を示す概略図を描きます。
図 1 SELinux 動作モードの関連概念
この図を説明します: サブジェクトがターゲットにアクセスしたいとき、システム内で SELinux が開始されている場合、サブジェクトのアクセスはリクエストはまず、SELinux で定義されたポリシーと一致する必要があります。プロセスがポリシーで定義されたルールに準拠している場合、アクセスが許可されます。このとき、プロセスのセキュリティ コンテキストとターゲットのセキュリティ コンテキストを照合できます。比較が失敗した場合、アクセスは拒否され、アクセス ベクター キャッシュがキャッシュされます。 AVC (Access Vector Cache) を介して渡され、主に SELinux に関連するすべてのアクセス統計を記録し、アクセス拒否情報を生成するために使用されます。セキュリティコンテキストが一致すれば、対象ファイルに正常にアクセスできます。もちろん、最終的にターゲット ファイルに本当にアクセスできるかどうかは、プロセス (サブジェクト) を作成したユーザーがターゲット ファイルに対する適切な読み取り、書き込み、および実行権限を持っているかどうかによって決まります。
SELinux を管理する場合、プロセスを制御するためにアクセスするプロセスのセキュリティ コンテキストと一致するか一致しないように、ファイルまたはディレクトリのセキュリティ コンテキスト を >変更するだけです。ファイルまたはディレクトリのリソースにアクセスできるかどうか、およびポリシー内の特定のルールは、ルールが多すぎて変更が複雑すぎるため、ほとんど変更されません。ただし、ルールを有効にするかどうかを手動で定義して、ルールのアクティブ化と非アクティブ化を制御できます。
SELinux の動作モード
SELinux には、無効、許可、強制の 3 つの動作モードがあり、各モードは Linux システムに適しています。さまざまなメリットを提供します。
作業モードを無効にする (オフ モード)
無効モードでは、SELinux がオフになり、デフォルトの DAC アクセス制御が行われます。という方法が使われます。このモードは、セキュリティの強化を必要としない環境に役立ちます。
たとえば、実行中のアプリケーションがユーザーから見ると正常に動作しているにもかかわらず、大量の SELinux AVC 拒否メッセージを生成している場合、最終的にはログ ファイルがいっぱいになり、システムが使用できなくなる可能性があります。この場合、最も簡単な解決策は SELinux を無効にすることですが、アプリケーションがアクセスするファイルに正しいセキュリティ コンテキストを設定することもできます。
SELinux を無効にする前に、システムで SELinux を再度使用できるかどうかを検討する必要があることに注意してください。将来、それを Enforcing または Permissive に設定することにした場合、システムは自動的に SELinux ファイル再処理マーキングを渡します。
SELinux を無効にする方法も非常に簡単で、設定ファイル /etc/selinux/config を編集し、テキスト内の SELINUX= を SELINUX=disabled に変更するだけで、システムを再起動すると SELinux が無効になります。
Permissive 動作モード (permissive モード)
Permissive モードでは、SELinux は有効ですが、セキュリティ ポリシー ルールが適用されます。そして強制されなかった。セキュリティ ポリシー ルールでアクセスを拒否する必要がある場合でも、アクセスは許可されます。ただし、アクセスを拒否する必要があることを示すメッセージがログ ファイルに送信されます。
SELinux Permissive モードは主に次の状況で使用されます:
現在の SELinux ポリシー ルールを確認する;
新しいアプリケーションをテストして、SELinux ポリシー ルールがこれらのプログラムに適用されたときにどのような影響を与えるかを確認する。
特定のサービスまたはアプリケーションが SELinux で正しく動作しなくなる問題を解決します。
場合によっては、audit2allow コマンドを使用して SELinux 監査ログを読み取り、拒否された動作を選択的に許可する新しい SELinux ルールを生成できますが、これは SELinux が無効になっていない場合でもあります。アプリケーションを Linux システム上で動作させます。
Enforcing 作業モード (enforcing モード)
このモードの名前からわかるように、Enforcing ではモードでは、SELinux が開始され、すべてのセキュリティ ポリシー ルールが適用されます。
関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がSELinux の 3 つの動作モードは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。