Visualizar políticas personalizadas do selinux

4

Existe uma maneira de visualizar todas as políticas personalizadas aplicadas ao SELinux, de preferência rolando-as em um "pacote" de política?

Acabei de passar a última semana trabalhando com uma série de erros do SELinux quando um determinado processo (awstats update de logrotate scripts, FWIW) tentou rodar. Com o SELinux no modo permissivo, eu esperaria o logrotate rodar, visualizar os blocos do SELinux no log de auditoria, executar o audit2allow para criar uma política de permissão e, em seguida, repetir o processo no dia seguinte com uma lista totalmente nova de erros relacionados. Finalmente, esta manhã, o log de auditoria ficou limpo, então acho que tenho todas as regras necessárias para permitir que os scripts sejam executados corretamente.

Claro que eu não estava pensando enquanto eu corria todo esse processo, então eu não tenho todos os arquivos .pp / .te criados ao longo do caminho. Então, o que eu gostaria de fazer é retirar todas as políticas personalizadas atualmente ativas do SELinux, para que eu possa ter uma cópia de backup para uso em outras máquinas ou restaurações. Isso é possível?

Edit: Isto está em uma máquina rodando o CentOS 6.7, se isso faz diferença

    
por ibrewster 31.12.2015 / 18:38

2 respostas

1

A partir do RHEL 7:

 semanage export 

deve exportar todas as alterações de configuração locais.

    
por 26.01.2018 / 17:08
0

Esta resposta é emprestada de essa questão . exatamente responder à questão de ver todas as políticas SELinux personalizadas aplicadas à máquina, ele fornece o conjunto de ferramentas que você gostaria de usar para ver qualquer política personalizada ou reduzi-la um pouco.

Alguns dos comandos para obter esta informação são (exemplos usam 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
    

Referências: Manual do RHEL6 SELinux

    
por 19.07.2017 / 02:51

Tags