Warning: connect to Milter service local:/var/spool/postfix/var/run/opendkim/opendkim.sock: Permission denied

Bonjour à tous,

Chaque fois que je redémarre opendkim et postfix le owner du socket est changé:

 > ll /var/spool/postfix/var/run/opendkim/opendkim.sock
srwxrwxr-x 1 root root 0 mars  17 16:06 /var/spool/postfix/var/run/opendkim/opendkim.sock
 > chown opendkim:opendkim /var/spool/postfix/var/run/opendkim/opendkim.sock
 > ll /var/spool/postfix/var/run/opendkim/opendkim.sock
srwxrwxr-x 1 opendkim opendkim 0 mars  17 16:06 /var/spool/postfix/var/run/opendkim/opendkim.sock
 > systemctl restart opendkim postfix
 > ll /var/spool/postfix/var/run/opendkim/opendkim.sock
srwxrwxr-x 1 root root 0 mars  17 16:09 /var/spool/postfix/var/run/opendkim/opendkim.sock

Où corriger ça ?

Bonjour,

Quelle est la valeur de la directive UserID dans le fichier /etc/opendkim.conf ?

Ce doit être la valeur par défaut car il n’est pas défini

Dans /etc/default/opendkim tu devrais avoir (par défaut) :

# NOTE: This is a legacy configuration file. It is not used by the opendkim
# systemd service. Please use the corresponding configuration parameters in
# /etc/opendkim.conf instead.

…

USER=opendkim
GROUP=opendkim

Et dans /etc/opendkim.conf (par défaut) :

# In Debian, opendkim runs as user "opendkim". A umask of 007 is required when
# using a local socket with MTAs that access the socket as a non-privileged
# user (for example, Postfix). You may need to add user "postfix" to group
# "opendkim" in that case.
UserID			opendkim
UMask			007

Merci. J’avais UMask 002.

Avec:

le socket a les bons propriétaires maintenant

Mais un warning continue à défiler dans mail.warn:

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

alors que

 > ll /var/spool/postfix/var/run/opendkim/opendkim.sock
srwxrwxr-x 1 opendkim opendkim 0 mars  17 16:09 /var/spool/postfix/var/run/opendkim/opendkim.sock

Montre-nous la directive Socket du fichier /etc/opendkim.conf et donne-nous le retour de :

groups postfix
> grep SOCKET /etc/opendkim.conf
> grep SOCKET /etc/default/opendkim
#kmc_rc:SOCKET=local:$RUNDIR/opendkim.sock
#SOCKET="local:/var/run/opendkim/opendkim.sock"
SOCKET="local:/var/spool/postfix/var/run/opendkim/opendkim.sock"
> groups postfix
postfix : postfix opendkim

Cela semble correct mais en principe le fichier /etc/default/opendkim n’est plus utilisé. Et le répertoire /var/run n’est plus utilisé, c’est juste /run . Je t’invite à modifier en conséquence /etc/default/opendkim et mettre cette ligne dans /etc/opendkim.conf :*

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

Et assures-toi que tu as bien une ligne dans /etc/postfix/main.cf du type :

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

et à relancer les services opendkim et postfix.

J’ai modifié les conf comme indiqué:

 > cat_no_comment.sh /etc/opendkim.conf
Syslog                  yes
UserID                  opendkim
UMask                   007
Socket                  local:/var/spool/postfix/run/opendkim/opendkim.sock
Domain                  webologix.com
KeyFile                 /etc/opendkim/private.key
Selector                 dkim
Canonicalization        simple
Mode                    sv
 > grep milter /etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 2
#smtpd_milters = inet:localhost:8891
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
milter_content_timeout = 300s
 > systemctl restart opendkim postfix

mais j’ai toujours des warning:

Mar 18 14:03:32 ks307144 postfix/submission/smtpd[7973]: warning: connect to Milter service unix:/run/opendkim/opendkim.sock: No such file or directory

As-tu essayé de créer le répertoire opendkim dans /run avec les droits corrects par rapports à l’utilisateur précisé plus haut ?
Et au passage as-tu regarder les logs ?

+1
Il faut regarder :

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

Je ne comprends pas pourquoi tu as maintenant une erreur sur unix:/run/… au lieu de local:/var/spool/…
Quelle est ta version de Debian ? Quand ce n’est pas précisé dans la demande je pars du principe qu’il s’agit de stable, soit Debian Bullseye.

j’ai déplacé /var/spool/postfix/var/run/dkim sur /var/spool/postfix/var/run/dkim mais toujours même problème.

 > ls -al /var/spool/postfix/run/opendkim
total 12
drwxr-x--- 2 opendkim opendkim 4096 18 mars  14:36 .
drwxr-xr-x 3 postfix  root     4096 11 avril  2021 ..
-rw-r--r-- 1 root     root        4 18 mars  14:36 opendkim.pid
srwxrwx--- 1 opendkim opendkim    0 18 mars  14:36 opendkim.sock

J’ai upgradé en Debian 11, ce qui explique peut-être le changement unix: / local:

J’ai lu sur https://www.howtoforge.com/community/threads/amavis-on-wrong-port-on-debian-11.87348/ que’amavis n’était pas compatible Debian 11. C’est compliqué de changer pour rspamd ?

Les conseils que j’ai donné sont valables pour Debian 11.
Le fichier existe bien et les droits me semblent bons.
Il va falloir regarder les logs
Est-ce que les services postfix sont bien dans un chroot ? Il faut regarder la colonne chroot dans /etc/postfix/main.cf

Je pense que tu parles de master.cf:

 > cat_no_comment.sh /etc/postfix/master.cf|grep unix
dnsblog   unix  -       -       y       -       0       dnsblog
tlsproxy  unix  -       -       y       -       0       tlsproxy
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
uucp      unix  -       n       n       -       -       pipe
ifmail    unix  -       n       n       -       -       pipe
bsmtp     unix  -       n       n       -       -       pipe
scalemail-backend unix  -       n       n       -       2       pipe
mailman   unix  -       n       n       -       -       pipe
dovecot   unix  -       n       n       -       -       pipe
amavis unix - - - - 2 smtp
spamassassin unix - n n - - pipe user=spamassassin argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

J’ai installé Rspamd d’après https://linuxize.com/post/install-and-integrate-rspamd/
La nouvelle conf postfix:

 > grep milter /etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 6
#smtpd_milters = inet:localhost:8891
smtpd_milters = inet:127.0.0.1:11332
non_smtpd_milters = inet:127.0.0.1:11332
milter_content_timeout = 300s
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}

Je reçois les mails mais je ne peux toujours pas en envoyer et postfix n’affiche plus de warning du tout.

Oui pardon c’est master.cf, mais avec ton grep on ne voit pas les services smtpd, submission, etc.

Tu n’as plus d’avertissement puisque tu as supprimé le milter pour opendkim. Il faut traiter les problèmes les uns après les autres, pas tous en même temps…

Oui, désolé, j’ai perdu patience avec amavis, mais il pose des problèmes à quasi chaque upgrade, et je suis content d’être passé à Rspamd qui semble beaucoup plus fiable à configurer. Je ne sais pas s’il est efficace mais il a au moins le mérite de ne pas bloquer mon serveur smtp.
Le serveur remarche correctement à l’exception des alias mais je vais ouvrir un autre fil pour ça.
Un grand merci pour votre aide