집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >SELinux에서 정책 규칙을 보는 방법은 무엇입니까?
SELinux에서 정책 규칙을 보는 방법: 1. seinfo 명령을 사용하여 SELinux 정책이 제공하는 관련 규칙 수를 쿼리합니다. 대상 프로세스가 대상 파일 리소스를 읽을 수 있는지 여부는 SELinux 정책과 정책의 규칙에 중점을 둡니다. 2. sesearch 명령을 사용하여 SELinux 정책 규칙의 특정 내용을 쿼리합니다. 구문은 "sesearch [옵션] [규칙 유형] [표현식]"입니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
SELinux 정책 규칙을 보는 방법에는 seinfo와 sesearch의 두 가지가 있습니다.
현재 SELinux의 기본 정책이 대상인데 이 정책에는 몇 개의 규칙이 포함되어 있나요? 쿼리하려면 seinfo
명령을 사용하세요. seinfo
命令即可查询。
seinfo命令是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。
sesearch 命令格式如下:
seinfo [选项]
常用选项:
-a | 列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息 |
-t | 列出SELinux所有类型(type)的种类 |
-r | 列出SELinux所有角色(role)的种类 |
-u | 列出SELinux所有身份识别(user)的种类 |
-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 …省略部分输出…
seinfo
命令只能看到所有规则的名称,如果想要知道规则的具体内容,就需要使用 sesearch
은 SELinux 정책이 제공하는 관련 규칙 수를 쿼리하는 데 사용됩니다. 대상 프로세스가 대상 파일 리소스를 읽을 수 있는지 여부는 SELinux 정책과 정책 내의 규칙에 중점을 두고 규칙을 정의합니다. 각 대상 파일, 특히 "유형" 부분을 처리하기 위한 보안 컨텍스트입니다.
sesearch 명령 형식은 다음과 같습니다:
sesearch [选项] [规则类型] [表达式]
-a | 모든 SELinux 상태, 규칙 부울 값, 식별, 역할, 유형 및 기타 정보 나열 |
-t | 모든 SELinux 정보 나열 유형 유형 |
-r | SELinux의 모든 역할 유형 나열 |
-u | SELinux의 모든 식별(사용자) 유형 나열 |
-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; …省略部分输出…
seinfo
명령은 모든 규칙의 이름만 볼 수 있습니다. 규칙의 특정 내용을 알고 싶다면, sesearch
명령을 사용해야 합니다.
[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类型的
옵션:
-h: 도움말 정보 표시;
규칙 유형:
--allow: 허용된 규칙 표시; neverallow : 절대 허용되지 않는 규칙을 표시합니다.
표현:
-s 주제 유형: 지정된 주제 유형과 관련된 규칙을 표시합니다. access 개시자, 이는 소스, 즉 소스 유형을 의미합니다.
-t 대상 유형: 지정된 대상의 유형과 관련된 규칙을 표시합니다(대상은 방문자이며, 이 t는 대상을 의미합니다.
-b 규칙 이름: 규칙의 특정 내용을 표시합니다. (b는 부울 값을 의미하며 여기서는 규칙 이름을 나타냅니다.)
다음은 몇 가지 예입니다. 먼저 규칙 이름을 알고 있는 경우 특정 규칙 내용을 쿼리하는 방법을 살펴보겠습니다. 명령은 다음과 같습니다.
rrreee각 규칙은 다수의 특정 규칙 내용을 정의합니다. 이러한 내용은 상대적으로 복잡하며 일반적으로 쿼리할 필요가 없습니다.
그러나 때때로 우리는 규칙의 이름보다는 보안 컨텍스트의 유형을 알고 있습니다. 예를 들어, Apache 프로세스의 도메인은 httpd_t이고 /var/www/html/ 디렉토리의 유형은 httpd_sys_content_t라는 것을 알고 있습니다. Apache가 /var/www/html/ 디렉토리에 접근할 수 있는 이유는 httpd_t 도메인과 httpd_sys_content_t 유형이 일치하기 때문입니다. 그렇다면 이 두 유형의 일치 규칙을 어떻게 쿼리할 수 있을까요? 명령은 다음과 같습니다:
rrreee🎜관련 권장 사항: "🎜Linux Video Tutorial🎜"🎜위 내용은 SELinux에서 정책 규칙을 보는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!