Я пытаюсь настроить opendkim на Debian Stretch, но мне не удается изменить сокет. Я хочу изменить сокет, /var/spool/postfix/opendkim/opendkim.sock
чтобы я мог использовать его с постфиксом.
Я добавил Socket local:/var/spool/postfix/opendkim/opendkim.sock
к/etc/opendkim.conf
а также попытался добавить SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock
в /etc/default/opendkim
(который я должен был создать).
Независимо от того, что я изменяю или как часто я перезапускаю opendkim, он всегда использует в /var/run/opendkim/opendkim.sock
качестве сокета.
➜ ~ netstat -a | fgrep LISTEN | grep open
unix 2 [ ACC ] STREAM LISTENING 5534128 /var/run/opendkim/opendkim.sock
➜ ~ sudo systemctl status opendkim.service
● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-04-30 12:41:54 CEST; 5min ago
Docs: man:opendkim(8)
man:opendkim.conf(5)
man:opendkim-genkey(8)
man:opendkim-genzone(8)
man:opendkim-testadsp(8)
man:opendkim-testkey
http://www.opendkim.org/docs.html
Process: 25246 ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock (code=exited, status=0/SUCCESS)
Main PID: 25248 (opendkim)
Tasks: 7 (limit: 4915)
CGroup: /system.slice/opendkim.service
├─25248 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
└─25249 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
Apr 30 12:41:54 vServer systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Apr 30 12:41:54 vServer systemd[1]: Started OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
Apr 30 12:41:54 vServer opendkim[25249]: OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
Что я делаю неправильно? (Я думаю, это моя ошибка, так как я не могу найти кого-то еще с той же проблемой)
ОБНОВИТЬ:
Изменение /etc/default/opendkim
к SOCKET="inet:8891@localhost"
и изменения конфигурации постфикса использовать эти результаты в сокетinet:localhost:8891: Connection refused
UPDATE2:
Теперь я заменил файл, включенный в пакет растяжения debian:
# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
# Change to /var/spool/postfix/var/run/opendkim to use a Unix socket with
# postfix in a chroot:
RUNDIR=/var/spool/postfix/var/run/opendkim
#RUNDIR=/var/run/opendkim
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
# default:
SOCKET=local:$RUNDIR/opendkim.sock
# listen on all interfaces on port 54321:
#SOCKET=inet:54321
# listen on loopback on port 12345:
#SOCKET=inet:12345@localhost
# listen on 192.0.2.1 on port 12345:
#SOCKET=inet:12345@192.0.2.1
USER=opendkim
GROUP=opendkim
PIDFILE=$RUNDIR/$NAME.pid
EXTRAAFTER=
Включает следующие строки, где определяется сокет:
if [ -f /etc/opendkim.conf ]; then
CONFIG_SOCKET=`awk '$1 == "Socket" { print $2 }' /etc/opendkim.conf`
fi
# This can be set via Socket option in config file, so it's not required
if [ -n "$SOCKET" -a -z "$CONFIG_SOCKET" ]; then
DAEMON_OPTS="-p $SOCKET $DAEMON_OPTS"
fi
connect to Milter service local:/var/run/opendkim/opendkim.sock: No such file or directory
даже думал, что он существует, так как/var/spool/postfix/
/var/spool/postfix/var/run...
если бы это былоinet
вместоlocal
. Может быть, если вы не отлаживаете сервис, попробуйте внедрить: digitalocean.com/community/tutorials/…Ответы:
Я наконец нашел решение.
/etc/init.d/opendkim
, Кажется, не делать ничего. Но вместо этого используется служебный файл,/lib/systemd/system/opendkim.service
который имеет неправильный сокет.Но пакет debian также включает в себя bash, который генерирует правильный сервис systemd.
Итак, после запуска
и перезапуская файл сокета появляется в ожидаемом месте, что можно проверить, вызвав:
Обновление: кажется, есть сообщение об ошибке в Debian об этой проблеме: # 861169
источник
У меня недостаточно репутации, чтобы комментировать, и я хотел признать, что после нескольких часов поиска решения для сообщения об ошибке «Отказано в соединении» OpenDKim-Postfix
/lib/systemd/system/opendkim.service
редактирование, предоставленное LocutusBE, работало с Ubuntu 17.04:Перед тем , как редактирование я добавил пользователь постфикса к opendkim группы и попытался
/lib/opendkim/opendkim.service.generate
за Лукас Винклера решения. Ошибка отказа в соединении сохранялась до тех пор, пока не был добавлен номер порта/lib/systemd/system/opendkim.service
.Для обновления
/lib/systemd/system/opendkim.service
я использовал порт 8891 для Ubuntu и закомментировал исходную строку ExecStart для целей тестирования, затем добавил новую строку с номером порта:Соответствующий номер порта был дополнительно указан в
/etc/opendkim.conf
:И
/etc/postfix/main.cf
:После перезапуска демона systemctl, opendkim и postfix исходящая почта была подписана без проблем, и в журнале почты отображалось «Добавлено поле подписи DKIM».
В последнее время не было проблем с подключением при настройке OpenDkim с Centos7, поэтому, очевидно, в этом случае это было связано с Ubuntu. Спасибо Лукасу Винклеру за размещение вопроса и тех, кто поделился своими решениями.
источник
Для использования
inet
сокета необходимо указать:SOCKET="inet:12301@localhost"
в/etc/default/opendkim
Кроме того, вам необходимо изменить настройки в Postfix, следовательно:
в
/etc/postfix/main.cf
добавлении:если вы не можете установить
local
желаемый путь, я бы посоветовал вам:захватить журнал от
mail
,syslog
илиopendkim
в/var/log
и проверитьпроверьте
/etc/init.d/opendkim
скрипт и проверьте, не установлено ли значение файла sock на значениепопробуй пойти с дефолтом
local:/var/run/opendkim/opendkim.sock
- и укажиsmtpd_milters = local:/var/run/opendkim/opendkim.sock
иnon_smtpd_milters = local:/var/run/opendkim/opendkim.sock
в/etc/postfix/main.cf
источник
warning: connect to Milter service inet:localhost:12301: Connection refused
OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
SOCKET="inet:12301@localhost
установленным в opendkim conf файлом?Это сработало для меня:
редактировать
/lib/systemd/system/opendkim.service
сдача:
чтобы:
и
источник
opendkim.service.generate
.OpenDKIM работал, пока я не обновил свой сервер. OpenDKIM не запустился, и у Милтера не было сокета, к которому можно было бы подключиться. В
/var/log/syslog
я мог видеть , что opendkim Ошибка при попытке создать сокет в другое место , чем перед обновлением. Я попытался изменить настройки сокетов в/etc/opendkim.conf
,/etc/default/opendkim
и ,/lib/systemd/system/opendkim.service
но это не помогает. Оказывается, информация была передо мной все время:Я заметил, что настройки были перезаписаны файлом «override.conf» и отредактированы так, чтобы он был выровнен с моим
/etc/postfix/main.cf
(работает как chroot):редактировать
/etc/systemd/system/opendkim.service.d/override.conf
И наконец перезапускаем демона и опендким:
источник
Я просто переименовал /etc/systemd/system/opendkim.service.d/override.conf в /etc/systemd/system/opendkim.service.d/override.conf.old, чтобы он не переопределял параметры ExecStart.
Все работает нормально, выбирая конфигурацию из /etc/opendkim.conf
источник
Мой opendkim сервис не проснулся на порту 8100 после установки, и предыдущие решения не помогли. Итак, я попробовал
с сказал
поэтому я посмотрел на служебный файл
и нашел странные пути
и команда
сказал
(посмотрите на 2-ю строку в предыдущей квоте), поэтому я пошел в
и удалил "-" 3 раза
Это помогло мне :-)
источник