
No meu sistema CentOS 7, estou tentando executar o dovecot com TLS necessário. Para isso, criei minha chave privada e certificado em
[root@homeserver /]# ls -lZ indernet/cert/homeserver.*
-r--r--r--. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.crt
-r--r-----. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.key
[root@homeserver /]#
Para fazer o dovecot realmente carregar os arquivos, garanti que /etc/dovecot/conf.d/10-ssl.conf contenha estas linhas:
ssl=required
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt
A parte problemática: o Dovecot não consegue inicializar, ele falha com este erro:
dovecot: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 14: ssl_key: Can't open file /indernet/cert/homeserver.key: Permission denied
Tentei modificar as permissões do arquivo do certificado e da chave (isso não deveria ser exigido de acordo comhttps://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), até 777 e nada muda. Alguém me sugeriu que poderia ser o SELinux impedindo o acesso e eu configurei unconfined_u:object_r:default_t:s0 bem como system_u:object_r:default_t:s0 como você pode ver acima. Nenhuma mudança.
Agora a parte surpreendente: Fiquei muito curioso e editei /usr/lib/systemd/system/dovecot.service para conter
ExecStart=/bin/strace /usr/sbin/dovecot
e então em /var/log/messages eu pude ver o certificado e a chave sendo acessados e carregados. E o pombal funciona. Mas quando removo o strace novamente, fico com o mesmo problema.
O que pode estar acontecendo aqui?
Responder1
As chaves não podem ser lidas porque o SELinux negou acesso a elas.
Para consertar o problema,cópia de(usando cp
ou mv -Z
) as chaves para um diretório onde o SELinux espera que as chaves e certificados TLS sejam armazenados, ou seja, /etc/pki/tls
e seus subdiretórios. Os novos arquivos terão os contextos SELinux corretos se você usou cp
ou mv -Z
. Em seguida, atualize os locais dos arquivos na configuração do Dovecot.