>운영 및 유지보수 >리눅스 운영 및 유지 관리 >SELinux에서 정책 규칙을 보는 방법은 무엇입니까?

SELinux에서 정책 규칙을 보는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2023-03-02 10:19:102880검색

SELinux에서 정책 규칙을 보는 방법: 1. seinfo 명령을 사용하여 SELinux 정책이 제공하는 관련 규칙 수를 쿼리합니다. 대상 프로세스가 대상 파일 리소스를 읽을 수 있는지 여부는 SELinux 정책과 정책의 규칙에 중점을 둡니다. 2. sesearch 명령을 사용하여 SELinux 정책 규칙의 특정 내용을 쿼리합니다. 구문은 "sesearch [옵션] [규칙 유형] [표현식]"입니다.

SELinux에서 정책 규칙을 보는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: 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

seinfo 명령

은 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 명령

을 사용해야 합니다.

    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.