Рейтинг:0

Не удается открыть файл PID /run/opendkim/opendkim.pid (пока?) после запуска: операция не разрешена

флаг va

я потратил около 2 часов на настройку dkim с постфиксом на ubuntu 20.04. Я пробую абсолютно все, но dkim не работает.

OpenDKIM-Service не запускается:

root@mail:~# статус службы opendkim
▪ opendkim.service — OpenDKIM DomainKeys Identified Mail (DKIM) Milter
     Загружено: загружено (/lib/systemd/system/opendkim.service; включено; предустановка поставщика: включена)
     Активно: активация (начало) с сб 08.01.2022 19:39:15 CET; 59 секунд назад
       Документы: человек:opendkim(8)
             человек:opendkim.conf(5)
             мужчина:opendkim-genkey(8)
             мужчина:opendkim-genzone(8)
             мужчина: opendkim-testadsp(8)
             мужчина: opendkim-тестовый ключ
             http://www.opendkim.org/docs.html
    Процесс: 62335 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (код=выход, статус=0/УСПЕХ)
      Заданий: 7 (лимит: 19660)
     Память: 2,7 М
     Группа CG: /system.slice/opendkim.service
             ââ62336 /usr/sbin/opendkim -x /etc/opendkim.conf
             ââ62337 /usr/sbin/opendkim -x /etc/opendkim.conf

08 января 19:39:15 mail.mydomain.de systemd[1]: Запуск OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
08 января, 19:39:15 mail.mydomain.de systemd[1]: opendkim.service: невозможно открыть файл PID /run/opendkim/opendkim.pid (пока?) после запуска: операция не разрешена
08 января 19:39:15 mail.mydomain.de opendkim[62337]: запуск OpenDKIM Filter v2.11.0 (аргументы: -x /etc/opendkim.conf)
07 января 13:32:59 mail.mydomain.de systemd[1]: запуск OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
07 января 13:32:59 mail.mydomain.de systemd[1]: Запущен Milter OpenDKIM DomainKeys Identified Mail (DKIM).
07 января 13:32:59 mail.mydomain.de opendkim[275965]: запуск OpenDKIM Filter v2.11.0 (аргументы: -x /etc/opendkim.conf)
08 января 10:35:44 mail.mydomain.de systemd[1]: остановка OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
08 января 10:35:50 mail.mydomain.de systemd[1]: opendkim.service: успешно.
08 января 10:35:50 mail.mydomain.de systemd[1]: Остановлен Milter OpenDKIM DomainKeys Identified Mail (DKIM).

Вот мой /etc/opendkim.conf:

# Это базовая конфигурация, которую можно легко адаптировать к стандартному
# установка. Дополнительные параметры см. в opendkim.conf(5) и/или
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.

# Войти в системный журнал
Системный журнал да
# Требуется для использования локального сокета с MTA, которые обращаются к сокету как к не-
# привилегированный пользователь (например, Postfix)
UMask 002

# Подпишите например.com с помощью ключа в /etc/dkimkeys/dkim.key, используя
# селектор '2007' (например, 2007._domainkey.example.com)
#Домен example.com
#KeyFile /etc/dkimkeys/dkim.key
#Селектор 2007

# Часто используемые параметры; закомментированные версии показывают значения по умолчанию.
Канонизация простая
Режим св
Субдомены нет
Автоперезагрузка да
AutoRestartRate 10/1M
Фон да
DNSTimeout 5
ПодписьАлгоритм rsa-sha256

# Всегда перезаписывать From (подписывать, используя фактическое From и нулевое From, чтобы предотвратить
# поля заголовка вредоносных подписей (от и/или другие) между подписывающей стороной
# и верификатор. От по умолчанию в пакете Debian переопределено.
# потому что он часто является идентификационным ключом, используемым системами репутации и, таким образом,
# несколько чувствительно к безопасности.
OversignHeaders From

## Имя файла ResolverConfiguration
## по умолчанию (нет)
##
## Задает файл конфигурации для передачи в библиотеку Unbound, которая
## выполняет DNS-запросы, используя протокол DNSSEC. См. Несвязанный
## документация на http://unbound.net для ожидаемого содержимого этого файла.
## Результаты одновременного использования этого параметра и параметра TrustAnchorFile
## время не определено.
## В Debian файл /etc/unbound/unbound.conf поставляется как часть рекомендуемого
## несвязанный пакет

# Конфигурация разрешения /etc/unbound/unbound.conf

## имя файла TrustAnchorFile
## по умолчанию (нет)
##
## Указывает файл, из которого следует считывать данные якоря доверия при выполнении
## Запросы DNS и применение протокола DNSSEC. См. Несвязанную документацию
## на http://unbound.net для ожидаемого формата этого файла.

TrustAnchorFile /usr/share/dns/root.key

Пользователь #OpenDKIM
# Не забудьте добавить пользовательский постфикс в группу opendkim
ID пользователя

# Сопоставить домены в адресах отправителей с ключами, используемыми для подписи сообщений
Файл KeyTable: /etc/opendkim/key.table
Файл SigningTable: /etc/opendkim/signing.table

# Хосты, которые следует игнорировать при проверке подписи
Внешний список игнорирования /etc/opendkim/trusted.hosts

# Набор внутренних хостов, почта которых должна быть подписана
Внутренние хосты /etc/opendkim/trusted.hosts

Локальный сокет:/var/spool/postfix/opendkim/opendkim.sock

Вот мой /etc/default/opendkim.conf

# Указанные здесь параметры командной строки переопределяют содержимое
# /etc/opendkim.conf. Полный список опций смотрите в opendkim(8).
#ДЕМОН_OPTS=""
#
# Раскомментируйте, чтобы указать альтернативный сокет
# Обратите внимание, что эта установка переопределит любое значение Socket в opendkim.conf
# По умолчанию:
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"
# слушать на всех интерфейсах порта 54321:
#РАЗЪЕМ="inet:54321"
# слушать петлю на порту 12345:
#SOCKET="inet:12345@localhost"
# слушать 192.0.2.1 через порт 12345:
#SOCKET="inet:[email protected]"

Вот мой master.cf:

#
# Конфигурационный файл главного процесса Postfix. Для получения подробной информации о формате
# файла, см. справочную страницу master(5) (команда: "man 5 master" или
# он-лайн: http://www.postfix.org/master.5.html).
#
# Не забудьте выполнить "постфиксную перезагрузку" после редактирования этого файла.
#
# ================================================ ==========================
# тип сервиса private unpriv chroot wakeup maxproc command + args
# (да) (да) (нет) (никогда) (100)
# ================================================ ==========================
smtp инет n - y - - smtpd
#smtp inet n - y - 1 постскрин
#smtpd проход - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
подача инет н - у - - smtpd
  -o smtpd_enforce_tls=да
  -o smtpd_sasl_auth_enable=да
  -o smtpd_client_restrictions=permit_sasl_authenticated,отклонить
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=шифровать
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_tls_auth_only=yes
# -o smtpd_reject_unlisted_recipient=нет
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
# -o milter_macro_daemon_name=ИСХОДЯЩИЙ
#smtps inet n - y - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=нет
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
# -o milter_macro_daemon_name=ИСХОДЯЩИЙ
#628 инет п-у--qmqpd
пикап unix n - y 60 1 пикап
очистка unix n - y - 0 очистка
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix--y 1000? 1 тлсмгр
переписать unix--y--тривиально-переписать
отказ unix - - y - 0 отказ
отложить unix - - y - 0 отказов
трассировка unix - - y - 0 отказов
проверить unix - - y - 1 проверить
прошить unix -ы 1000? 0 флеш
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
реле unix--y--smtp
        -o syslog_name=postfix/$service_name
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - y - - showq
ошибка unix--y--ошибка
повторите попытку unix--y--ошибка
отбросить unix--y--отбросить
локальный unix - n n - - локальный
виртуальный unix - n n - - виртуальный
lmtp unix--y--lmtp
наковальня unix - - y - 1 наковальня
архив unix - - y - 1 архив
postlog unix-dgram n - n - 1 postlogd
#
# ================================================ ====================
# Интерфейсы к программному обеспечению, отличному от Postfix. Обязательно изучите инструкцию
# страниц программного обеспечения, отличного от Postfix, чтобы узнать, какие параметры ему нужны.
#
# Многие из следующих сервисов используют доставку Postfix pipe(8)
# агент. См. справочную страницу pipe(8) для получения информации о ${recipient}
# и другие параметры конверта сообщения.
# ================================================ ====================
#
# почтовая рассылка. Подробности смотрите в файле Postfix MAILDROP_README.
# Также укажите в main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - канал
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ================================================ ====================
#
# Последние версии Cyrus могут использовать существующую запись "lmtp" master.cf.
#
# Указываем в cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Укажите в main.cf одно или несколько из следующего:
# mailbox_transport = lmtp:inet:localhost
# виртуальный_транспорт = lmtp:inet:localhost
#
# ================================================ ====================
#
# Cyrus 2.1.5 (Амос Гуо)
# Также указать в main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - труба
# user=cyrus argv=/cyrus/bin/deliver -e -r ${отправитель} -m ${расширение} ${пользователь}
#
# ================================================ ====================
# Старый пример доставки через Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ================================================ ====================
#
# Подробности конфигурации смотрите в файле Postfix UUCP_README.
#
uucp unix - n n - - канал
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Другие внешние способы доставки.
#
ifmail unix - n n - - канал
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - канал
  флаги=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
бэкенд-подсистема масштабирования unix — n n — 2 канала
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
почтальон unix - n n - - труба
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${пользователь}

smtps inet n - y - - smtpd
    -o smtpd_tls_wrappermode=да  

Вот мой /etc/postfix/main.cf:

# Смотрите /usr/share/postfix/main.cf.dist для более полной версии с комментариями


# Специально для Debian: указание имени файла приведет к первому
# строка этого файла, которая будет использоваться в качестве имени. Дебиан по умолчанию
# это /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP 
имя хоста = mail.mydomain.de
биф = нет

# добавление .domain - это работа MUA.
append_dot_mydomain = нет

# Раскомментируйте следующую строку, чтобы сгенерировать предупреждение об "отложенной почте"
#delay_warning_time = 4 часа

readme_directory = нет

# См. http://www.postfix.org/COMPATIBILITY_README.html -- по умолчанию 2 на
# свежие установки.
уровень_совместимости = 2
message_size_limit = 10240000

# TLS-параметры
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=может

smtp_tls_CApath=/etc/ssl/сертификаты
smtp_tls_security_level=может
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache

smtpd_recipient_restrictions = allow_mynetworks, reject_unauth_destination, reject_non_fqdn_sender
# Конфигурация Milter
milter_default_action = принять
milter_protocol = 6
smtpd_milters = локальный:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
smtpd_sender_restrictions = Permit_MyNetworks, Permit_Sasl_аутентифицированный
мои сети = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

alias_maps = хеш:/и т.д./псевдонимы
alias_database = хэш:/и т.д./псевдонимы
myorigin = /etc/mailname
мой пункт назначения = локальный хост
ретранслятор =
smtpd_relay_restrictions = Permit_MyNetworks, Permit_Sasl_аутентифицированный, reject_unauth_destination
mailbox_command = procmail -a "$EXTENSION"
почтовый ящик_размер_лимит = 0
получатель_разделитель = +
inet_interfaces = все
inet_protocols = все

#кастом для копано
virtual_alias_maps = хеш:/etc/postfix/виртуальный
virtual_mailbox_maps = mysql:/etc/postfix/mysql-users.cf
виртуальный_транспорт = lmtp: [локальный хост]: 2003
виртуальный_почтовый_домен = mydomain1.de, mydomain2.de
#

smtpd_tls_ciphers = средний
smtpd_tls_mandatory_ciphers = средний
tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
smtpd_tls_mandatory_protocols = TLSv1.2
smtpd_tls_protocols = TLSv1.2
smtpd_tls_security_level = может
smtp_tls_security_level = может
smtp_use_tls = нет


smtpd_client_restrictions = Permit_MyNetworks, Permit_Sasl_аутентифицированный, reject_rbl_client zen.spamhaus.org
smtp_send_xforward_command = да
smtpd_authorized_xforward_hosts = 127.0.0.0/8 [::1]/128
smtpd_sasl_auth_enable = нет
виртуальная_почтовая_база = /var/qmail/mailnames
виртуальные_uid_maps = статические: 30
virtual_gid_maps = статический:31
pepoluan avatar
флаг tr
Поскольку он еще не запущен, можете ли вы проверить, существует ли `/run/opendkim/opendkim.pid` и кому он принадлежит?
nils50122 avatar
флаг va
Файл не существует. Я также пытаюсь создать файл вручную с правами собственности от 0644 opendkim:opendkim. Но никакого успеха.
флаг us
Сообщение «Не удается открыть файл PID /run/opendkim/opendkim.pid (пока?) после запуска: операция не разрешена» также может появиться при правильно функционирующей установке. Это системная вещь, но не проблема, вы можете не обращать на это внимания.
nils50122 avatar
флаг va
Вы правы, теперь opendkim отправляет действительную подпись dkim для исходящих писем. Может, нужно время...
Рейтинг:0
флаг de

Вы запускаете свой постфикс в chroot:

SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

Но systemd пытается проверить

/run/opendkim/opendkim.pid
Рейтинг:0
флаг ru

Я вижу ту же проблему. У меня недостаточно репутации, чтобы оставить комментарий, поэтому оставленное наблюдение на самом деле не является ответом, который может помочь привести к лучшему ответу. С надеждой.

создание файла помогло запустить opendkim. коснитесь /run/opendkim/opendkim.pid

Затем я обнаружил, что вам нужно изменить владельца файла, в котором я только что сделал всю папку. chown -R opendkim /run/opedkim

Я считаю, что проблема начинается с того, что файл затем меняет владельца обратно на root, и при следующем запуске процесса я получаю ту же ошибку.

systemd[1]: opendkim.service: не удается открыть файл PID /run/opendkim.pid (пока?) после запуска: операция не разрешена

Так что в основном это похоже на проблему владения, а до этого проблема с файлом не существует.

Я все еще занимаюсь расследованием, и у меня все еще есть проблема, связанная с тем, что сокет local:/var/spool/postfix/opendkim/opendkim.sock не создается, а затем postfix жалуется, хотя opendkim работает. Итак, я имею дело с двухуровневой проблемой, но решил добавить свое наблюдение.

О, и я использую Debian

После дополнительных исследований и чтения комментариев выше я также убежден, что это не ошибка, которую можно игнорировать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.