Ferramentas do usuário

Ferramentas do site


linux:selinux:http

HTTP (SELinux)

Estas configurações servem para os serviços Apache e Nginx.

Contextos HTTP

O SELinux possui 3 tipos de contexto para o SELinux:

  • httpd_sys_content_t: O agente HTTP só possui permissão de leitura em arquivos sob este contexto.
  • httpd_sys_rw_content_t: O agente HTTP pode ler e escrever em arquivos sob este contexto.
  • httpd_sys_script_exec_t: O agente HTTP pode executar arquivos de script.

Para mudar o contexto para somente leitura no HTTP utilizamos este comando:

# chcon -R -t httpd_sys_content_t [diretório]
# semanage fcontext -a -t httpd_sys_content_t "[diretório]/(/.*)?"

Para mudar o contexto para leitura e escrita no HTTP utilizamos este comando:

# chcon -R -t httpd_sys_rw_content_t [diretório]
# semanage fcontext -a -t httpd_sys_rw_content_t "[diretório]/(/.*)?"

Para mudar o contexto do usuário para um diretório recursivamente:

# chcon -R -u system_u [diretório]

Obs.: O comando semanage fcontext garante o contexto do diretório mesmo após um restorecon

Obs2.: Note que no comando semanage fcontext é utilizado uma expressão regular contendo a string do caminho do diretório para garantir que os arquivos dentro daquele diretório também adquiram o mesmo contexto. Procure utilizar o caminho absoluto ao invés do caminho relativo.

Booleanos SELinux para HTTP

Permissão a arquivos em storage via NFS

# setsebool -P httpd_use_nfs on

Talvez seja necessário montar o compartilhamento NFS com um certo contexto. Para isso basta colocar o contexto (context) desejado nas opções de montagem do /etc/fstab como mostrado na linha abaixo:

10.199.X.Y:/MEU_FS /meu/path  nfs4  rw,soft,intr,rsize=8192,wsize=8192,nosuid,noexec,context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0

Permitir envio de e-mail via Web

# setsebool -P httpd_can_sendmail on

Permitir conexão a banco via rede

# setsebool -P httpd_can_network_connect_db on

Conheça mais permissões SELinux para HTTP

Liste os serviços

# getsebool -a | grep [nome do serviço]

Exemplo:

# getsebool -a | grep httpd

Liberando permissão

# setsebool [definição da permissão listada com o getsebool -a | grep] 1

Revogando permissão

# setsebool [definição da permissão listada com o getsebool -a | grep] 0
linux/selinux/http.txt · Última modificação: 27/04/2021 12:05 por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki