Назад | Перейти на главную страницу

Просмотр пользовательских политик selinux

Есть ли способ просмотреть все настраиваемые политики, применяемые к SELinux, желательно свести их все в один «пакет» политик?

Я только что провел последнюю неделю или около того, работая над серией ошибок SELinux, когда определенный процесс (обновление awstats из сценариев logrotate, FWIW) пытался запустить. С SELinux в разрешающем режиме я бы дождался запуска logrotate, просмотрел блоки SELinux в журнале аудита, запустил audit2allow для создания разрешающей политики, а затем повторил бы процесс на следующий день с совершенно новым списком связанных ошибок. Наконец, сегодня утром журнал аудита стал чистым, так что я думаю, что у меня есть все необходимые правила, позволяющие скриптам работать правильно.

Конечно, я не думал об этом, пока тщательно продумывал этот процесс, поэтому у меня нет всех файлов .pp / .te, созданных в процессе. Итак, что я хотел бы сделать, это вытащить все активные в настоящее время пользовательские политики обратно из SELinux, чтобы у меня была резервная копия для использования на других машинах или восстановления. Это возможно?

Изменить: это на машине с CentOS 6.7, если это имеет значение

Этот ответ заимствован из этот вопрос. Хотя он не совсем отвечает на вопрос о просмотре всех настраиваемых политик 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 руководство

Начиная с RHEL 7:

 semanage export 

следует экспортировать все локальные изменения конфигурации.