Tabela de conteúdos
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