A partir do RHEL 7:
semanage export
deve exportar todas as alterações de configuração locais.
Existe uma maneira de visualizar todas as políticas personalizadas aplicadas ao SELinux, de preferência rolando-as em um "pacote" de política?
Acabei de passar a última semana trabalhando com uma série de erros do SELinux quando um determinado processo (awstats update de logrotate scripts, FWIW) tentou rodar. Com o SELinux no modo permissivo, eu esperaria o logrotate rodar, visualizar os blocos do SELinux no log de auditoria, executar o audit2allow para criar uma política de permissão e, em seguida, repetir o processo no dia seguinte com uma lista totalmente nova de erros relacionados. Finalmente, esta manhã, o log de auditoria ficou limpo, então acho que tenho todas as regras necessárias para permitir que os scripts sejam executados corretamente.
Claro que eu não estava pensando enquanto eu corria todo esse processo, então eu não tenho todos os arquivos .pp / .te criados ao longo do caminho. Então, o que eu gostaria de fazer é retirar todas as políticas personalizadas atualmente ativas do SELinux, para que eu possa ter uma cópia de backup para uso em outras máquinas ou restaurações. Isso é possível?
Edit: Isto está em uma máquina rodando o CentOS 6.7, se isso faz diferença
A partir do RHEL 7:
semanage export
deve exportar todas as alterações de configuração locais.
Esta resposta é emprestada de essa questão . exatamente responder à questão de ver todas as políticas SELinux personalizadas aplicadas à máquina, ele fornece o conjunto de ferramentas que você gostaria de usar para ver qualquer política personalizada ou reduzi-la um pouco.
Alguns dos comandos para obter esta informação são (exemplos usam 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
Referências: Manual do RHEL6 SELinux
Tags selinux