Como posso consultar todas as regras do selinux / contextos de arquivo padrão / etc que afetam um tipo


10

Preciso saber tudo relacionado a um tipo selinux nas regras atuais de um sistema em execução :

  • permitir, permitir, auditar, regras de auditoria.
  • arquivos rotulados com um contexto usando o tipo
  • transições.

... e qualquer outra informação.

Existe algum comando que eu possa usar para consultar essas informações ou devo baixar todos os pacotes "src" relacionados ao selinux, filtrar os módulos que não estão em uso e grep todos os arquivos para essas informações? Deve haver uma maneira mais fácil de fazer isso.

Respostas:


10

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


existe alguma maneira de saber quais módulos usam um tipo especificado? ou seja, como conectar essas informações ao módulo de política selinux carregado (semodule -l)?
Yanko Hernández Álvarez

OK, reduzirei o escopo da pergunta para marcar esta resposta como aceita e separarei o primeiro aspecto de outra pergunta.
Yanko Hernández Álvarez

@ YankoHernándezÁlvarez acredite ou não, estou tentando descobrir isso. Postei minhas descobertas em outra pergunta.
dawud

Para quem procura, essa outra pergunta está aqui .
Michael Mol
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.