Я пытаюсь настроить opendkim с помощью Postfix (на CentOS).
Скопировав мой известный хороший частный ключ на место, я вижу следующее:
Nov 16 12:54:26 [host.domain] setroubleshoot[10093]: SELinux is preventing opendkim from open access on the file /etc/opendkim/keys/mykey.private. For complete SELinux messages run: sealert -l 8de37e21-88ab-46af-9927-e6040f6bfc97
Nov 16 12:54:26 [host.domain] platform-python[10093]: SELinux is preventing opendkim from open access on the file /etc/opendkim/keys/mykey.private.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label.
/etc/opendkim/keys/mykey.private default label should be etc_t.
Then you can run restorecon. The access attempt may have been stopped due to insufficient permissions to access a parent directory in which case try to change the following command accordingly.
Do
# /sbin/restorecon -v /etc/opendkim/keys/mykey.private
***** Plugin catchall (1.49 confidence) suggests **************************
If you believe that opendkim should be allowed open access on the mykey.private file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c 'opendkim' --raw | audit2allow -M my-opendkim
# semodule -X 300 -i my-opendkim.pp
В моем случае это произошло потому, что я переместил (mv
) свой файл закрытого ключа на место через домашний каталог пользователя, и он пришел с неправильными расширенными разрешениями SELinux.
EDIT: см. комментарий от @MichaelHampton, может быть достаточно удалить файл, а затем скопировать (cp
) на место вместо (mv
).
РЕДАКТИРОВАТЬ: Или посмотрите комментарий от @HermannB, если у вас возникла проблема, чтобы исправить ее, может быть достаточно просто запустить /sbin/restorecon -v /etc/opendkim/keys/mykey.private
.
Мой первоначальный ответ:
Чтобы исправить пересоздание файла ключа из нового в его каталоге, например:
$ cd
$ sudo mv /etc/opendkim/keys/mykey.private .
$ su
> cd /etc/opendkim
> cat /home/[a.user]/mykey.private > mykey.private
> chown opendkim mykey.private
> chgrp opendkim mykey.private
> chmod 600 mykey.private
Это создание файла из нового (т.е. строки с cat
), что исправляет основная проблема. Если вы создадите его из нового в каталоге keys
, он автоматически получит правильные разрешения SELinux, и opendkim сможет его прочитать. Последние три строки дают файлу ограниченные разрешения, которые также запрашивает opendkim.