clamav-milterソケットへのpostfix接続に関する権限の問題

clamav-milterソケットへのpostfix接続に関する権限の問題

私は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

関連情報