K222でいろいろなportsが古いということで、
amavisd-new < needs updating (port has 2.8.0,1)
というのを
portupgrade
する。特にこのportsは、Makefile を書き換える必要があるので、別個にコイツだけUP。する。
# portupgrade -Rp amavisd-new
メールサーバ上で動作していたウイルススキャンがおかしくなったというメモ。
使用ソフト:ClamAV, amavis-new
MTA : Postfix
OS : FreeBSD 6.2
ある日、またメール配送が鈍になった。-_-;
/var/log/clamav/clamd.log Loaded 202261 signatures. ERROR: Socket file /var/run/clamav/clamd could not be bound: Permission denied
/var/log/maillog amavis[1056]: (01056-01) (!)ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd: No such file or directory, retrying (2)
などとなっている。なんなんじゃ?Topすると
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 891 mrtg 1 8 0 10296K 9996K nanslp 1 0:22 0.00% perl 1086 root 1 96 0 3392K 2372K select 1 0:09 0.00% sftp-server 919 vscan 1 20 0 53232K 48996K lockf 1 0:07 0.00% perl5.8.8 927 vscan 1 20 0 56356K 51312K lockf 1 0:06 0.00% perl5.8.8 929 vscan 1 20 0 52080K 48128K lockf 1 0:05 0.00% perl5.8.8
Portupgrade で更新された所為か、top でみると、vscanというユーザが再度出現・・・さらに、ログには
Feb 3 16:30:01 hotshot postfix/smtpd[3669]: disconnect from unknown[221.212.191.118] Feb 3 16:30:02 hotshot amavis[924]: (00924-16) (!)ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd: No such file or directory, retrying (2) Feb 3 16:30:08 hotshot amavis[924]: (00924-16) (!)run_av (ClamAV-clamd, built-in i/f): Too many retries to talk to /var/run/clamav/clamd (Can't connect to UNIX socket /var/run/clamav/clamd: No such file or directory) at (eval 67) line 293. Feb 3 16:30:08 hotshot amavis[924]: (00924-16) (!!)ClamAV-clamd av-scanner FAILED: CODE(0x804d9ac) Too many retries to talk to /var/run/clamav/clamd (Can't connect to UNIX socket /var/run/clamav/clamd: No such file or directory) at (eval 67) line 293. at (eval 67) line 491. Feb 3 16:30:08 hotshot amavis[924]: (00924-16) (!!)WARN: all primary virus scanners failed, considering backups Feb 3 16:30:12 hotshot postfix/smtpd[3693]: connect from localhost[127.0.0.1] Feb 3 16:30:12 hotshot postfix/smtpd[3693]: C8CA256987: client=localhost[127.0.0.1] Feb 3 16:30:12 hotshot postfix/cleanup[3673]: C8CA256987: message-id=<SSXTaim6Hnhnjf@hotshot.smb.net> Feb 3 16:30:12 hotshot postfix/qmgr[1081]: C8CA256987: from=<>, size=3468, nrcpt=1 (queue active) Feb 3 16:30:12 hotshot postfix/smtpd[3693]: disconnect from localhost[127.0.0.1] Feb 3 16:30:12 hotshot amavis[928]: (00928-16) Blocked SPAM, [221.212.191.118] [221.212.191.118] <miyuki_trading@yahoo.c
どうやら、portsupdateかなにかでclamavというユーザ&グループでコンパイルしていたamavisd-new が、再びvscanというユーザ&グループに戻ってしまった模様
とりあえず、
cd /usr/ports/security/amavisd-new % make deinstall ===> Deinstalling for security/amavisd-new ===> Deinstalling amavisd-new-2.4.5_2,1 You should manually remove the "vscan" group. You should manually remove the "vscan" user. You should manually remove the "/var/amavis" directory. You should manually remove the "/var/virusmails" directory. % pw groupdel vscan % pw userdel vscan % rm -rf /var/amavis % rm -rf /var/virusmails
% make rmconfig ===> Removing user-configured options for amavisd-new-2.5.3,1
# cd /usr/ports/security/amavisd-new # cp Makefile Makefile-dist として待避 # vi Makefile --------------------------------- - AMAVISUSER?= vscan #この部分を - AMAVISGROUP?= vscan --------------------------------- + AMAVISUSER?= clamav #このように編集 + AMAVISGROUP?= clamav --------------------------------- #make #make install
デフォルトの状態では、ClamAVに関する部分はコメントになっているので外します。
['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], # NOTE: run clamd under the same user as amavisd; match the socket # name (LocalSocket) in clamav.conf to the socket name in this entry # When running chrooted one may prefer: ["CONTSCAN {}\n","$MYHOME/clamd"],
その他の設定は、こんな感じ。
#$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u #$daemon_group = 'vscan'; # (no default; customary: vscan or amavis), -g $daemon_user = 'clamav'; # (no default; customary: vscan or amavis), -u $daemon_group = 'clamav'; # (no default; customary: vscan or amavis), -g $mydomain = 'your.domain'; #ドメイン名 $myhostname='host.your.domain'; #ホスト名 $notify_method = 'smtp:[127.0.0.1]:10025'; $forward_method = 'smtp:[127.0.0.1]:10025'; #チェックした結果を戻す先 $final_virus_destiny = D_DISCARD; #最終的なウィルス付メールの扱い $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_DISCARD; #SPAMメールの最終的な扱い $final_bad_header_destiny = D_PASS;
これを設定しておかないと/var/run/clamav/clamd が生成されずエラーとなります
/usr/local/etc/clamd.conf User clamav #User vscan LocalSocket /var/run/clamav/clamd #LocalSocket /var/run/clamav/clamd.sock