LINUX.ORG.RU
ФорумAdmin

DKIM, проблемы с правами

 ,


0

1

Доброго времени суток! Проблема в следующем, работает почтовый сервер на основе Postfix+Dovecot+MySQL+SASL, тут же настроена подпись DKIM, а проблема в том, что подпись не работает, сначала я не понимал почему, потом изучив логи понял что проблема в файле:

/var/spool/postfix/var/run/opendkim/opendkim.sock
Если этот файл имеет исходные права, то пользователю opendkim видимо не хватает прав, как только делаю 777, все работает
root@host:~# ls -l /var/spool/postfix/var/run/opendkim/
total 0
srwxrwxrwx 1 opendkim opendkim 0 Sep 12 19:16 opendkim.sock
root@host:~#
Перезагружаю, opendkim загружается и исходными правами и все опять слетает. Думаю или перевести пользователя opendkim в системные и дать ему больше прав, пока что-то не пойму как это правильно сделать или может у кого-нибудь есть другое решение проблемы?

Проблема в том что OpenDKIM и Postfix работают с правами разных пользователей а писать и читать должны из одного сокета. Простых решений два: либо запускать OpenDKIM с правами пользователя postfix, либо вместо UNIX-сокета использовать TCP-сокет на петлевом интерефейсе.

trancefer ★★ ()
Ответ на: комментарий от trancefer

Спасибо, попробую первое решение. Получается надо запускать OpenDKIM от пользователя postfix.

AnonimS ()
Ответ на: комментарий от trancefer

Обычно я выполняю команду

chmod -R 777 /var/spool/postfix/var/run/opendkim/opendkim.sock
Сейчас сделал следующим образом и все заработало
chmod -R postfix:postfix /var/spool/postfix/var/run/opendkim/opendkim.sock
Спасибо, вы оказались правы. Теперь все это дело надо автоматизировать, пробовал прописать в /etc/opendkim.conf следующее
UserID postfix:postfix
Почему-то не помогло, как еще можно сделать, чтобы сокет поднимался от пользователя postfix?

AnonimS ()
Ответ на: комментарий от trancefer

Вот смотрите, это запущенный процесс, их почему-то поднимается 2, он запускается от пользователя opendkim:

ps aux | grep opendkim
opendkim  2230  0.0  0.2  13284  2960 ?        Ss   Sep17   0:00 /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/var/run/opendkim/opendkim.sock
opendkim  2233  0.0  0.7  67972  7732 ?        Sl   Sep17   0:01 /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/var/run/opendkim/opendkim.sock
root      9714  0.0  0.2   4556  2240 pts/0    S+   11:22   0:00 grep opendkim
В конфиге /etc/default/opendkim


# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
#SOCKET="inet:10024@localhost" # listen on loopback on port 12345
#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345
#SOCKET="local:/var/run/opendkim/opendkim.sock"
#SOCKET="inet:8891@127.0.0.1"
SOCKET="local:/var/spool/postfix/var/run/opendkim/opendkim.sock"

В конфиге /etc/opendkim.conf AutoRestart Yes KeyTable file:/etc/opendkim/keytable SigningTable file:/etc/opendkim/signingtable #SoftwareHeader yes LogWhy yes #ExternalIgnoreList file:/etc/opendkim/trusted #InternalHosts file:/etc/opendkim/trusted #UserID opendkim:opendkim #UserID postfix:postfix SyslogSuccess Yes #PidFile /var/run/opendkim/opendkim.pid PidFile /var/spool/postfix/var/run/opendkim/opendkim.pid #SignatureAlgorithm rsa-sha256 #Socket=«local:/var/run/opendkim/opendkim.sock» Syslog yes Domain anonim-mailserver.xyz KeyFile /etc/opendkim/mail.private Selector mail Mode sv И начала скрипта автозагрузки в init.d

....

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/opendkim
NAME=opendkim
DESC="OpenDKIM"
RUNDIR=/var/run/$NAME
USER=opendkim
GROUP=opendkim
SOCKET=local:$RUNDIR/$NAME.sock
PIDFILE=$RUNDIR/$NAME.pid

# How long to wait for the process to die on stop/restart
stoptimeout=5

test -x $DAEMON || exit 0

....

Теперь мы видим, что тут или меняем переменные USER и GROUP в скрипке автозагрузке и почта не работает, при отправке ошибка, или в /etc/opendkim.conf UserID, что не дает вообще не какого результата. Или я все же что-то пропустил?

AnonimS ()
Ответ на: комментарий от AnonimS

chmod -R 777 /var/spool/postfix/var/run/opendkim/opendkim.sock

Может всё-таки поручить администрирование кому-то более квалифицированному?

AnDoR ★★★★★ ()
Ответ на: комментарий от AnDoR

Это личный почтовый сервер, мне интереснее самому это все делать.

AnonimS ()
Ответ на: комментарий от trancefer

Сделал как вы сказали, теперь сокет поднимается от пользователя postfix, но возникла другая проблема, что-то с правами на приватный ключ, пробовал менять, но что-то не помогает, вот смотрите:

Логи

Sep 18 18:57:54 домен postfix/pickup[15116]: 95DE14480C: uid=0 from=<root>
Sep 18 18:57:54 домен postfix/cleanup[15224]: 95DE14480C: message-id=<20160918155754.95DE14480C@...>
Sep 18 18:57:54 домен opendkim[15357]: can't load key from /etc/opendkim/mail.private: Permission denied
Sep 18 18:57:54 домен opendkim[15357]: 95DE14480C: error loading key 'mail._domainkey.домен'
Sep 18 18:57:54 домен postfix/cleanup[15224]: 95DE14480C: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Service unavailable - try again later; from=<root@домен> to=<root@домен>
root     15322  0.0  0.3   4836  3172 pts/0    T    18:54   0:00 nano /etc/opendkim.conf
postfix  15354  0.0  0.2  13284  2972 ?        Ss   18:55   0:00 /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/var/run/opendkim/opendkim.sock -u postfix
postfix  15357  0.0  0.5  56444  5552 ?        Sl   18:55   0:00 /usr/sbin/opendkim -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/var/run/opendkim/opendkim.sock -u postfix
root     15443  0.0  0.2   4556  2264 pts/0    S+   19:01   0:00 grep opendkim
ls -l /var/spool/postfix/var/run/opendkim/opendkim.sock
srwxr-xr-x 1 postfix postfix 0 Sep 18 18:55 /var/spool/postfix/var/run/opendkim/opendkim.sock
/etc/opendkim# groups opendkim
opendkim : opendkim postfix

/etc/opendkim# groups postfix
postfix : postfix
/etc/opendkim# ls -l /etc/ | grep opendkim
dr-xr-xr-x   2 opendkim opendkim  4096 Aug  1 15:35 opendkim
-rw-r--r--   1 root     root      1638 Sep 17 22:32 opendkim.conf
-rw-r--r--   1 root     root      1567 Aug  1 22:03 opendkim.conf.save

/etc/opendkim# ls -l
total 28
-r-xr-xr-x 1 opendkim opendkim 891 Jul 31 10:38 default.private
-r-xr-xr-x 1 opendkim opendkim 306 Jul 31 10:38 default.txt
-r-xr-xr-x 1 opendkim opendkim  92 Aug  1 21:11 keytable
-rw------- 1 opendkim opendkim 887 Aug  1 15:29 mail.private
-rw------- 1 opendkim opendkim 319 Aug  1 15:29 mail.txt
-r-xr-xr-x 1 opendkim opendkim  40 Aug  1 21:12 signingtable
-r-xr-xr-x 1 opendkim opendkim  57 Aug  1 15:52 trusted

AnonimS ()
Ответ на: комментарий от trancefer

Чтобы не себя, не вас не мучить решил попробовать использовать TCP-сокет, вроде все заработало при перезагрузке. Спасибо за помощь.

AnonimS ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.