AVGをやめてSophos Anti-Virus for Linux を使ってみる

サイトへのアクセス統計をチェックしていると、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 が何らかのトラブルで万が一停止してしまったとしても、ウィルス付きメールの送受信が行われることをブロック出来るようになりました。

トラックバック(0)

コメントする