今日のインターネット時代では、ネットワーク セキュリティの問題がますます顕著になってきています。悪意のある攻撃や不正アクセスからシステムを保護するために、オペレーティング システムにはセキュリティ メカニズムに対するより高い要件が求められます。 SELinux (Security-Enhanced Linux) は、Linux カーネルのセキュリティ モジュールとして、強力なセキュリティ ポリシーとアクセス制御メカニズムを提供し、システムに追加のセキュリティを提供します。
1. SELinux の動作モード
SELinux は、従来の任意アクセス制御 (DAC) とは異なる強制アクセス制御 (MAC) メカニズムを採用しています。 DAC モードでは、アクセス制御はリソースの所有者に依存します。つまり、リソースのアクセス許可はリソースの所有者によって決定されます。 SELinux の MAC モードでは、プロセス、ファイル、ソケットなどを含むすべてのリソース アクセスが厳格な強制ポリシー制御の対象となります。これは、ユーザーが root 権限を取得した場合でも、SELinux 保護メカニズムをバイパスできないことを意味します。
SELinux では、各プロセスとオブジェクトに対応するセキュリティ コンテキストがあります。セキュリティ コンテキストは、サブジェクト ラベルとオブジェクト ラベルで構成され、サブジェクト ラベルはプロセスの権限を表し、オブジェクト ラベルはオブジェクトの権限を表します。リクエストが開始されると、SELinux はサブジェクト ラベルとオブジェクト ラベルのアクセス制御マトリックスに基づいてリクエストを許可するかどうかを決定します。
2. 具体的なコード例
次に、簡単なコード例を通じて SELinux の動作モードを示します。この例では、ファイルを開いてその内容を書き込む単純な C プログラムを作成します。 SELinux のセキュリティ ルールを使用して、このプログラムの権限を制限します。
まず、SELinux がシステムにインストールされ、SELinux が有効になっていることを確認する必要があります。次に、「selinux_example.c」という名前のファイルを作成し、次のコードを記述します。
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main() { char *file_path = "/tmp/example.txt"; char *content = "Hello, SELinux!"; int fd = open(file_path, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR); if (fd < 0) { perror("open"); return 1; } if (write(fd, content, sizeof(content)) < 0) { perror("write"); close(fd); return 1; } close(fd); return 0; }
このプログラムでは、「example.txt」という名前のファイルを開いて、「Hello , SELinux!」という内容を書き込もうとします。 」。次に、このプログラムの SELinux セキュリティ ポリシーを作成する必要があります。 「audit2allow」ツールを使用して一時的な SELinux ポリシーを生成し、このポリシーをロードできます。次のコマンドを実行します。
audit2allow -a -M my_selinux_example semodule -i my_selinux_example.pp
ポリシーを生成した後、コンパイルされたプログラムを実行すると、ファイルに正常に書き込むことができるはずです。その後、SELinux 監査ログを通じてアクセス許可の追跡と記録を確認できます。次のコマンドを実行します。
grep 'avc: ' /var/log/audit/audit.log | audit2why
上記のサンプル コードと手順を通じて、SELinux の動作モードとセキュリティ ポリシーを通じてシステムを保護する方法をより深く理解できます。 SELinux は、悪意のある攻撃や悪用からシステムを確実に保護するための強力なセキュリティ メカニズムを提供します。 SELinux についてさらに詳しく知りたい場合は、より関連する情報やドキュメントを参照して、セキュリティ ポリシーの作成方法と管理方法について学ぶことをお勧めします。
以上がSELinux の仕組みを調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。