我在 FreeBSD 11.2 上运行 postfix postfix-3.3.1_1,1 和 clamav-milter clamav-milter-0.100.1_1 。 Postfix 和 milter 设置为通过套接字进行通信。我无法让 milter 和 postfix 一起工作,我一定是忽略了一些东西。
在我的maillog
我收到这些消息:
xSep 21 11:33:57 mail2 postfix/smtpd[85759]:警告:连接到 Milter 服务 unix:/var/run/clamav/clmilter.sock:权限被拒绝
Postfix 以用户:组 postfix:postfix 运行。 Clamav 运行为 clamav:clamav。 (当我作为 postfix:postfix 运行 clamav 时,问题仍然存在。)用户 postfix 也是 clamav 组的成员。
套接字本身的权限是:
srwxrwxrwx 1 clamav clamav 0B 九月 21 11:46:26 2018 /var/run/clamav/clmilter.sock
在 clamav-milter.conf 中,我运行默认值,将用户更改为 postfix 不起作用:
MilterSocket unix:/var/run/clamav/clmilter.sock
# MilterSocket unix:/var/spool/postfix/var/run/clamav/clmilter.sock
# MilterSocket inet:8890
# ClamdSocket unix:/var/run/clamav/clmilter.sock
#MilterSocket inet:7357
# Define the group ownership for the (unix) milter socket.
# Default: disabled (the primary group of the user running clamd)
#MilterSocketGroup postfix
# Sets the permissions on the (unix) milter socket to the specified mode.
# Default: disabled (obey umask)
#MilterSocketMode 660
# Remove stale socket after unclean shutdown.
#
# Default: yes
FixStaleSocket yes
# Run as another user (clamav-milter must be started by root for this option to work)
#
# Default: unset (don't drop privileges)
User postfix
在 rc.conf 中
clamav_milter_enable="YES"
clamav_milter_socket="/var/run/clamav/clmilter.sock"
clamav_milter_socket_user="postfix"
clamav_milter_socket_group="postfix"
在 postfix 的 main.cf 中,它也是相当标准的:
smtpd_milters = unix:/var/run/clamav/clmilter.sock inet:127.0.0.1:8891
答案1
默认情况下,FreeBSD postfix 运行 chroot 到/var/spool/postfix
.更改您的smtpd_milters
行,使该目录成为您的根目录。例如:
smtpd_milters = unix:/clamav/clamav-milter.ctl, ...
答案2
我忘记了这个问题,但我已经工作了一段时间了,所以这里就是我现在的配置方式。
Postfix 和 Clamav 的版本:
clamav-0.102.2,1 postfix-3.5.1,1
在 /usr/local/etc/postfix/main.cf 中,我通过 inet 在端口 7357 上安装了 clamav-milter:
smtpd_milters = inet:127.0.0.1:7357 inet:127.0.0.1:8891
milter_default_action = accept
在 /usr/local/etc/clamav-milter.conf 中:
MilterSocket inet:7357
FixStaleSocket yes
PidFile /var/run/clamav/clamav-milter.pid
ClamdSocket unix:/var/run/clamav/clamd.sock
在 /usr/local/etc/clamd.conf 中:
PidFile /var/run/clamav/clamd.pid
LocalSocket /var/run/clamav/clamd.sock
User clamav
在/etc/rc.conf中:
clamav_freshclam_enable="YES"
clamav_clamd_enable="YES"
clamav_milter_enable="YES"
clamav_milter_socket="inet:7357"
clamav_milter_socket_mode=777