특정 SELinux "fcontext"를 사용하여 파일 시스템에서 모든 파일을 찾고 나열하는 방법

특정 SELinux "fcontext"를 사용하여 파일 시스템에서 모든 파일을 찾고 나열하는 방법

SELinux에 의해 특정 파일 컨텍스트()로 표시된 파일 시스템의 모든 파일을 setools찾는 데 사용해야 하는 명령(아마도)에 대한 정보를 찾을 수 없습니다 .fcontext


이제 난 할 수 있어수동파일과 해당 fcontext파일을 나열한 /etc/selinux/targeted/contexts/files다음 보고 싶은 특정 콘텐츠를 나열합니다 grep.fcontext

[root@FedPadSSD files]# cat file_contexts |grep ifconfig_exec_t
/bin/ip --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ip        --      system_u:object_r:ifconfig_exec_t:s0
/sbin/tc        --      system_u:object_r:ifconfig_exec_t:s0
/usr/bin/ip     --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ip    --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/tc    --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ethtool   --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ifconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/iwconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/mii-tool  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ethtool       --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ifconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iwconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/mii-tool      --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_configure     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_interface     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_internal_net  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_configure --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_interface --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_internal_net      --      system_u:object_r:ifconfig_exec_t:s0

이 작업을 수행할 때의 문제는 대부분의 경우 뭔가 잘못되었거나 누락되었거나 불완전한 것처럼 보인다는 것입니다.수동SELinux "데이터베이스"(더 나은 단어가 없음)와 관련되어 있기 때문입니다. setools따라서 시스템 전체 구성 파일을 사용하지 않고도 이 작업을 수행할 수 있는 패키지나 관련 패키지에 이미 존재하는 것이 있는지 궁금합니다 .

답변1

semanage fcontext -l | grep whatever_exec_t아마도 특정 컨텍스트에 대한 태그 규칙을 찾는 가장 좋은 방법일 것입니다.

태그 규칙 대신 현재 파일 컨텍스트를 검색하려면 ls -ZSELinux 인식 find지원 -context <glob>테스트 및 %Z형식 지정자를 사용할 수 있습니다 -printf. 전체 컨텍스트 문자열이 일치하므로 <glob>와일드카드는 유형을 일치시킬 때만 사용됩니다. 내 Centos 7.3의 예:

#find / -xdev -type f -context '*ifconfig_exec_t*' -printf '%-50Z%p\n'
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ip
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/ifconfig
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ethtool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/iw
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/mii-tool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/tc

답변2

배포 패키지 ifconfig_selinux매뉴얼 페이지(Fedora에 포함되어 있는 경우)selinux 전략 개발) 다음 내용을 알려줍니다.

   The following file types are defined for ifconfig:

   ifconfig_exec_t

   - Set files with the ifconfig_exec_t type, if you want to transition an
   executable to the ifconfig_t domain.

   Paths:
        /bin/ip,    /sbin/ip,    /sbin/tc,    /usr/bin/ip,   /usr/sbin/ip,
        /usr/sbin/tc,   /sbin/ethtool,   /sbin/ifconfig,   /sbin/iwconfig,
        /sbin/mii-tool,       /usr/sbin/ethtool,       /usr/sbin/ifconfig,
        /usr/sbin/iwconfig,    /usr/sbin/mii-tool,    /sbin/ipx_configure,
        /sbin/ipx_interface, /sbin/ipx_internal_net, /usr/sbin/ipx_config‐
        ure, /usr/sbin/ipx_interface, /usr/sbin/ipx_internal_net

ifconfig_exec_t를 사용하면 sesearch -all -t ifconfig_exec_tifconfig_exec_t가 대상으로 하는 파일에서 어떤 변환이 수행되는지 확인할 수 있으며, 이는 해당 컨텍스트가 있는 파일을 찾는 데 도움이 될 수 있습니다.

답변3

현재 RHEL7.1에서 - 이것이 항상 거기에 있었고 놓쳤는지 확실하지 않습니다. 다음 명령을 실행하여 모든 파일 컨텍스트 목록을 가져온 다음 출력을 다음으로 파이프할 수 있습니다 grep.

# semanage fcontext -l |grep ifconfig_exec_t
/bin/ip                                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ethtool                                      regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ifconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ip                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_configure                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_interface                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_internal_net                             regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iw                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iwconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/mii-tool                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/tc                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/bin/ip                                        regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ethtool                                  regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ifconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ip                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_configure                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_interface                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_internal_net                         regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iw                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iwconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/mii-tool                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/tc                                       regular file       system_u:object_r:ifconfig_exec_t:s0

답변4

find 명령을 사용하면 보안 컨텍스트별로 검색할 수 있습니다.

예를 들어 "unlabeled_t" 유형의 모든 파일을 검색해 보겠습니다.

find / -type f -context *unlabeled_t*

첫 번째 부분인 "find / -type f"는 시스템의 모든 일반 파일을 검색하도록 지시합니다.

"-context *unlabeled_t*" 필터는 unlabeled_t 유형의 모든 파일을 표시합니다. 시작 부분의 사용자/역할이나 끝 부분의 MLS/MCS 컨텍스트에 관심이 없기 때문에 시작과 끝 부분에 와일드카드를 사용해야 합니다.

관련 정보