SELinux (Security-Enhanced Linux) は、Linux システムに強制アクセス制御 (MAC) を実装するセキュリティ モジュールです。システム オブジェクト (ファイル、プロセスなど) にラベルを適用することでセキュリティ ポリシーを適用し、よりきめ細かいアクセス制御を実現します。 SELinux には、Enforcing、Permissive、Disabled の 3 つの動作モードがあります。この記事では、これら 3 つのモードを詳細に紹介し、具体的なコード例を示します。
1. 強制モード
強制モードは、SELinux ポリシーを強制し、違反を拒否してログに記録する、最も安全で推奨されるモードです。強制モードでは、システムは不正アクセスを拒否し、対応するログ レコードを生成します。強制モードを理解するには、次のコード例を参照して、ファイルの SELinux ラベルを設定し、それにアクセスしてみる方法を示します。
# 创建测试文件 touch testfile # 查看文件的SELinux标签 ls -Z testfile # 修改文件的SELinux标签为httpd_sys_content_t类型 chcon -t httpd_sys_content_t testfile # 尝试访问文件 cat testfile
上の例では、testfile および SELinux という名前のファイルを作成しました。ラベルはタイプ httpd_sys_content_t に設定されます。このファイルを読み取ろうとすると、ファイルのラベルが現在のプロセスのラベルと一致しないため、アクセスが拒否されます。
2. パーミッシブ モード
パーミッシブ モードを使用すると、システム管理者は実際にアクセス要求を傍受することなく SELinux ポリシーをテストできます。 Permissive モードでは、SELinux はアクセス違反をログに記録しますが、アクセス違反を拒否しません。このモードは通常、新しい SELinux ポリシーのデバッグとテストに使用されます。以下は、Permissive モードでログ レコードを表示する方法を示す例です。
# 查看当前SELinux模式 sestatus # 切换SELinux模式为Permissive setenforce 0 # 尝试访问被禁止的文件 cat /etc/shadow # 查看SELinux日志记录 cat /var/log/audit/audit.log
上記の例では、SELinux モードを Permissive に切り替え、/etc/shadow ファイルの読み取りを試みます。ログ レコードはブロックされたアクセスに関する情報を表示しますが、実際のアクセスは引き続き許可されます。
3. 無効モード
無効モードでは、SELinux が完全に無効になり、SELinux に関連するアクセス制御と保護手段がすべてキャンセルされます。システムのセキュリティに影響を与えるため、これは最も推奨されないモードです。無効モードでは、システムは SELinux ポリシーを実行せず、不正なアクセスを記録しません。以下は、SELinux を無効にする方法を示す例です。
# 查看当前SELinux模式 sestatus # 禁用SELinux setenforce 0 # 查看当前SELinux模式 sestatus
上の例では、setenforce コマンドを使用して SELinux を無効にし、sestatus コマンドを使用して SELinux が無効モードであることを確認しました。
要約: SELinux の 3 つの動作モードを理解することは、システムのセキュリティとアクセス制御にとって重要です。 Enforcing モードは最高レベルの保護を提供し、Permissive モードはデバッグとテストに使用され、Disabled モードはシステムのセキュリティを確保するために避ける必要があります。上記の具体的なコード例を通じて、読者が SELinux の動作モードとその利点と欠点についてより深く理解できることを願っています。
以上がSELinux の 3 つの動作モードに精通しているの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。