web-dev-qa-db-fra.com

postfix / smtpd: avertissement: connectez-vous au service Milter sous unix: /var/run/opendkim/opendkim.sock: aucun fichier ou répertoire de ce type

J'ai un problème avec postfix sur Debian après la mise à niveau de Squeeze vers Wheezy. Postfix a été configuré pour signer des messages à l'aide de dkim-filter. Avant la mise à jour, tout fonctionnait parfaitement, maintenant il échoue lors de la connexion avec le service (sockets TCP ou UNIX). Je pensais que c'était peut-être à cause du passage de Debian à opendkim, j'ai donc supprimé dkim-filter et installé opendkim - même problème. J'ai même essayé de définir la connexion de socket de fichier Unix au lieu de l'option tcp - même problème:

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

ou (avec tcp/ip):

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

J'ai vérifié deux fois - le fichier socket existe et le service écoutait sur le port 8891.

Que puis-je faire pour résoudre ce problème?

38
rogers
  1. Vérifiez si opendkim est en cours d'exécution. (Je suppose que c'est comme vous avez vu le fichier socket.)
  2. Avez-vous configuré opendkim? Le fichier de configuration est /etc/opendkim.conf.

    Vous devez mettre à jour le fichier pour qu'il corresponde à votre site/domaine et dkim.key chemin.

  3. Ajouter le suffixe au groupe opendkim

    Si l'autorisation opendkim.sock est la suivante

     $ ls -l /var/run/opendkim▶ .____. srwxrwxr-x 1 opendkim opendkim 0 2 mai 14:56 opendkim.sock 
    

    Sinon, assurez-vous que UMask est défini sur 0002 dans /etc/opendkim.conf.

    Ensuite, procédez comme suit

    Sudo adduser postfix opendkim
  4. Postfix s'exécutant dans chroot

    Modifier /etc/default/opendkim, changez SOCKET option pour postfixer l'emplacement du chroot

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

    Vous devrez créer le répertoire /var/spool/postfix/var/run/opendkim et modifier son autorisation

     Sudo mkdir -p /var/spool/postfix/var/run/opendkim[.____..
  5. Redémarrez opendkim

     Sudo service opendkim restart 
    
63
John Siu

Résumé rapide qui m'a aidé à corriger cet avertissement sur Ubuntu 16.04 LTS: Postfix version 3.1.0-3ubuntu0.2 Opendkim version 2.10.3-3build1

  • (Je suppose que Postfix et Opendkim sont déjà installés, intégrés l'un à l'autre et le seul avertissement que vous obtenez est `` se connecter au service Milter local: /var/spool/postfix/opendkim/opendkim.sock: aucun fichier ou répertoire '')

  • Ajouter le suffixe utilisateur au groupe opendkim (ignorer si déjà fait)

Sudo adduser postfix opendkim

  • Créer un répertoire et définir le propriétaire (ignorer si déjà fait)

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

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

  • Vérifiez les autorisations:

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

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Modifiez les fichiers de configuration d'opendkim: /etc/opendkim.conf, ajoutez une ligne

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

/ etc/defaults/opendkim, ajoutez

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

  • Modifier la configuration de postfix: /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
  • Redémarrez les services (ou redémarrez)

systemctl restart opendkim

systemctl restart postfix

C'est ça. Je ne sais pas pourquoi il faut écrire

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

au lieu de

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

. Si quelqu'un le sait, les explications sont les bienvenues.

14
Fedorov7890

J'étais confronté au même problème sur Debian Stretch, qui s'est avéré être causé par un fichier de service systemd cassé pour opendkim. Voir cette réponse pour une solution: https://serverfault.com/a/847442/84962

Cette correction se résume à:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
5
Serrano
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

Une alternative serait de désactiver le chroot, ceci a des implications de sécurité:

vi /etc/postfix/master.cf

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

Les avertissements indiquent postfix/cleanup, vous pouvez donc désactiver le chroot pour ce service.

1
Plup

se connecter au service Milter avec erreur:

unix:/clamav/clamav-milter.ctl: Permission denied

Ce fichier:

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

montre:

user clamav
MilterSocketGroup postfix
MilterSocketMode 660 

autorisations utilisateur pour le milter

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

Travaille pour moi

0
gjerich

J'ai eu un problème car OpenDKIM et Postfix fonctionnent avec les droits de différents utilisateurs et écrivent et lisent à partir du même socket.

J'ai ajouté l'utilisateur postfix au groupe opendkim:

Sudo usermod -a -G opendkim postfix
0
Alex Gvar