Как я могу запросить все правила selinux / контексты файла по умолчанию / и т.д., влияющие на тип

10

Мне нужно знать все, что связано с типом selinux в текущих правилах работающей системы :

  • разрешить, разрешить, правила, донтаудить.
  • файлы, помеченные контекстом с использованием типа.
  • переходы.

... и любая другая информация.

Есть ли какие-либо команды, которые я могу использовать для запроса этой информации, или я должен загрузить все пакеты src, относящиеся к selinux, отфильтровать модули, которые не используются, и выполнить поиск каждого файла с этой информацией? Должен быть более простой способ сделать это.

Янко Эрнандес Альварес
источник

Ответы:

10

Вот некоторые из команд для получения этой информации (примеры использования 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

Дауд
источник
Есть ли способ узнать, какие модули используют указанный тип? т.е. как подключить эту информацию к загруженному модулю политики selinux (semodule -l)?
Янко Эрнандес Альварес
Хорошо, я уменьшу объем вопроса, чтобы пометить этот ответ как принятый и отделить первый аспект от другого вопроса.
Янко Эрнандес Альварес
@ YankoHernándezÁlvarez, верьте или нет, я пытаюсь это выяснить. Я опубликовал свои выводы в другом вопросе.
Дауд
Для тех, кто ищет, этот другой вопрос здесь .
Майкл Мол