postfix / smtpd: попередження: підключення до сервісу Milter unix: /var/run/opendkim/opendkim.sock: Немає такого файлу чи каталогу


36

У мене виникають проблеми з постфіксом на debian після переходу з перетягування на wheezy. Postfix був налаштований для підписання повідомлень за допомогою dkim-filter. Перед оновленням все працювало бездоганно, тепер воно не вдається підключитися до сервісу (tcp або unix sockets). Я подумав, що, можливо, це було через переключення debian на opendkim, тому я видалив dkim-filter і встановив opendkim - та сама проблема. Я навіть спробував встановити підключення до сокетного файлу unix замість опції tcp - та сама проблема:

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

або (з tcp / ip):

postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused

Я перевірив двічі - файл сокета існує і служба слухала на порту 8891.

Що я можу зробити, щоб це виправити?

Відповіді:


58
  1. Перевірте, чи працює опендкім. (Я припускаю, це так, як ви бачили файл сокета.)
  2. Ви налаштували opendkim? Файл конфігурації є /etc/opendkim.conf.

    Вам потрібно оновити файл, щоб він відповідав вашому сайту / домену та шляху dkim.key .

  3. Додати постфікс до opendkim групи

    Якщо дозвіл opendkim.sock є наступним

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 травня 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 2 травня 14:56 opendkim.sock
    

    Якщо немає, переконайтеся , що UMaskвстановлено в 0002в /etc/opendkim.conf.

    Потім виконайте наступне

    sudo adduser postfix opendkim
  4. Постфікс працює в chroot

    Змініть /etc/default/opendkim, змініть параметр SOCKET на розташування chloot postfix

    SOCKET = "локальний: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    Вам доведеться створити каталог /var/spool/postfix/var/run/opendkimі змінити його дозвіл

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Перезапустіть opendkim

    Служба sudo opendkim перезапуск
    

4
Я знайшов подібну проблему, викликану надто обмежуючими дозволами в каталозі opendkim.
Даррелл Дуейн

1
Я впевнений, що раніше працював з opendkim, але помітив, що він не працював після оновлення з Ubuntu 15.04 до 15.10. Оновлення шляху сокета /etc/default/opendkimдо того самого, який я вже визначив у /etc/opendkim.confвиправленому. Спасибі!
Хапрог

моя проблема в тому, що я запускаю постфікс в chroot і використовую unix socket. Якщо ви бачите, No such file or directoryщо середній постфікс не може знайти шлях, але він шукав сокет всередині / var / spool / postfix / var / run / opendkim /, а не / var / run / opendkim
HVNSweeting

@HVNSweeting Хіба це не стосується (4)?
Джон Сіу

саме тому я коментую і підтримую замість того, щоб створювати нову відповідь. Питання містить стільки проблем, адже якщо opendkim налаштований належним чином, TCP-сокет повинен працювати. Дякую
HVNSweeting

11

Короткий підсумок, який допоміг мені виправити це застереження на Ubuntu 16.04 LTS: Версія Postfix 3.1.0-3ubuntu0.2 Opendkim версія 2.10.3-3build1

  • (Я припускаю, що Postfix і Opendkim вже встановлені, інтегровані один з одним, і єдине попередження, яке ви отримуєте, - це "підключитися до служби Milter local: /var/spool/postfix/opendkim/opendkim.sock: Такого файлу чи каталогу немає")

  • Додати постфікс користувача до групи opendkim (пропустити, якщо вже зроблено)

sudo adduser postfix opendkim

  • Створіть каталог і встановіть власника (пропустіть, якщо вже зроблено)

sudo mkdir -p / var / spool / postfix / var / run / opendkim

sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim

  • Перевірте дозволи:

ls -l / var / spool / postfix / var / run / opendkim

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Редагуйте конфігураційні файли opendkim: /etc/opendkim.conf, додайте рядок

Розетка локальна: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, add

SOCKET = "локальний: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • Редагування конфігурації постфіксу: /etc/postfix/main.cf
# Milter configuration
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
milter_default_action = accept
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
  • Перезапустити служби (або перезавантажити)

systemctl перезапустити opendkim

systemctl перезапустити постфікс

Це воно. Я не знаю, чому потрібно писати

smtpd_milters = unix: var / run / opendkim / opendkim.sock

замість

smtpd_milters = local: /var/spool/postfix/var/run/opendkim/opendkim.sock

. Якщо хтось знає, пояснення вітаються.


2
Якщо постфікс працює з CHROOT, конфігураційні шляхи відносно цього. Ви б закінчилися спробою вирішити постфікс /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
затемнити

5

Я стикався з тією ж проблемою на Debian stretch, яка виявилася причиною пошкодженого файлу системного сервісу для opendkim. Дивіться цю відповідь для вирішення: https://serverfault.com/a/847442/84962

Це виправлення зводиться до:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart

1
У мене є система Ubuntu, де допомагала лише ця порада, а все інше не працювало.
silpol

Я запускаю 16.04 і /lib/opendkim/opendkim.service.generate не існує
Лоран

Відмінно працювати на Ubuntu 18.04. Дякую.
герцог

Це вирішило мою проблему на Debian 9.
jchook

2
smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock

usermod -G opendkim,opendmarc

5
Це було б набагато кращою відповіддю, якби воно містило пояснення як і чому це дає відповідь на питання.
Стівен Рауч

3
Ласкаво просимо до Unix & Linux! Хоча цей фрагмент коду може вирішити питання, зокрема пояснення дійсно допомагає покращити якість вашої публікації. Пам’ятайте, що ви відповідаєте на запитання читачів у майбутньому, а не лише про людину, яка зараз запитує! Будь ласка, відредагуйте свою відповідь, щоб додати пояснення та вказати, які обмеження та припущення застосовуються.
Toby Speight

1

Альтернативою може бути відключення chroot, це має наслідки для безпеки:

vi /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
cleanup   unix  n       -       n       -       0       cleanup

Застереження говорить postfix/cleanup, тому ви можете деактивувати chroot для цієї послуги.


0

підключитися до служби Milter unix: /clamav/clamav-milter.ctl: Дозвіл відхилено

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 4 квітня 17:59 clamav-milter.ctl

clamav-milter.conf

користувач clamav MilterSocketGroup постфікс MilterSocketMode 660

користувацькі дозволи для дозволу

поштовий посилання: postfix /var/spool/postfix/clamav/clamav-milter.ctl

Працює для мене


0

У мене виникла проблема, оскільки OpenDKIM і Postfix працюють з правами різних користувачів і пишуть і читають з одного сокета.

Я додав користувача Postfix до групи opendkim:

sudo usermod -a -G opendkim postfix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.