Capítulo 8. Criação de políticas SELinux para contêineres
A RHEL 8 fornece uma ferramenta para gerar políticas SELinux para recipientes utilizando o pacote udica
. Com udica
, você pode criar uma política de segurança sob medida para melhor controle de como um contêiner acessa os recursos do sistema host, tais como armazenamento, dispositivos e rede. Isto permite que você endureça suas implementações de contêineres contra violações de segurança e também simplifica a obtenção e manutenção da conformidade regulamentar.
8.1. Introdução ao gerador de políticas da udica SELinux
Para simplificar a criação de novas políticas SELinux para recipientes personalizados, a RHEL 8 fornece o utilitário udica
. Você pode usar esta ferramenta para criar uma política baseada em uma inspeção do arquivo JavaScript Object Notation (JSON) do contêiner, que contém capacidades Linux, pontos de montagem e definições de portas. Consequentemente, a ferramenta combina regras geradas usando os resultados da inspeção com regras herdadas de um bloco específico de Linguagem Intermediária Comum (CIL) SELinux.
O processo de geração da política SELinux para um contêiner utilizando udica
tem três partes principais:
- Analisando o arquivo de especificação do recipiente no formato JSON
- Encontrar regras de permissão adequadas com base nos resultados da primeira parte
- Gerando a política final da SELinux
Durante a fase de análise, udica
procura por capacidades Linux, portas de rede e pontos de montagem.
Com base nos resultados, udica
detecta quais capacidades Linux são requeridas pelo contêiner e cria uma regra SELinux que permite todas essas capacidades. Se o contêiner se liga a uma porta específica, udica
utiliza bibliotecas de espaço de usuário SELinux para obter a etiqueta SELinux correta de uma porta que é utilizada pelo contêiner inspecionado.
Posteriormente, udica
detecta quais diretórios são montados no espaço de nome do sistema de arquivos do contêiner a partir do host.
O recurso de herança em bloco da CIL permite que udica
crie modelos da SELinux allow rules com foco em uma ação específica, por exemplo:
- allow accessing home directories
- allow accessing log files
- allow accessing communication with Xserver.
Estes modelos são chamados de blocos e a política final da SELinux é criada através da fusão dos blocos.
Recursos adicionais
-
Para mais detalhes sobre o processo de geração de uma política SELinux com
udica
, veja o artigo Generate SELinux policies for containers with udica Red Hat Blog.