Pesquisar

Capítulo 4. Configuração do SELinux para aplicações e serviços com configurações não padronizadas

download PDF

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

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.
    ...
  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
  3. Mude o tipo SELinux da porta 3131 para corresponder à porta 80:

    # semanage port -a -t http_port_t -p tcp 3131
  4. Comece httpd novamente:

    # systemctl start httpd
  5. No entanto, o conteúdo permanece inacessível:

    # wget localhost:3131/index.html
    ...
    HTTP request sent, awaiting response... 403 Forbidden
    ...

    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.
    ...
  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
  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
  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

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
    ...
  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’
    ...

Recursos adicionais

  • As páginas de manual semanage(8), matchpathcon(8), e sealert(8).
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.

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 oBlog 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.

© 2024 Red Hat, Inc.