#author("2019-02-26T12:53:05+09:00","default:kuji","kuji") #author("2019-02-26T14:58:57+09:00","default:kuji","kuji") [[VirusScan on Mail Server]] *Virus Scan on Mail Server [#p05ec9de] #counter([total|today|yesterday]); RIGHT:&lastmod;更新 ---- Contents #contents [[VirusScan on Mail Server-Update]] ---- *clamd ソケット [#kd22aff7] 正常な状態 hotshot# cd /var/run/clamav hotshot# ll total 4 srw-rw-rw- 1 clamav clamav 0 Apr 22 09:18 clamd -rw-rw-r-- 1 clamav clamav 4 Apr 22 09:18 clamd.pid -rw-rw---- 1 clamav clamav 4 Apr 22 09:18 freshclam.pid *TOP [#w6eff6b5] 正常時のメールサーバの top (Virus scan 関連) PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 667 clamav 1 96 0 57056K 1636K select 0 0:02 0.00% perl5.8.8 974 clamav 1 96 0 58212K 36572K select 0 0:00 0.00% perl5.8.8 975 clamav 1 20 0 57948K 34044K lockf 1 0:00 0.00% perl5.8.8 676 clamav 1 4 0 75960K 0K accept 1 0:00 0.00% clamd 681 clamav 1 20 0 4280K 0K pause 0 0:00 0.00% freshclam *ClamAV engine is outdated. [#y42905fa] Jan 17 08:51:31 k222 kernel: Starting clamav_clamd. Jan 17 08:51:31 k222 kernel: LibClamAV Warning: *********************************************************** Jan 17 08:51:31 k222 kernel: LibClamAV Warning: *** This version of the ClamAV engine is outdated. *** Jan 17 08:51:31 k222 kernel: LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq *** Jan 17 08:51:31 k222 kernel: LibClamAV Warning: *********************************************************** Jan 17 08:51:33 k222 kernel: Starting clamav_freshclam. k222# pkg_info k222# portupgrade clamav-0.95.1_1 んで、何かの拍子に/var/amavis/*/ と、/var/virusmails のオーナーがvscan なんかに成ってしまっていたので、 # chown clamav:clamav /var/amavis/ 等としておく。 **起動時のエラー? [#h8fcbd3a] 起動時の(flora=マシン名)コンソールログに(cf: [[コンソール上のログを採取]] ) Jan 21 04:34:46 flora amavis[877]: (00877-01) (!)ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd: No such file or directory, retrying (2) Jan 21 04:34:52 flora amavis[877]: (00877-01) (!!)ClamAV-clamd av-scanner FAILED: run_av error: 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 113) line 309. Jan 21 04:34:52 flora amavis[877]: (00877-01) (!!)WARN: all primary virus scanners failed, considering backups などという警告がでるので、 // # mkdir /var/run/clamv/clamv // # chown clamav:clamav /var/run/clamv/clamd //しておく。これで // Jan 21 04:52:13 flora amavis[667]: Using primary internal av scanner code for ClamAV-clamd // Jan 21 04:52:13 flora amavis[667]: Found secondary av scanner ClamAV-clamscan at /usr/local/bin/clamscan // Jan 21 04:52:13 flora amavis[667]: Creating db in /var/amavis/db/; BerkeleyDB 0.36, libdb 4.1 // Jan 21 04:52:16 flora kernel: Starting clamav_freshclam. //と、エラーは無くなったが、/var/run/clamv/clamd/ には、な~んにも無い??? ***/usr/local/etc/clamd.conf [#o415c1a4] これを設定しておかないと/var/run/clamav/clamd が生成されずエラーとなるらしいので^^ /usr/local/etc/clamd.conf User clamav #User vscan LocalSocket /var/run/clamav/clamd #LocalSocket /var/run/clamav/clamd.sock と設定し、 Jan 21 05:38:54 flora amavis[666]: Using primary internal av scanner code for ClamAV-clamd Jan 21 05:38:54 flora amavis[666]: Found secondary av scanner ClamAV-clamscan at /usr/local/bin/clamscan Jan 21 05:38:54 flora amavis[666]: Creating db in /var/amavis/db/; BerkeleyDB 0.36, libdb 4.1 Jan 21 05:38:57 flora kernel: Starting clamav_freshclam. となりました。 ---- ---- *メールサーバ上でウイルススキャン&スパムスキャンを動作させるメモ。~ [#p9d069e8] 使用ソフト:ClamAV, amavis-new~ MTA : [[Postfix>Postfix on FreeBSD]]~ OS : FreeBSD 8.2R~ +[[Clam AV のインストール>#fd009bcf]] +[[amavis-new のインストール>#g4afcc19]] +[[「amavisd-new」と「Clam AV」の実行ユーザを同じにする必要がある>#o6ed4ca0]] +[[「amavisd-new」の側を変更する場合は>#d616f97e]]ここから読んだほうがよいかも +[[amavis-new 設定>#x11567ad]] ++[[/usr/local/etc/amavisd.conf>#s14d1f31]] ++[[/etc/rc.conf>#be3dac07]] +[[MTA(Postfix)との接続>#g20fecb9]] ++[[MTA(Postfix)との接続をするための設定>#a54e9955]] +[[Junk>#l1a9111c]] ---- http://www.google.co.jp/search?hl=ja&q=amavis+postfix+clamav+FreeBSD&lr= http://www.google.co.jp/search?hl=ja&q=amavis+postfix+clamav+FreeBSD+6.2&lr= ---- **Clam AV [#fd009bcf] http://clamav-jp.sourceforge.jp/ cd /usr/ports/security/clamav make install clean #ref(clamav.jpg) ===> Registering installation for clamav-0.91.2 ===> SECURITY REPORT: This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system. /usr/local/sbin/clamd This port has installed the following startup scripts which may cause these network services to be started at boot time. /usr/local/etc/rc.d/clamav-milter /usr/local/etc/rc.d/clamav-freshclam /usr/local/etc/rc.d/clamav-clamd /usr/local/etc/clamd.conf LogFileMaxSize 3M LogVerbose yes /etc/rc.conf clamav_clamd_enable="YES" clamav_freshclam_enable="YES" ---- **「amavisd-new」と「Clam AV」の実行ユーザを同じにする必要がある [#o6ed4ca0] ***「amavisd-new」の側を変更 [#d616f97e] http://www.leafgreen.jp/freebsd/clamav.html 何も指定しないとvscanというユーザでAMAViSが動作するのですが、ClamAVを使用する場合、ClamAVとAMAViSのユーザを一致させる必要があります。ClamAVをvscanで動作させるのでもよいのですが、ClamAVをportupgradeなどで更新した場合、ClamAVが使用するディレクトリやファイルなどがclamavユーザとなってしまい、毎度ユーザを変更しなくてはなりません。(※何か方法がありそうですが・・・make.confとか?) なので、私はAMAViSをclamavユーザで動作させるようにしました。 # cd /usr/ports/security/amavisd-new # cp Makefile Makefile-dist として待避 # vi Makefile --------------------------------- - AMAVISUSER?= vscan #この部分を - AMAVISGROUP?= vscan --------------------------------- + AMAVISUSER?= clamav #このように編集 + AMAVISGROUP?= clamav --------------------------------- #portinstall security/amavisd-new としてインストール~ インストールされた/var/amavisなどが望みのオーナかどうか確認する # pwd /var/amavis # ll total 6 drwxr-x--- 2 clamav clamav 512 Sep 28 04:38 db drwxr-x--- 2 clamav clamav 512 Sep 28 04:38 tmp drwxr-x--- 2 clamav clamav 512 Sep 28 04:38 var OK。 **amavis-new 設定 [#x11567ad] ***/usr/local/etc/amavisd.conf [#s14d1f31] デフォルトの状態では、ClamAVに関する部分はコメントになっているので外します。 ### http://www.clamav.net/ ['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"], その他の設定は、こんな感じ。 $mydomain = 'your.domain'; #ドメイン名 $myhostname='host.your.domain'; #ホスト名 $notify_method = 'smtp:[127.0.0.1]:10025'; $forward_method = 'smtp:[127.0.0.1]:10025'; #チェックした結果を戻す先 // $forward_method = 'smtp:127.0.0.1:10025'; $notify_method = $forward_method; // $insert_received_line = 0; // $DO_SYSLOG = 0; // $LOGFILE = "/var/log/amavis/amavis.log"; // $hdr_encoding = 'iso-2022-jp'; // $bdy_encoding = 'iso-2022-jp'; $final_virus_destiny = D_DISCARD; #最終的なウィルス付メールの扱い $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_DISCARD; #SPAMメールの最終的な扱い $final_bad_header_destiny = D_PASS; // $warnvirussender = 0; // $warnspamsender = 0; //$warnbannedsender = 0; //$spam_admin = 'spamalert@$mydomain'; #SPAM検出時の通知先 //$virus_admin ='virusalert@$mydomain'; #ウィルス検出時の通知先 ***/etc/rc.conf [#be3dac07] amavisd_enable="YES" ***ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd [#i8db55f2] というエラーがでていた Dec 1 00:00:03 blackcube amavis[98844]: (98844-11) (!)ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd: 2, retrying (2) Dec 1 00:00:09 blackcube amavis[98844]: (98844-11) (!!)ClamAV-clamd av-scanner FAILED: run_av error: 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 103) line 325. で、/var/run/clamav には、clamd ではなく、 clamd.sock となっているので /usr/local/etc/amavisd.conf ### http://www.clamav.net/ ['ClamAV-clamd', ## \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"], \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], と変更。 ** 初回の起動 [#q7732f6d] # sa-update するヨロシ。 **sa-updateをcronに登録 [#r489233b] crontab 0 2 * * * root /usr/local/bin/sa-update ---- *MTA(Postfix)との接続 [#g20fecb9] **MTA(Postfix)との接続をするための設定 [#a54e9955] #vi /usr/local/etc/postfix/main.cf content_filter = smtp-amavis:[127.0.0.1]:10024 の1行を追加。 #vi /usr/local/etc/postfix/master.cf smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes ※“-o”で始まる行(2行目以降)の先頭には必ずTABやスペースを入れてください。 SPAMやウィルスメールを検出したときに通知されるエイリアスを設定 # vi /etc/mail/aliases virusalert: foo@your.domain spamalert: bar@your.domain # newaliases ---- **Junk [#l1a9111c] mail server が動作緩慢になった。 top してみると PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND 2118 vscan 1 129 0 41592K 39496K RUN 0:41 47.88% clamscan 2113 vscan 1 129 0 41776K 39680K RUN 0:45 47.60% clamscan 871 clamav 1 4 0 46392K 43844K accept 1:40 0.00% clamd と・・・・@@ ググって、 http://www.opensource.apple.com/darwinsource/Current/SpamAssassin-124.6/clamav/docs/Japanese/clamav.html 5.1.3. amavisd-new amavisd-newは、amavisdをもとにMark Martinecが書き直し、パフォーマンスの向上とSpamAssassinによるanti-spam機能を加えたものですが、anti-spamとanti-virusのどちらかを外して使用することもできます。他の商用アンチウイルス製品とclamavとを共用で2重に検査したり、また通常はclamdを使いclamdに問題が発生したときにはclamscanを代わりに使用して対処する、といったこともできます。amavisd.confを編集し、@av_scannersの項目でclamdを有効にして使います。 とのこと。 で、設定を変えた覚えはないけど、 /usr/local/etc/amavisd.conf 見てみたら、 ['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], 辺りがコメントアウトになってますた。 変えた覚えないんだけどな~~~??? **Junk2 [#l058b055] amavisnew のアップグレードした # chown -R clamav:clamav /var/amavis/ **Junk3 /bin/rm: Argument list too long. [#d876e954] /var/virusmails/ に、沢山のファイルがたまっているので、rm すると、 /bin/rm: Argument list too long. といわれるので、 echo /var/virusmails/* | xargs rm した。