Есть ли способ просмотреть все настраиваемые политики, применяемые к SELinux, желательно свести их все в один «пакет» политик?
Я только что провел последнюю неделю или около того, работая над серией ошибок SELinux, когда определенный процесс (обновление awstats из сценариев logrotate, FWIW) пытался запустить. С SELinux в разрешающем режиме я бы дождался запуска logrotate, просмотрел блоки SELinux в журнале аудита, запустил audit2allow для создания разрешающей политики, а затем повторил бы процесс на следующий день с совершенно новым списком связанных ошибок. Наконец, сегодня утром журнал аудита стал чистым, так что я думаю, что у меня есть все необходимые правила, позволяющие скриптам работать правильно.
Конечно, я не думал об этом, пока тщательно продумывал этот процесс, поэтому у меня нет всех файлов .pp / .te, созданных в процессе. Итак, что я хотел бы сделать, это вытащить все активные в настоящее время пользовательские политики обратно из SELinux, чтобы у меня была резервная копия для использования на других машинах или восстановления. Это возможно?
Изменить: это на машине с CentOS 6.7, если это имеет значение
Этот ответ заимствован из этот вопрос. Хотя он не совсем отвечает на вопрос о просмотре всех настраиваемых политик SELinux, применяемых к машине, он предоставляет набор инструментов, которые вы хотели бы использовать, чтобы увидеть любые настраиваемые политики или немного сузить его.
Вот некоторые команды для получения этой информации (в примерах используется httpd_log_t
):
seinfo
# seinfo -x --type=httpd_log_t /etc/selinux/default/policy/policy.26
httpd_log_t
file_type
non_security_file_type
logfile
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 ;
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
следует экспортировать все локальные изменения конфигурации.