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
httpdestá 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-utilsesetroubleshoot-serverestão instalados em seu sistema.
Procedimento
Inicie o serviço
httpde verifique o status:Copy to Clipboard Copied! Toggle word wrap Toggle overflow A política da SELinux assume que
httpdfunciona 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 3131Copy to Clipboard Copied! Toggle word wrap Toggle overflow Comece
httpdnovamente:systemctl start httpd
# systemctl start httpdCopy 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:s0Copy 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_wwwCopy to Clipboard Copied! Toggle word wrap Toggle overflow Reenquadre o diretório
/varrecursivamente: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:s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Etapas de verificação
Verifique se o serviço
httpdestá 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).