Freebsd

postfix 連接 clamav-milter 套接字的權限問題

  • June 8, 2020

我在 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 後綴/smtpd

$$ 85759 $$: 警告: 連接到 Milter 服務 unix:/var/run/clamav/clmilter.sock: 權限被拒絕

Postfix 作為 user:group postfix:postfix 執行。Clamav 作為 clamav:clamav 執行。(當我將 clamav 作為 postfix:postfix 執行時,問題仍然存在。)使用者 postfix 也是 clamav 組的成員。

套接字本身的權限是:

srwxrwxrwx 1 clamav clamav 0B 2018 年 9 月 21 日 11:46:26 /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"

在後綴的 main.cf 中,它也很標準:

smtpd_milters = unix:/var/run/clamav/clmilter.sock inet:127.0.0.1:8891

我忘記了這個問題,但我現在已經工作了一段時間,所以這就是我現在配置它的方式。

Postfix 和 Clamav 的版本:

clamav-0.102.2,1 後綴-3.5.1,1

在 /usr/local/etc/postfix/main.cf 我有 clamav-milter 通過埠 7357 上的 inet:

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

預設情況下,FreeBSD 後綴執行 chroot 到/var/spool/postfix. 更改您的smtpd_milters行,使該目錄成為您的根目錄。例如:

smtpd_milters = unix:/clamav/clamav-milter.ctl, ...

引用自:https://unix.stackexchange.com/questions/470525