2021/04/18

clamavとamavisd-newの連携

clamavとamavisd-newに以下のようなエラーログが出ていたので対応した。

Apr 18 11:28:26 hostname clamd[4731]: lstat() failed on: /var/lib/amavishome/tmp/amavis-20210418T112723-10120-wxSrl3Uw/parts
Apr 18 11:28:26 hostname amavis[10120]: (10120-02-4) (!)run_av (ClamAV-clamd) FAILED - unexpected , output="/var/lib/amavishome/tmp/amavis-20210418T112723-10120-wxSrl3Uw/parts: lstat() failed: Permission denied. ERROR\n"
Apr 18 11:28:26 hostname amavis[10120]: (10120-02-4) (!)ClamAV-clamd av-scanner FAILED: CODE(0x564868cfcda0) unexpected , output="/var/lib/amavishome/tmp/amavis-20210418T112723-10120-wxSrl3Uw/parts: lstat() failed: Permission denied. ERROR\n" at (eval 98) line 951.
Apr 18 11:28:26 hostname amavis[10120]: (10120-02-4) (!)WARN: all primary virus scanners failed, considering backups

単純に、clamavアカウントにamavisグループ権限を割り当てるだけ。

usermod -aG amavis clamav

以前はclamd.confに

AllowSupplementaryGroups yes

と入れる必要があったが、今はこのコマンドは非推奨になってしまっている。

clamdとamavisの実行権限が違うので、amavisがclamavのスキャン用に作ったディレクトリにclamdがアクセスできないのが原因。

amavisd.confに以下のようなコメントがあったので、それに従って、amavisグループをつけるべきだったのに、つけていなかった。

# # NOTE: run clamd under the same user as amavisd, or run it under its own
# #   uid such as clamav, add user clamav to the amavis group, and then add
# #   AllowSupplementaryGroups to clamd.conf;
# # NOTE: match socket name (LocalSocket) in clamav.conf to the socket name in
# #   this entry; when running chrooted one may prefer socket "$MYHOME/clamd".

ついでに書いておくと、amavisd.confの中で、clamavの呼び出しに /var/run/clamav/clamd.sock を使っているが、.sockではなく、.ctlになっているので注意。(/var/run/clamav/clamd.ctlに変更する必要がある)

0 件のコメント:

コメントを投稿