postfix / smtpd: Warnung: Verbindung zu Milter-Service-Unix: /var/run/opendkim/opendkim.sock: Keine solche Datei oder kein solches Verzeichnis

36

Ich habe ein Problem mit Postfix auf Debian nach dem Upgrade von Squeeze auf Wheezy. Postfix wurde so konfiguriert, dass Nachrichten mit dkim-filter signiert werden. Vor dem Update hat alles einwandfrei funktioniert, jetzt schlägt die Verbindung mit dem Dienst (TCP- oder Unix-Sockets) fehl. Ich dachte, dass es vielleicht an der Debian-Umstellung auf opendkim lag, also entfernte ich den dkim-Filter und installierte opendkim - das gleiche Problem. Ich habe sogar versucht, eine Unix-Datei-Socket-Verbindung anstelle der TCP-Option einzurichten - dasselbe Problem:

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

oder (mit tcp / ip):

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

Ich habe zweimal geprüft, ob eine Socket-Datei vorhanden ist, und der Dienst hat Port 8891 überwacht.

Was kann ich tun, um das zu beheben?

Rogers
quelle

Antworten:

58
  1. Überprüfen Sie, ob opendkim ausgeführt wird. (Ich nehme an, es ist so, wie Sie die Socket-Datei gesehen haben.)
  2. Hast du opendkim konfiguriert? Die Konfigurationsdatei ist /etc/opendkim.conf.

    Sie müssen die Datei aktualisieren, damit sie mit Ihrer Site / Domain und dem Pfad dkim.key übereinstimmt .

  3. Postfix zur opendkim Gruppe hinzufügen

    Wenn die Berechtigung opendkim.sock wie folgt lautet

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 Mai 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 2. Mai 14:56 opendkim.sock
    

    Wenn nicht, stellen Sie sicher, dass UMaskauf 0002in eingestellt ist /etc/opendkim.conf.

    Dann machen Sie folgendes

    sudo adduser postfix opendkim
  4. Postfix läuft in Chroot

    Ändern /etc/default/opendkim, ändern STECK Option postfix chroot Standort

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

    Sie müssen ein Verzeichnis erstellen /var/spool/postfix/var/run/opendkimund dessen Berechtigung ändern

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Starten Sie opendkim neu

    Sudo-Dienst opendkim Neustart
    
John Siu
quelle
4
Ich habe ein ähnliches Problem gefunden, das durch zu restriktive Berechtigungen für das opendkim-Verzeichnis verursacht wurde.
Darrell Duane
1
Ich bin mir sicher, dass Opendkim schon einmal funktioniert hat, habe aber festgestellt, dass es nach dem Upgrade von Ubuntu 15.04 auf 15.10 nicht funktioniert hat. Aktualisieren des Socket-Pfads /etc/default/opendkimauf den Pfad , den ich bereits in /etc/opendkim.confFix definiert hatte. Vielen Dank!
Haprog
Mein Problem ist, dass ich Postfix in Chroot ausführe und Unix-Socket verwende. Wenn Sie sehen , No such file or directorydass mittlere postfix nicht den Weg finden können, aber es sah für die Steckdose in / var / spool / postfix / var / run / opendkim / nicht / var / run / opendkim
HVNSweeting
@HVNSweeting Wird das nicht in (4) behandelt?
John Siu
Deshalb kommentiere und stimme ich zu, anstatt eine neue Antwort zu erstellen. Die Frage enthält so viele Probleme, denn wenn opendkim richtig konfiguriert ist, sollte der TCP-Socket funktionieren. Vielen Dank
HVNSweeting
11

Kurze Zusammenfassung, die mir geholfen hat, diese Warnung unter Ubuntu 16.04 LTS zu beheben: Postfix Version 3.1.0-3ubuntu0.2 Opendkim Version 2.10.3-3build1

  • (Ich gehe davon aus, dass Postfix und Opendkim bereits installiert und miteinander integriert sind. Die einzige Warnung, die Sie erhalten, ist "Verbindung zum lokalen Milter-Dienst herstellen: /var/spool/postfix/opendkim/opendkim.sock: Keine solche Datei oder kein solches Verzeichnis".)

  • Benutzer-Postfix zur Gruppe opendkim hinzufügen (Überspringen, falls bereits geschehen)

sudo adduser postfix opendkim

  • Verzeichnis erstellen und Eigentümer festlegen (Überspringen, falls bereits geschehen)

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

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

  • Überprüfen Sie die Berechtigungen:

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

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Bearbeiten Sie die opendkim-Konfigurationsdateien: /etc/opendkim.conf, fügen Sie eine Zeile hinzu

Socket local: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, add

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

  • Bearbeiten Sie die Postfix-Konfiguration: /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
  • Dienste neu starten (oder neu starten)

systemctl starte opendkim neu

Systemctl Postfix neu starten

Das ist es. Ich weiß nicht, warum es notwendig ist, zu schreiben

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

anstatt

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

. Wenn jemand weiß, sind Erklärungen willkommen.

Fedorov7890
quelle
2
Wenn Postfix mit CHROOT ausgeführt wird, sind die Konfigurationspfade relativ dazu. Sie würden am Ende versuchen, Postfix aufzulösen /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
verdunkeln Sie den
5

Ich hatte das gleiche Problem mit Debian Stretch, das durch eine kaputte systemd-Servicedatei für opendkim verursacht wurde. In dieser Antwort finden Sie eine Lösung: https://serverfault.com/a/847442/84962

Dieser Fix läuft auf Folgendes hinaus:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
Serrano
quelle
1
Ich habe Ubuntu-System, wo nur dieser Rat geholfen hat, während alles andere nicht funktionierte.
Silpol
Ich laufe 16.04 und /lib/opendkim/opendkim.service.generate existiert nicht
Laurent
Funktioniert einwandfrei unter Ubuntu 18.04. Vielen Dank.
Duque
Dies löste mein Problem unter 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
Олег Гинзбург
quelle
5
Dies wäre eine viel bessere Antwort, wenn sie eine Erklärung dazu enthalten würde, wie und warum dies die Frage beantwortet.
Stephen Rauch
3
Willkommen bei Unix & Linux! Während dieses Code-Snippet die Frage lösen kann, hilft eine Erklärung wirklich dabei , die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie in Zukunft die Frage für die Leser beantworten, nicht nur für die Person, die jetzt fragt! Bitte bearbeiten Sie Ihre Antwort Erklärung hinzuzufügen, und geben einen Hinweis darauf, was Einschränkungen und Annahmen gelten.
Toby Speight
1

Eine Alternative wäre, die zu deaktivieren chroot, dies hat Auswirkungen auf die Sicherheit:

vi /etc/postfix/master.cf

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

In den Warnungen wird angegeben postfix/cleanup, dass Sie die Chroot für diesen Dienst deaktivieren können.

Plup
quelle
0

Verbindung zu Milter-Service-Unix: /clamav/clamav-milter.ctl: Berechtigung verweigert

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 Apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

Benutzer clamav MilterSocketGroup postfix MilterSocketMode 660

Benutzerberechtigungen für den Milter

chown postfix: postfix /var/spool/postfix/clamav/clamav-milter.ctl

Funktioniert bei mir

gjerich
quelle
0

Ich hatte ein Problem, weil OpenDKIM und Postfix mit den Rechten verschiedener Benutzer arbeiten und über denselben Socket schreiben und lesen.

Ich habe den Benutzer postfix zur Gruppe opendkim hinzugefügt:

sudo usermod -a -G opendkim postfix
Alex Gvar
quelle