Capítulo 4. Configuração do SELinux para aplicações e serviços com configurações não padronizadas
Quando a SELinux está em modo de aplicação, a política padrão é a política direcionada. As seções seguintes fornecem informações sobre como configurar e configurar a política SELinux para vários serviços depois de alterar os padrões de configuração, tais como portas, localização de bancos de dados ou permissões de sistema de arquivos para processos.
Nos procedimentos seguintes, você aprende a mudar os tipos de SELinux para portas não padrão, a identificar e corrigir etiquetas incorretas para mudanças de diretórios padrão, e a ajustar a política usando booleans SELinux.
4.1. Personalizando a política SELinux para o servidor HTTP Apache em uma configuração não-padrão Copiar o linkLink copiado para a área de transferência!
Você pode configurar o servidor HTTP Apache para ouvir em uma porta diferente e fornecer conteúdo em um diretório não padrão. Para evitar negações conseqüentes do SELinux, siga os passos deste procedimento para ajustar a política SELinux de seu sistema.
Pré-requisitos
-
O pacote
httpd
está instalado e o servidor HTTP Apache está configurado para ouvir na porta TCP 3131 e para usar o diretório/var/test_www/
ao invés do diretório/var/www/
padrão. -
Os pacotes
policycoreutils-python-utils
esetroubleshoot-server
estão instalados em seu sistema.
Procedimento
Inicie o serviço
httpd
e verifique o status:Copy to Clipboard Copied! Toggle word wrap Toggle overflow A política da SELinux assume que
httpd
funciona na porta 80:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mude o tipo SELinux da porta 3131 para corresponder à porta 80:
semanage port -a -t http_port_t -p tcp 3131
# semanage port -a -t http_port_t -p tcp 3131
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Comece
httpd
novamente:systemctl start httpd
# systemctl start httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow No entanto, o conteúdo permanece inacessível:
wget localhost:3131/index.html
# wget localhost:3131/index.html ... HTTP request sent, awaiting response... 403 Forbidden ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Encontre o motivo com a ferramenta
sealert
:sealert -l "*"
# sealert -l "*" ... SELinux is preventing httpd from getattr access on the file /var/test_www/html/index.html. ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compare os tipos de SELinux para o padrão e o novo caminho usando a ferramenta
matchpathcon
:matchpathcon /var/www/html /var/test_www/html
# matchpathcon /var/www/html /var/test_www/html /var/www/html system_u:object_r:httpd_sys_content_t:s0 /var/test_www/html system_u:object_r:var_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mude o tipo SELinux do novo diretório de conteúdo
/var/test_www/html/
para o tipo do diretório padrão/var/www/html
:semanage fcontext -a -e /var/www /var/test_www
# semanage fcontext -a -e /var/www /var/test_www
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reenquadre o diretório
/var
recursivamente:restorecon -Rv /var/
# restorecon -Rv /var/ ... Relabeled /var/test_www/html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /var/test_www/html/index.html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Etapas de verificação
Verifique se o serviço
httpd
está funcionando:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verificar se o conteúdo fornecido pelo servidor HTTP Apache está acessível:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
As páginas de manual
semanage(8)
,matchpathcon(8)
, esealert(8)
.