Назад | Перейти на главную страницу

Разрешение с cyrus

Я использую Cyrus в системе Debian 7. Я хочу повысить безопасность, разрешив только определенным службам доступ к закрытым ключам SSL.

Я создал группу «ssl», в которую входят пользователи mysql, postfix и cyrus.

Кажется, что процесс cyrus запускается от имени пользователя cyrus:

$ ps aux | grep cyrus
cyrus     1294  0.0  0.0 126256  8112 ?        S    16:23   0:00 imapd -s -U 30
cyrus     1695  0.0  0.0  57036  3544 ?        Ss   Nov20   0:03 /usr/sbin/cyrmaster -d
cyrus     3656  0.0  0.0  83708  2408 ?        S    Nov20   0:00 notifyd
root     10779  0.0  0.0  11540   892 pts/1    S+   21:12   0:00 grep cyrus

В private.key есть chmod 640 и chown root: ssl. Он не зашифрован.

Certificate.pem имеет chmod 640 и chown root: root.

Когда запускается su cyrus, Я могу прочитать файл private.key, поэтому с разрешениями все в порядке.

Когда я пытаюсь использовать свой почтовый ящик IMAP, cyrus сообщает, что у него нет доступа к закрытому ключу:

$tail /var/log/syslog
Nov 21 20:13:47 debian cyrus/imaps[20647]: unable to get private key from '/daten/ssl/xxx/private.key'
Nov 21 20:13:47 debian cyrus/imaps[20647]: TLS server engine: cannot load cert/key data, may be a cert/key mismatch?
Nov 21 20:13:47 debian cyrus/imaps[20647]: error initializing TLS
Nov 21 20:13:47 debian cyrus/imaps[20647]: Fatal error: tls_init() failed

Соответствующая часть /etc/imapd.conf:

tls_cert_file: /daten/ssl/xxx/certificate.pem
tls_key_file: /daten/ssl/xxx/private.key

tls_ca_file: /daten/ssl/ca/startcom/startcom.sub.class1.server.ca.crt
tls_ca_path: /daten/ssl/ca/startcom

Когда я изменяю chmod private.key обратно на 644, он работает. Установив его на 640, он больше не работает.

Что я могу сделать, чтобы Сайрус заработал? Почему процесс, запущенный как cyrus, не получает доступа к private.key?