¿Cómo puedo consultar todas las reglas de selinux / contextos de archivo predeterminados / etc. que afectan a un tipo


10

Necesito saber todo lo relacionado con un tipo de selinux en las reglas actuales de un sistema en ejecución :

  • permitir, permitir auditar, no auditar reglas.
  • archivos etiquetados con un contexto usando el tipo.
  • transiciones

... y cualquier otra información.

¿Hay algún comando que pueda usar para consultar esa información o debo descargar todos los paquetes "src" relacionados con selinux, filtrar los módulos que no están en uso y grep cada archivo para esa información? Debe haber una manera más fácil de hacer eso.

Respuestas:


10

Algunos de los comandos para obtener esta información son (uso de ejemplos 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
    

Referencias: manual de RHEL6 SELinux


¿Hay alguna manera de saber qué módulos usan un tipo específico? es decir, ¿cómo conectar esa información al módulo de política de selinux cargado (semodule -l)?
Yanko Hernández Álvarez

OK, reduciré el alcance de la pregunta para marcar esta respuesta como aceptada y separaré el primer aspecto de otra pregunta.
Yanko Hernández Álvarez

@ YankoHernándezÁlvarez lo creas o no, estoy tratando de resolverlo. He publicado mis hallazgos en otra pregunta.
dawud

Para aquellos que buscan, esa otra pregunta está aquí .
Michael Mol
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.