私はFreeBSD 11.2でpostfix postfix-3.3.1_1,1とclamav-milter clamav-milter-0.100.1_1を実行しています。 Postfixとmilterはソケットを介して通信するように設定されています。私はpostfixで作業するためにmilterを取得できません。何かを見落としているようです。
maillog
私のメッセージは次のとおりです。
xSep 21 11:33:57 mail2 postfix/smtpd[85759]: 警告: Milter サービス unix に接続中: /var/run/clamav/clmilter.sock: 権限が拒否されました。
Postfixはユーザー:グループpostfix:postfixとして実行されます。 Clamavはclamav:clamavとして実行されます。 (clamavをpostfix:postfixとして実行すると問題は解決しません。)ユーザーpostfixもclamavグループのメンバーです。
ソケット自体に対する権限は次のとおりです。
srwxrwxrwx 1 clamav clamav 0B 9月21日 11:46:26 2018 /var/run/clamav/clmilter.sock
clamav-milter.confでdefaultを実行しましたが、ユーザーを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