微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – Postfix – Opendkim – 无法连接到本地套接字

当postfix尝试连接到opendkim的unix套接字时,我被拒绝错误,实际错误
Sep 24 15:41:43 service-a-4 postfix/cleanup[17414]: warning: connect to Milter service unix:var/run/opendkim/opendkim.sock: Permission denied

根据postfix docs,认情况下postfix在“chroot模式”下运行,因此postfix被锁定到/ var / spool / postfix /,根据postfix docs,如果在“chroot模式”下运行,所有milter(套接字)引用都是relative(到/ var / spool / postfix).

所以我的配置看起来像:

# /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

现在,当我尝试发送测试邮件时,我收到了权限被拒绝错误,所以我尝试了一些权限测试:

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

但是当我尝试连接为postfix时,没有任何反应:

# 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

在调试此sitch时,SELinux暂时被禁用(允许).我在每次配置更改后重启两个进程(opendkim和postfix).

我还缺少什么?

版本:

CentOS 6.5
Postfix v2.6.6
Opendkim v2.9

解决方法

在我的CentOS6上测试过postfix似乎并没有真正“chrooted”.
我的设定:
# /etc/opendkim.conf
Socket local:/var/run/opendkim/opendkim.sock

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

这将产生:连接到Milter服务unix:/var/run/opendkim/opendkim.sock:权限被拒绝.
但是,套接字umask是002,导致srwxrwxr-x. opendkim:opendkim opendkim.sock.
将umask更改为000可以解决问题.不过,最好让opendkim切换用户:群组,而不仅仅是对世界开放.

环境:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐