A configuração do SELinux é fornecida por selinux-policy-targeted
package, que contém a configuração de política padrão para a distribuição, incluindo a configuração do SELinux para o tomcat.
Eu poderia encontrar dois esboços de empacotamento antigos do Fedora descrevendo a configuração do SELinux no pacote RPM.
PackagingDrafts / SELinux sugere a inclusão da configuração de rotulagem de arquivo nas seções %post
e %postun
do arquivo de especificação por executando semanage fcontext -a
e semanage fcontext -d
respectivamente e executando restorecon
/ fixfiles
depois.
É útil observar, conforme apontado por , que usando semanage
em %pre
ou %post
seções de especificação adicionará a pilha python completa junto com policycoreutils-python
como dependência de tempo de instalação. Usar restorecon
adicionará policycoreutils
, o que, por sua vez, gera sed
, gawk
e grep
, como dependências de tempo de instalação.
Uma maneira melhor de fornecer as regras de rotulagem de arquivo requeridas seria por um módulo de política do SELinux. Os módulos de política fornecem uma interface mais clara para gerenciar a política modular (as regras de rotulagem não são misturadas com modificações locais feitas com semanage
).
Para seu módulo de política com regras de rotulagem de arquivo, você precisa fornecer um arquivo de rotulagem de contexto de arquivo e arquivo de imposição de tipo. O arquivo de imposição de tipo é obrigatório mesmo se você não adicionar nenhuma modificação à política. Um exemplo de arquivo de imposição de tipo fictício mymodule.te
:
policy_module(mymodule, 1.0)
As regras de rotulagem de arquivos estão em mymodule.fc
e seguem as mesmas:
/path/to/file -- gen_context(system_u:object_r:type_t,s0)
Com selinux-policy-devel
, o pacote do módulo pode ser compilado com [nota 1] :
make -f /usr/share/selinux/devel/Makefile
Em relação aos módulos de política de empacotamento, Módulo de Política do SELinux Embalagem
também recomenda o uso das seções %post
e %postun
do arquivo de especificação para instalar a política usando semodule
e restorecon
/ fixfiles
. Um arquivo de especificação de exemplo também é fornecido.
[note 1] O exemplo de módulo de política pode ser gerado sem selinux-policy-devel
usando checkmodule
e semodule_package
diretamente. Isso exigiria que os arquivos de políticas fossem gravados sem macros.