SELinux Bloqueia o Serviço Tomcat 7 no RHEL 7 após a atualização do Yum

1

Eu fiz uma atualização do Yum e a capacidade do Tomcat de acessar o arquivo foi quebrada.

SEVERE: Failed to load keystore type JKS with path /var/websvr/certs/keyfile.jks due to /var/websvr/certs/keyfile.jks (Permission denied)
java.io.FileNotFoundException: /var/websvr/certs/keyfile.jks (Permission denied)

Mesmo que o usuário do tomcat tenha ownership and full permissions não apenas do arquivo, mas de todo o diretório

-rwxrwxrwx. 1 tomcat   tomcat 4829 Aug 19  2016 keyfile.jks

e verifiquei que Tomcat está sendo executado com tomcat user . Então, por que o acesso ainda está sendo impedido?

Servidor Red Hat Enterprise Linux versão 7.4 (Maipo)

Editar

De comentário de A.B - o /var/log/audit/audit.log :

type=AVC msg=audit(1511208892.087:392): avc:  denied  { read } for  pid=770 comm="java" name="keyfile.jks" dev="xvda2" ino=9641897 scontext=system_u:system_r:tomcat_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file

Então aparece, isso é relacionado ao SELinux . Tentei resolver, mas postagens como esta exigem uma assinatura da Red Hat.

Usando RH Doc para SELinux & Apache , em conjunto com RH SELinux Doc - Eu acho que para resolver isso, o arquivo keyfile.jks deve ser rotulado com:

tomcat_t:tomcat_t:tomcat_sys_content_t:s0

que é o acesso somente leitura para o usuário confinado tomcat_t na função tomcat_t. O arquivo está atualmente rotulado:

unconfined_u:object_r:var_t:s0

para passar as restrições adicionais de arquivos do SELinux.

Qualquer orientação é apreciada!

    
por Roy Hinkley 17.11.2017 / 23:47

1 resposta

3

Se você quiser rotular /var/websvr/certs/keyfile.jks com tomcat_sys_content_t, crie um contexto de arquivo de cliente

semanage fcontext -a /var/websvr/certs/keyfile.jks -t tomcat_sys_content_t
restorecon /var/websvr/certs/keyfile.jks

Se isso não funcionar porque tomcat_sys_content_t não existe, substitua tomcat_t ou possivelmente pki_tomcat_cert_t no comando acima.

    
por 23.11.2017 / 21:28