12 votes

Postfix - Opendkim - Impossible de se connecter au socket local

Je reçois des erreurs de refus lorsque postfix essaie de se connecter au socket unix pour opendkim, l'erreur actuelle :

Sep 24 15:41:43 service-a-4 postfix/cleanup[17414]: warning: connect to Milter service unix:var/run/opendkim/opendkim.sock: Permission denied

Selon le docs postfix postfix est exécuté en mode "chroot" par défaut, de sorte que postfix est verrouillé sur /var/spool/postfix/, et selon le fichier docs postfix Si le système fonctionne en mode "chroot", toutes les références au serveur (socket) sont relatives (à /var/spool/postfix).

Mes configurations sont donc les suivantes :

# /etc/opendkim.conf
Socket local:/var/spool/postfix/var/run/opendkim/opendkim.sock

# /etc/postfix/main.cf
smtpd_milters = unix:/var/run/opendkim/opendkim.sock

Maintenant, lorsque j'essaie d'envoyer un courriel de test, j'obtiens une erreur de refus d'autorisation, alors j'ai essayé quelques tests d'autorisation :

# Correctly lists the socket file
sudo su -s /bin/bash postfix -c "ls /var/spool/postfix/var/run/opendkim/opendkim.sock"

Mais lorsque j'essaie de me connecter en tant que postfix, rien ne se passe :

# Does not work
sudo su -s /bin/bash postfix -c "nc -U -D /var/spool/postfix/var/run/opendkim/opendkim.sock"

# Does work (as root)
nc -U -D /var/spool/postfix/var/run/opendkim/opendkim.sock

SELinux est temporairement désactivé (permissif) pendant le débogage de cette situation. Et je redémarre les deux processus (opendkim et postfix) après chaque changement de configuration.

Que me manque-t-il encore ?

Versions :

CentOS 6.5
Postfix v2.6.6
Opendkim v2.9

8voto

atitan Points 111

J'ai testé sur mon CentOS6 que postfix ne semble pas vraiment "chrooté".
Mon cadre :

# /etc/opendkim.conf
Socket local:/var/run/opendkim/opendkim.sock

# /etc/postfix/main.cf
smtpd_milters = unix:/var/run/opendkim/opendkim.sock

Cela produira : connect to Milter service unix:/var/run/opendkim/opendkim.sock: Permission denied .
Cependant, l'umask de la socket est 002, ce qui se traduit par srwxrwxr-x. opendkim:opendkim opendkim.sock .

La modification de l'umask en 000 résout le problème. Néanmoins, il est préférable que opendkim permute utilisateur:groupe plutôt que d'être ouvert au monde entier.

L'environnement :

centos 6.5 2.6.32-573.7.1.el6.x86_64
postfix 2.6.6-6.el6_5 @updates
opendkim 2.10.3-1.el6 @epel

3voto

Jacob Evans Points 7455

Pour ceux qui trouvent ceci et dont le problème n'est pas résolu avec les réponses ci-dessus, mon problème était les permissions d'exécution de groupe manquantes sur le dossier de socket opendkim. /var/run/opendkim/

J'ai ajouté un cron @reboot pour m'assurer que les permissions de groupe étaient définies. @reboot root chmod g+x /var/run/opendkim/

Corrige/corrige l'avertissement suivant pour qu'il ne revienne pas après un redémarrage.

warning : connect to Milter service unix:/var/run/opendkim/opendkim.sock : Permission refusée

Une connexion tcp n'était pas une bonne solution pour moi car je signe plus de 100k emails par heure.

2voto

JatSing Points 511

IIRC, postfix dans centos 6 ne fonctionne pas en mode chrooté dans sa configuration standard. Lorsque j'ai configuré opendkim à partir d'epel, il est venu avec cette configuration :

Socket                  inet:8891@localhost

donc l'activer dans postfix n'était qu'une question d'ajout dans le fichier main.cf :

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2

en redémarrant à la fois opendkim et postfix après configurer correctement les clés, TrustedHosts, SigningTable, Keytable et publier les enregistrements txt au DNS.

O, et j'oubliais : postfix devrait également être membre du groupe opendkim.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X