Điểm:0

Dovecot không thể đọc chứng chỉ TLS

lá cờ ke

Trên hệ thống CentOS 7 của tôi, tôi đang cố chạy dovecot với yêu cầu TLS. Để làm được điều đó, tôi đã tạo khóa riêng và chứng chỉ của mình trong

[root@homeserver /]# ls -lZ indernet/cert/homeserver.*
-r--r--r--. chứng chỉ gốc system_u:object_r:default_t:s0 indernet/cert/homeserver.crt
-r--r-----. chứng chỉ gốc system_u:object_r:default_t:s0 indernet/cert/homeserver.key
[root@máy chủ nhà /]#

Để làm cho dovecot thực sự tải các tệp tôi đã đảm bảo /etc/dovecot/conf.d/10-ssl.conf chứa các dòng sau:

ssl=bắt buộc
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt

Phần có vấn đề: Dovecot không thể khởi động, nó bị lỗi với lỗi này:

dovecot: doveconf: Fatal: Lỗi trong tệp cấu hình /etc/dovecot/conf.d/10-ssl.conf dòng 14: ssl_key: Không thể mở tệp /indernet/cert/homeserver.key: Quyền bị từ chối

Tôi đã cố gắng sửa đổi quyền đối với tệp của chứng chỉ và khóa (điều này không bắt buộc theo quy định https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), thậm chí đến 777 và không có gì thay đổi. Ai đó đã gợi ý cho tôi rằng có thể SELinux đang ngăn truy cập và tôi đã định cấu hình unconfined_u:object_r:default_t:s0 cũng như system_u:object_r:default_t:s0 như bạn có thể thấy ở trên. Không thay đổi.

Bây giờ là phần đáng ngạc nhiên: Tôi rất tò mò và đã chỉnh sửa /usr/lib/systemd/system/dovecot.service để chứa

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

và sau đó trong/var/log/messages tôi có thể thấy chứng chỉ và khóa được truy cập và tải. Và dovecot hoạt động. Nhưng khi tôi xóa dấu vết một lần nữa, tôi lại gặp vấn đề tương tự.

Điều gì có thể đang xảy ra ở đây?

lá cờ in
Bạn đã bật AppArmor chưa? Nó cũng có thể gây ra loại vấn đề này.
Hiran Chaudhuri avatar
lá cờ ke
Tôi đã bật SELinux. AFAIK apparmor dành cho hệ thống Debian?
Điểm:3
lá cờ cz

Không thể đọc các khóa vì SELinux đã từ chối quyền truy cập vào chúng.

Để khắc phục sự cố, sao chép (dùng cp hoặc mv -Z) các khóa vào một thư mục mà SELinux dự kiến ​​các khóa và chứng chỉ TLS sẽ được lưu trữ, tức là /etc/pki/tls và các thư mục con của nó. Các tệp mới sẽ có ngữ cảnh SELinux chính xác nếu bạn đã sử dụng cp hoặc mv -Z. Sau đó cập nhật vị trí của tệp trong cấu hình Dovecot của bạn.

Hiran Chaudhuri avatar
lá cờ ke
Giải pháp đã thực sự làm việc. Nhưng làm thế nào mà strace có thể phá vỡ SELinux?
Michael Hampton avatar
lá cờ cz
@HiranChaudhuri SELinux cho phép strace làm mọi thứ.
Hiran Chaudhuri avatar
lá cờ ke
Điều này nghe có vẻ lạ, vì những người khác thậm chí còn sử dụng strace để gỡ lỗi các vấn đề về quyền (https://subscription.packtpub.com/book/networking_and_servers/9781783989669/8/ch08lvl1sec75/using-strace-to-clarify-permission-issues). Có nơi nào biết thêm thông tin về điều này?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.