サイトへのアクセス統計をチェックしていると、7 年も前のエントリーを見に来て頂いてるのは有難いのですが、
ほんとに、ふとした思いつきで、AVG AntiVirusのLinux版を入れてみたので、備忘録的にメモ。
ClamAVが動いている環境ではあるのだけど、念のため複数のAnti Virusスキャナを動かしてみよう、という興味本位でのお試しではありますが・・・。
[From ふと思い立ったので、AVGを入れてみた - Soukaku's HENA-CHOKO Blog]
実際のところ、既に AVG 使ってなかったりしますし、 AVG 自体も Linux 用の無償版の公開を取りやめてしまっているので、改めて実情に合わせた新たなエントリーを起こしてみました。
今回の目的も、SMTP に対するウィルスチェックを行う、というものです。
今度は、 Sophos だ!
Linux で使えて無料、という条件だと Sophos Anti-Virus for Linux が該当するので、今回は Sophos を Amavis から呼び出してメールをチェックする形にします。
Linux へのインストールに関しては、以下のところを参考にしつつ、 設定を進めていきます。
今までLinuxの無償アンチウイルスソフトといえばClamAVが代表的でしたが5月18日にSophos Anti-Virus for Linuxに無償版が提供されることが発表され、選択肢が広がりました(個人利用に限りますが…)。
基本的な使い方をさらってみたのでメモしておきます。
[From Sophos Anti-Virus for Linuxを使う - 雑木林]
Sophos Anti-Virus for Linux の入手とインストール
まず、入手ですが、これはプロダクトの紹介ページにある"ダウンロード"のボタンをクリックして、氏名とメールアドレスの入力フォームに必要な情報を入力して、"送信"をクリック。
画面が切り替わったら、"ダウンロード"をクリック。

その後、ライセンス条項の確認画面が表示されるので、同意のチェックボックスにチェックを入れて"送信"をクリック。

改めて、ユーザ情報を入力。
"職業/役職"のプルダウンメニューには個人利用のための選択肢があるので、それを選びます。残りの項目にも設問に合わせて適切な情報を入力/選択したら、"送信"をクリック。

自動的にダウンロードが実行されるので、ダウンロードしたファイルを、インストールターゲットとなるサーバに転送します。
ブラウザによっては、gzip の展開は完了しているはず。
[soukaku@messiah|Downloads]$ pwd
/Users/soukaku/Downloads
[soukaku@messiah|Downloads]$ ls -l sav-linux-free-9.tar
-rw-r--r--@ 1 soukaku staff 510904320 8 18 19:54 sav-linux-free-9.tar
[soukaku@messiah|Downloads]$ scp -p sav-linux-free-9.tar nexus01:~
sav-linux-free-9.tar 100% 487MB 5.5MB/s 01:29
ターゲットのサーバにssh 接続したら、転送したファイルが有ることを確認して、tar で解凍。
soukaku@nexus01:[~]$ ls -l sav-linux-free-9.tar
-rw-r--r-- 1 soukaku soukaku 510904320 Aug 18 19:54 sav-linux-free-9.tar
soukaku@nexus01:[~]$ tar tvf sav-linux-free-9.tar
drwxr-xr-x root/root 0 2016-05-25 02:46 sophos-av/
-rw-r--r-- root/root 226232320 2016-05-25 02:46 sophos-av/sav.tar
-rw-r--r-- root/root 268646400 2016-05-25 02:46 sophos-av/talpa.tar
-rw-r--r-- root/root 16015360 2016-05-25 02:46 sophos-av/uncdownload.tar
-rwxr-xr-x root/root 1415 2016-05-25 02:46 sophos-av/install.sh
soukaku@nexus01:[~]$ tar xvf sav-linux-free-9.tar
sophos-av/
sophos-av/sav.tar
sophos-av/talpa.tar
sophos-av/uncdownload.tar
sophos-av/install.sh
一般ユーザの権限ではインストール出来ないんで、root になって解凍したディレクトリ中の install.sh を実行。
基本的には、表示されたメッセージにしがって、インストールを進めていきます。
soukaku@nexus01:[~]$ su -
Password:
nexus01:~# ls -l ~soukaku/sophos-av/
合計 498936
-rwxr-xr-x 1 soukaku soukaku 1415 5月 25 02:46 install.sh
-rw-r--r-- 1 soukaku soukaku 226232320 5月 25 02:46 sav.tar
-rw-r--r-- 1 soukaku soukaku 268646400 5月 25 02:46 talpa.tar
-rw-r--r-- 1 soukaku soukaku 16015360 5月 25 02:46 uncdownload.tar
nexus01:~# ~soukaku/sophos-av/install.sh
Sophos Anti-Virus
=================
Copyright (c) 1989-2016 Sophos Limited. All rights reserved.
Sophos Anti-Virus インストーラへようこそ。Sophos Anti-Virus には、オンアクセススキャナ、オンデマンドコマンドラインスキャナ、Sophos Anti-Virus デーモン、および Sophos Anti-Virus GUI があります。
オンアクセススキャナ ファイルがアクセスされると検索し、未感染の場合のみアクセスを許可
オンデマンドスキャナ コンピュータの全体または一部を直ちに検索
Sophos Anti-Virus デーモン Sophos Anti-Virus にコントロール、ログ、メール警告機能を提供するバックグラウンドプロセス
Sophos Anti-Virus GUI Web ブラウザ経由でアクセスするユーザーインターフェース
「Enter」キーを押して、使用許諾契約書を表示してください。そして、<spc> を押してスクロールダウンしてください。
指示の通り、使用許諾を表示していくと、同意を求められるので、"はい"を選択。以降インストール先などを聞かれますが、特に変更する必要はないので、選択された初期値のままで進んでいきます。
ライセンス内容に同意しますか? はい(Y)/いいえ(N) [N]
> y
Sophos Anti-Virus のインストール先を指定してください。 [/opt/sophos-av]
>
オンアクセス検索を有効にしますか? はい(Y)/いいえ(N) [Y]
>
ソフォスは、Sophos Anti-Virus での自動アップデートの設定をお勧めします。
ソフォスから直接アップデートしたり(要アカウント情報)、自社サーバー(ディレクトリや Web サイト(アカウント情報が必要な場合もあります))からアップデートすることができます。
オートアップデートの種類を選択してください: ソフォス(s)/自社サーバー(o)/なし(n) [s]
>
アップデート先の選択に続いて、無償版としてインストールするかどうかを聞かれますので、ここは "f" を選択。その後でアップデート時にプロキシを経由するかどうかを聞かれるので、必要ならばプロキシの情報を入力してください。
ソフォスから直接アップデートしています。
SAV for Linux の無償バージョン (f) と サポート対応付きバージョン (s) のどちらをインストールしますか? [s]
> f
Sophos Anti-Virus for Linux の無償バージョンに対して、サポート対応は提供されていません。
無償ツールのフォーラムは次のサイトを参照してください。http://openforum.sophos.com/
ソフォスからアップデートを行うためにプロキシが必要ですか? はい(Y)/いいえ(N) [N]
> y
プロキシサーバーのアドレスを入力してください。 [http://webcache:8080/]
> http://172.16.0.254:3128/
無償のアップデート用アカウント情報を取得しています。
Sophos Anti-Virus をインストールしています....
適切なカーネルサポートを選択しています...
Sophos Anti-Virus が起動すると、カーネルサポートを見つけるためアップデートします。 これによって大幅な遅れが発生することがあります。
Sophos Anti-Virus は、インストール終了後、開始されました。
インストールが完了しました。
オンアクセス検索は実行できません。適切なカーネルサポートを取得・構築することができませんでした。
"完了しました"が表示されれば、インストールは終了です。
"オンアクセス検索は実行できません。〜"というメッセージが出ていますが、Debianの場合はこの機能が使えないのが仕様なので、無視して構いません。
Amavis 側を設定する
インストールが完了した時点で、 Sophos Anti-Virus は起動しているので、
soukaku@nexus01:[~]$ ps axf |grep sav
28494 ? Ssl 0:00 savd etc/savd.cfg
28562 ? Sl 0:00 \_ savscand --incident=unix://tmp/incident --namedscan=unix://root@tmp/namedscansprocessor.0 --ondemandcontrol=socketpair://35/36
Amavis を経由して sav でメールをスキャンするように設定するために、 /etc/amavis/conf.d/15-av_scanners
の終わりの方にある "Sophos Anti Virus (sweep)" に関する記述の部分を修正して、有効な状態にします。
nexus01:~# diff -u /etc/amavis/conf.d/15-av_scanners~ /etc/amavis/conf.d/15-av_scanners
--- /etc/amavis/conf.d/15-av_scanners~ 2011-06-08 14:17:05.000000000 +0900
+++ /etc/amavis/conf.d/15-av_scanners 2016-08-18 22:33:00.593288199 +0900
@@ -455,12 +455,12 @@
# in the path when enabling.
#
# ### http://www.sophos.com/ - backs up Sophie or SAVI-Perl
-# ['Sophos Anti Virus (sweep)', 'sweep',
-# '-nb -f -all -rec -ss -sc -archive -cab -mime -oe -tnef '.
-# '--no-reset-atime {}',
-# [0,2], qr/Virus .*? found/m,
-# qr/^>>> Virus(?: fragment)? '?(.*?)'? found/m,
-# ],
+['Sophos Anti Virus (sweep)', 'sweep',
+ '-nb -f -all -rec -ss -sc -archive -cab -mime -oe -tnef '.
+ '--no-reset-atime {}',
+ [0,2], qr/Virus .*? found/m,
+ qr/^>>> Virus(?: fragment)? '?(.*?)'? found/m,
+],
# # other options to consider: -idedir=/usr/local/sav
# Always succeeds and considers mail clean.
終わったら "service amavis restart
" して、"/var/log/mail.log" に
Aug 18 22:42:01 nexus01 amavis[9907]: Found secondary av scanner Sophos Anti Virus (sweep) at /usr/local/bin/sweep
というログが残っていれば設定完了。
あくまでも、メインは clamav で sav はバックアップという位置付けなので、 clamd を意図的に停止した上で、ボディに eicar テストウィルスのシグネチャを含むメールを送ると
Aug 18 23:23:46 nexus01 amavis[28875]: (28875-01) Open relay? Nonlocal recips but not originating: soukaku@gmail
Aug 18 23:23:46 nexus01 amavis[28875]: (28875-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:23:46 nexus01 amavis[28875]: (28875-01) ClamAV-clamd: All attempts (1) failed connecting to /var/run/clamav/clamd.ctl, retrying (1)
Aug 18 23:23:47 nexus01 amavis[28875]: (28875-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:23:47 nexus01 amavis[28875]: (28875-01) (!)ClamAV-clamd: All attempts (1) failed connecting to /var/run/clamav/clamd.ctl, retrying (2)
Aug 18 23:23:53 nexus01 amavis[28875]: (28875-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:23:53 nexus01 amavis[28875]: (28875-01) (!)ClamAV-clamd av-scanner FAILED: run_av error: Too many retries to talk to /var/run/clamav/clamd.ctl (All attempts (1) failed connecting to /var/run/clamav/clamd.ctl) at (eval 108) line 613.\n
Aug 18 23:23:53 nexus01 amavis[28875]: (28875-01) (!)WARN: all primary virus scanners failed, considering backups
Aug 18 23:24:16 nexus01 amavis[28876]: (28876-01) Checking: uX6PMiSC2TXF AM.PDP-SOCK [127.0.0.1] <root@nexus01.local.downtown.jp> -> >root@localhost>
Aug 18 23:24:16 nexus01 amavis[28876]: (28876-01) Open relay? Nonlocal recips but not originating: root@localhost
Aug 18 23:24:16 nexus01 amavis[28876]: (28876-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:24:16 nexus01 amavis[28876]: (28876-01) ClamAV-clamd: All attempts (1) failed connecting to /var/run/clamav/clamd.ctl, retrying (1)
Aug 18 23:24:17 nexus01 amavis[28875]: (28875-01) local delivery: <root@nexus01.downtown.jp> -> virus-quarantine, mbx=/var/lib/amavis/virusmails/1/virus-1IxIOOlOs52d
Aug 18 23:24:17 nexus01 amavis[28875]: (28875-01) PkXMdOupbnI4(1IxIOOlOs52d) SEND from <postmaster@nexus01.downtown.jp> -> <postmaster@nexus01.downtown.jp>, ENVID=AM.PkXMdOupbnI4.20160818T142417Z@nexus01.downtown.jp 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 1C837EFC47B
Aug 18 23:24:17 nexus01 amavis[28875]: (28875-01) Blocked INFECTED (EICAR-AV-Test) {DiscardedOpenRelay,Quarantined}, AM.PDP-SOCK [127.0.0.1] <root@nexus01.downtown.jp> -> <soukaku@gmail>, quarantine: 1/virus-1IxIOOlOs52d, Queue-ID: 63CCAEFC479, Message-ID: <20160818142346.63CCAEFC479@nexus01.downtown.jp>, mail_id: 1IxIOOlOs52d, Hits: -, size: 873, dkim_sd=2012:downtown.jp, 31069 ms
Aug 18 23:24:17 nexus01 amavis[28876]: (28876-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:24:17 nexus01 amavis[28876]: (28876-01) (!)ClamAV-clamd: All attempts (1) failed connecting to /var/run/clamav/clamd.ctl, retrying (2)
Aug 18 23:24:23 nexus01 amavis[28876]: (28876-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Aug 18 23:24:23 nexus01 amavis[28876]: (28876-01) (!)ClamAV-clamd av-scanner FAILED: run_av error: Too many retries to talk to /var/run/clamav/clamd.ctl (All attempts (1) failed connecting to /var/run/clamav/clamd.ctl) at (eval 108) line 613.\n
Aug 18 23:24:23 nexus01 amavis[28876]: (28876-01) (!)WARN: all primary virus scanners failed, considering backups
clamd でのスキャンできなかったにも関わらず、メール自体をブロックした記録が残ってますし、sav のログにも
nexus01:~# /opt/sophos-av/bin/savlog | grep -i eicar
2016年08月18日 23時24分16秒: log.threat オンデマンド検索中、脅威が /var/lib/amavis/tmp/afXXXXB3DbR7/parts/p001: EICAR-AV-Test で検出されました。(ファイルはまだ感染しています。)
と、記録されていますから、savでも問題なくメールのスキャンが出来ていることがわかります。
これで、clamd が何らかのトラブルで万が一停止してしまったとしても、ウィルス付きメールの送受信が行われることをブロック出来るようになりました。
コメントする