查看自定义 selinux 策略

查看自定义 selinux 策略

有没有办法查看应用于 SELinux 的所有自定义策略,最好将它们全部汇总到一个策略“包”中?

我花了大约一周的时间处理了一系列 SELinux 错误,这些错误是某个进程(awstats 从 logrotate 脚本更新,仅供参考)尝试运行时出现的。在 SELinux 处于宽容模式时,我会等待 logrotate 运行,查看审计日志中的 SELinux 块,运行 audit2allow 以创建允许策略,然后在第二天使用一整套新的相关错误列表重复该过程。最后,今天早上审计日志变得干净了,所以我认为我已经制定了所有必要的规则来允许脚本正常运行。

当然,我在执行此过程时没有考虑,因此我没有在此过程中创建的所有 .pp/.te 文件。因此,我想要做的是将所有当前活动的自定义策略从 SELinux 中拉出来,这样我就可以拥有一个备份副本,以便在其他机器上使用或进行恢复。这可能吗?

编辑:这是在运行 CentOS 6.7 的机器上,如果这有区别的话

答案1

从 RHEL 7 开始:

 semanage export 

应该导出所有本地配置更改。

答案2

这个答案借用自这个问题尽管它不能准确回答查看应用于机器的所有自定义 SELinux 策略的问题,但它确实提供了您想要使用的一组工具,以便查看任何自定义策略或将其缩小一点。


获取此信息的一些命令是(示例使用httpd_log_t):

  1. seinfo

    # seinfo -x --type=httpd_log_t /etc/selinux/default/policy/policy.26
       httpd_log_t
          file_type
          non_security_file_type
          logfile
    
  2. sesearch

    # sesearch --dontaudit -t httpd_log_t /etc/selinux/default/policy/policy.26 | head
    Found 35 semantic av rules:
        dontaudit run_init_t file_type : dir { getattr search open } ;
        dontaudit staff_t non_security_file_type : file getattr ;
        dontaudit staff_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit staff_t non_security_file_type : lnk_file getattr ;
        dontaudit staff_t non_security_file_type : sock_file getattr ;
        dontaudit staff_t non_security_file_type : fifo_file getattr ;
        dontaudit unconfined_t non_security_file_type : file getattr ;
        dontaudit unconfined_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit unconfined_t non_security_file_type : lnk_file getattr ;
    
  3. semanage

    # semanage fcontext -l | grep httpd_log_t
    /etc/httpd/logs                                    all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache(2)?(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache-ssl(2)?(/.*)?                      all files          system_u:object_r:httpd_log_t:s0
    /var/log/cacti(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/cgiwrap\.log.*                            regular file       system_u:object_r:httpd_log_t:s0
    /var/log/horde2(/.*)?                              all files          system_u:object_r:httpd_log_t:s0
    /var/log/httpd(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/lighttpd(/.*)?                            all files          system_u:object_r:httpd_log_t:s0
    /var/log/piranha(/.*)?                             all files          system_u:object_r:httpd_log_t:s0
    /var/www(/.*)?/logs(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    

参考:RHEL6 SELinux 手册

相关内容