ホームページ >運用・保守 >Linuxの運用と保守 >SELinux でポリシー ルールを表示するにはどのような方法がありますか?

SELinux でポリシー ルールを表示するにはどのような方法がありますか?

青灯夜游
青灯夜游オリジナル
2023-03-02 10:19:102859ブラウズ

SELinux でポリシー ルールを表示する方法: 1. seinfo コマンドを使用して、SELinux ポリシーが提供する関連ルールの数をクエリします。サブジェクト プロセスがターゲット ファイル リソースを読み取ることができるかどうかは、SELinux ポリシーとその内容に焦点を当てます。各ルールの構文は「seinfo [オプション]」です。 2. sesearch コマンドを使用して、SELinux ポリシー ルールの特定の内容をクエリします。構文は「sesearch [オプション] [ルール タイプ] [式]」です。

SELinux でポリシー ルールを表示するにはどのような方法がありますか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

SELinux ポリシー ルールを表示するには、seinfo と sesearch の 2 つの方法があります。

SELinux の現在のデフォルト ポリシーが対象となっていますが、このポリシーにはいくつのルールが含まれていますか? seinfo コマンドを使用してクエリを実行します。

seinfo コマンド は、SELinux ポリシーが提供する関連ルールの数を照会するために使用されます。対象プロセスがターゲット ファイル リソースを読み取れるかどうかは、SELinux ポリシーとポリシー内のさまざまな項目に焦点を当てます。ルールを選択し、このルールの定義を使用して、各ターゲット ファイルのセキュリティ コンテキスト、特に「タイプ」部分を処理します。

sesearch コマンドの形式は次のとおりです:

seinfo [选项]

共通オプション:

#すべての SELinux ロール タイプをリストします#-u#すべての SELinux ID (ユーザー) をリストします-bすべてのルールの種類のリスト (ブール値)参考例:
[root@localhost ~]# seinfo -b
#还记得-b选项吗?就是查询布尔值,也就是查询规则名字
Conditional Booleans:187
#当前系统中有187个规则
allow_domain_fd_use
allow_ftpd_full_access
allow_sysadm_exec_content
allow_user_exec_content
allow_zebra_write_config
…省略部分输出…
-a SELinux のステータスとルールを一覧表示します。ブール値、識別、役割、タイプ、およびその他の情報
-t すべての SELinux タイプのタイプをリストします
-r

seinfo

このコマンドではすべてのルールの名前のみが表示されます。ルールの具体的な内容を知りたい場合は、

sesearch コマンド を使用する必要があります。 sesearch コマンドの形式は次のとおりです:

sesearch [选项] [规则类型] [表达式]

オプション:

-h: ヘルプ情報の表示;
  • ルール タイプ:

--allow: 許可されたルールを表示;
  • --neverallow: 決して許可されなかったルールを表示;
  • --all: すべてのルールを表示;
  • 式:

-s 件名タイプ: 表示指定されたサブジェクトのタイプに関連するルール (サブジェクトはアクセスの開始者であり、これはソース、つまりソース タイプを意味します);
  • -t ターゲット タイプ:ターゲットの種類に関連するルールを表示および指定します (ターゲットは訪問者です。これはターゲット、つまりターゲットの種類を意味します);
  • #-b ルール名: 表示ルールの具体的な内容 ( b はブール値を意味し、ここではルール名を指します);
  • 以下にいくつかの例を示します。まず、ルールの名前がわかっている場合に、特定のルールの内容をクエリする方法を示します。コマンドは次のとおりです:
  • [root@localhost ~]# seinfo -b | grep http
    httpd_manage_ipa
    …省略部分输出…
    #查询和apache相关的规则,有httpd_manage_ipa规则
    [root@localhost ~]# sesearch --all -b httpd_manage_ipa
    # httpd_manage_ipa规则中具体定义了哪些规则内容呢?使用sesearch命令查询一下
    Found 4 semantic av rules:
    allow httpd_t var_run_t:dir { getattr search open } ;
    allow httpd_t memcached_var_run_t:file { ioctl read write create getattr setattr lock append unlink link rename open } ;
    allow httpd_t memcached_var_run_t:dir { ioctl read write getattr lock add_name remove_name search open } ;
    allow httpd_t var_t:dir { getattr search open } ;
    Found 20 role allow rules:
    allow system_r sysadm_r;
    allow sysadm_r system_r;
    …省略部分输出…
各ルールは、多数の特定のルール コンテンツを定義します。これらのコンテンツは比較的複雑で、通常は変更する必要はありません。クエリを実行できるだけです。

しかし、場合によっては、ルールの名前ではなく、セキュリティ コンテキストの種類がわかっていることがあります。たとえば、Apache プロセスのドメインは httpd_t で、/var/www/html/ ディレクトリのタイプは httpd_sys_content_t であることがわかります。 Apache が /var/www/html/ ディレクトリにアクセスできるのは、httpd_t ドメインと httpd_sys_content_t タイプが一致するためです。

では、これら 2 つのタイプの一致ルールをクエリするにはどうすればよいでしょうか?コマンドは次のとおりです:

[root@localhost ~]# ps auxZ | grep httpd
unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 36X6 ? Ss
03:44 0:03 /usr/sbin/httpd
#apache进程的域是httpd_t
[root@localhost ~]# ls -Zd /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
#/var/www/html/ 目录的类型是 httpd_sys_content_t
[root@localhost ~]# sesearch --all -s httpd_t -t httpd_sys_content_t Found 13 semantic av rules:
...省略部分输出...
allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open };
allow httpd_t httpd_sys_content_t : dir { ioctl read getattr lock search open };
allow httpd_t httpd_sys_content_t : lnk_file { read getattr };
allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open };
...省略部分输出...
#可以清楚地看到httpd_t域是允许访间和使用httpd_sys_content_t类型的

関連する推奨事項: "

Linux ビデオ チュートリアル

"

以上がSELinux でポリシー ルールを表示するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。