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.

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 e setroubleshoot-server estão instalados em seu sistema.

Procedimento

  1. Inicie o serviço httpd e verifique o status:

    # systemctl start httpd
    # systemctl status httpd
    ...
    httpd[14523]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:3131
    ...
    systemd[1]: Failed to start The Apache HTTP Server.
    ...
    Copy to Clipboard Toggle word wrap
  2. A política da SELinux assume que httpd funciona na porta 80:

    # semanage port -l | grep http
    http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
    http_cache_port_t              udp      3130
    http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
    pegasus_http_port_t            tcp      5988
    pegasus_https_port_t           tcp      5989
    Copy to Clipboard Toggle word wrap
  3. Mude o tipo SELinux da porta 3131 para corresponder à porta 80:

    # semanage port -a -t http_port_t -p tcp 3131
    Copy to Clipboard Toggle word wrap
  4. Comece httpd novamente:

    # systemctl start httpd
    Copy to Clipboard Toggle word wrap
  5. No entanto, o conteúdo permanece inacessível:

    # wget localhost:3131/index.html
    ...
    HTTP request sent, awaiting response... 403 Forbidden
    ...
    Copy to Clipboard Toggle word wrap

    Encontre o motivo com a ferramenta sealert:

    # sealert -l "*"
    ...
    SELinux is preventing httpd from getattr access on the file /var/test_www/html/index.html.
    ...
    Copy to Clipboard Toggle word wrap
  6. 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
    /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 Toggle word wrap
  7. 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
    Copy to Clipboard Toggle word wrap
  8. Reenquadre o diretório /var recursivamente:

    # 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 Toggle word wrap

Etapas de verificação

  1. Verifique se o serviço httpd está funcionando:

    # systemctl status httpd
    ...
    Active: active (running)
    ...
    systemd[1]: Started The Apache HTTP Server.
    httpd[14888]: Server configured, listening on: port 3131
    ...
    Copy to Clipboard Toggle word wrap
  2. Verificar se o conteúdo fornecido pelo servidor HTTP Apache está acessível:

    # wget localhost:3131/index.html
    ...
    HTTP request sent, awaiting response... 200 OK
    Length: 0 [text/html]
    Saving to: ‘index.html’
    ...
    Copy to Clipboard Toggle word wrap

Recursos adicionais

  • As páginas de manual semanage(8), matchpathcon(8), e sealert(8).
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat