postfix / smtpd:警告:连接到Milter服务Unix:/var/run/opendkim/opendkim.sock:无此类文件或目录


36

从挤压升级到喘息后,我对debian的postfix有问题。Postfix已配置为使用dkim-filter对邮件进行签名。在更新之前,一切都工作正常,现在在与服务(TCP或UNIX套接字)的连接上失败。我以为可能是因为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。

我该怎么做才能解决此问题?

Answers:


58
  1. 检查opendkim是否正在运行。(我假设是您看到的套接字文件。)
  2. 您配置了opendkim吗?配置文件是/etc/opendkim.conf

    您需要更新文件以匹配您的站点/域和dkim.key路径。

  3. 将后缀添加到opendkim组

    如果opendkim.sock权限如下

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

    如果不是,请确保UMask将其设置为0002/etc/opendkim.conf

    然后执行以下操作

    sudo adduser后缀opendkim
  4. 在chroot中运行的Postfix

    修改/etc/default/opendkim,将SOCKET选项更改为后缀chroot位置

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

    您将必须创建目录/var/spool/postfix/var/run/opendkim并更改其权限

    须藤mkdir -p / var / spool / postfix / var / run / opendkim
    须藤chown opendkim:opendkim / var / spool / postfix / var / run / opendkim
    
  5. 重启opendkim

    sudo服务opendkim重新启动
    

4
我发现了类似的问题,这是由于对opendkim目录的权限过于严格所致。
Darrell Duane

1
我确定我以前曾在opendkim上工作,但注意到从Ubuntu 15.04升级到15.10后它无法正常工作。将套接字路径更新/etc/default/opendkim为我在/etc/opendkim.conf修复它时已定义的相同路径。谢谢!
哈普罗格'16

我的问题是我在chroot中运行后缀,而我正在使用unix套接字。如果您看到 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服务本地:/var/spool/postfix/opendkim/opendkim.sock:没有此类文件或目录”)

  • 将用户后缀添加到opendkim组(如果已完成,则跳过)

sudo adduser后缀opendkim

  • 创建目录并设置所有者(如果已完成,则跳过)

须藤mkdir -p / var / spool / postfix / var / run / opendkim

须藤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,添加

SOCKET =“ local:/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 =本地:/var/spool/postfix/var/run/opendkim/opendkim.sock

。如果有人知道,欢迎进行解释。


2
如果postfix与CHROOT一起运行,则配置路径是相对的。您最终会遇到尝试解决的后缀问题 /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
变暗

5

我在Debian Stretch上也遇到了同样的问题,原来是由于opendkim的systemd服务文件损坏引起的。请参阅此答案以获取解决方案: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不存在
Laurent

在Ubuntu 18.04上正常工作。谢谢。
杜克(Duque)'18

这解决了我的问题在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 Apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

用户clamav MilterSocketGroup后缀MilterSocketMode 660

milter的用户权限

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

为我工作


0

我遇到了一个问题,因为OpenDKIM和Postfix可以使用不同用户的权限,并可以从同一套接字写入和读取。

我将后缀用户添加到opendkim组:

sudo usermod -a -G opendkim postfix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.