Puncte:0

Dovecot nu poate citi certificatul TLS

drapel ke

Pe sistemul meu CentOS 7, încerc să rulez dovecot cu TLS necesar. Pentru asta, mi-am creat cheia privată și certificatul în

[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 /]#

Pentru ca dovecot să încarce efectiv fișierele, m-am asigurat că /etc/dovecot/conf.d/10-ssl.conf conține aceste linii:

ssl=necesar
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt

Partea problematică: Dovecot nu poate porni, eșuează cu această eroare:

dovecot: doveconf: Fatal: Eroare în fișierul de configurare /etc/dovecot/conf.d/10-ssl.conf linia 14: ssl_key: Nu se poate deschide fișierul /indernet/cert/homeserver.key: Permisiune refuzată

Am încercat să modific permisiunile de fișier ale certificatului și cheii (acest lucru nu ar trebui să fie necesar conform https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), chiar și la 777 și nimic nu se schimbă. Cineva mi-a sugerat că ar putea fi SELinux care împiedică accesul și am configurat unconfined_u:object_r:default_t:s0, precum și system_u:object_r:default_t:s0, așa cum puteți vedea mai sus. Nicio schimbare.

Acum partea surprinzătoare: Am devenit foarte curios și am editat /usr/lib/systemd/system/dovecot.service pentru a conține

ExecStart=/bin/strace /usr/sbin/dovecot

și apoi în /var/log/messages am putut vedea că certificatul și cheia sunt accesate și încărcate. Și porumbelul funcționează. Dar când elimin din nou strace, rămân cu aceeași problemă.

Ce se poate întâmpla aici?

drapel in
Ai AppArmor activat? Poate provoca și acest tip de problemă.
Hiran Chaudhuri avatar
drapel ke
Am SELinux activat. AFAIK apparmor este pentru sistemele Debian?
Puncte:3
drapel cz

Cheile nu pot fi citite deoarece SELinux a refuzat accesul la ele.

A rezolva problema, copie (folosind cp sau mv -Z) cheile unui director în care SELinux se așteaptă ca cheile și certificatele TLS să fie stocate, de exemplu. /etc/pki/tls și subdirectoarele sale. Noile fișiere vor avea contextele SELinux corecte dacă le-ați folosit cp sau mv -Z. Apoi actualizați locațiile fișierelor în configurația dvs. Dovecot.

Hiran Chaudhuri avatar
drapel ke
Soluția chiar a funcționat. Dar cum se face că această strace poate ocoli SELinux?
Michael Hampton avatar
drapel cz
@HiranChaudhuri SELinux îi permite lui Strace să facă aproape orice.
Hiran Chaudhuri avatar
drapel ke
Acest lucru sună ciudat, deoarece alții folosesc chiar strace pentru a depana problemele de permisiune (https://subscription.packtpub.com/book/networking_and_servers/9781783989669/8/ch08lvl1sec75/using-strace-to-clarify-permission-issues). Există undeva mai multe informații despre asta?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.