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 文件,postfix 預設執行在“chroot 模式”,所以 postfix 被鎖定到 /var/spool/postfix/,根據postfix 文件,如果執行在“chroot 模式”,所有 milter (socket)引用是相對的(相對於 /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"
但是當我嘗試作為後綴連接時,什麼也沒有發生:
# 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 在調試這個程序時被暫時禁用(允許)。每次配置更改後,我都會重新啟動兩個程序(opendkim 和 postfix)。
我還缺少什麼?
版本:
CentOS 6.5 Postfix v2.6.6 Opendkim v2.9
在我的 CentOS6 上測試後綴似乎並不是真的“chrooted”。
我的設置:
# /etc/opendkim.conf Socket local:/var/run/opendkim/opendkim.sock # /etc/postfix/main.cf smtpd_milters = unix:/var/run/opendkim/opendkim.sock
這將產生:
connect to Milter service unix:/var/run/opendkim/opendkim.sock: Permission denied
.但是,套接字 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