アンチウィルスソフト Clam AntiVirus の導入 PC-UNIX 勉強会 松本ソフト開発センター 高砂 1.始めに 現在のところ、Linux を標的にしたウィルスはごく少ない状態ですから Linux サーバのウィルス対策はあ まり必要がないような気がします。しかし、そのサーバを使用するユーザーの多くは Windows でしょう。 そのサーバを使ってメールを受信しているユーザーにウィルスが添付されたメールが送られてきたら、 サーバは何の影響も受けなくてもユーザーは感染するかもしれません。 と言うわけで、サーバをウィルスから保護すると言う目的ではなく、ユーザー宛てのメールに付いて来る ウィルスを除去するためにアンチウィルスソフトの導入を考えました。 2.無償アンチウィルスソフト Linux に対応した無償使用可能なアンチウィルスソフトはいくつかあります。 ・ AntiVir Linux Workstation ドイツの H+BEDV Datentechnik GmbH(http://www.hbedv.com/)の製品 で、個人で非商用に限って無料で使用可能です。インストールなどの詳 しい情報は@IT のサイト内の「Linux 用のアンチウイルスソフトを使うには」 (http://www.atmarkit.co.jp/flinux/rensai/linuxtips/617useantivir.html)を参照してください。 ・ BitDeffender ルーマニアの SOFTWIN 社(http://www.bitdefender.com/)の提供する ウィルス対策ソフトです。Linux 版では、RPM/deb/run 形式のパッケー ジが入手可能です。ウィルスのリアルタイム検索機能はないので、手動で実行するか cron で定 期的に実行させます。 ・ OpenAntiVirus Projects JAVA を利用したオープンソースのウィルス検索ソフトです。プロキ シサーバ用、Samba 用、クライアント PC 用のものがリリースされて います。ウェブサイトは http://www.openantivirus.org/にあります。 ・ Clam AntiVirus オープンソースのウィルス対策ソフトです。公式サイトは http://www.clamav.net/です。Linux 各ディストリビューションや BSD、 Windows 用のバイナリファイルも配布されています。 1 3.Clam AntiVirus とは Clam AntivVrus は GPL ライセンスに従って利用することができるオープンソースのアンチウイルスソフト です。各種 UNIX 系のシステムと Windows でも動作します。シグネチャによるパターンマッチング方式 を採用しており、ウィルスパターンは指定した時間ごとにチェックし、自動で新しいパターンをダウンロー ドします。 主な使用目的は Sendmail などの MTA と連携させて送受信するメールの添付ファイルをチェックする 事ですが、コマンドラインから特定のファイルやディレクトリにウィルスチェックをかける事もできます。次 のような機能、特徴があります。 ・ コマンドラインスキャナー ・ sendmail 用の MILTER インターフェース (後述) ・ 電子署名をサポートしたウィルスデータベースのアップデート ・ ファイルアクセス時のスキャン1(Linux と FreeBSD) ・ 29000 を越すウィルス、ワーム、トロイの木馬に対応 ・ 各種アーカイブファイルのサポート FedoraCore では、Extra パッケージ(インストール CD に入っていない追加パッケージ)として提供されて います。以下の記述を yum.conf に追加することで、yum による Extra パッケージのインストールが可能 になります。 [fedora-extras] name=Fedora Extras $releasever - $basearch - Extra Packages baseurl=http://download.fedora.us/fedora/dedora/$releasever/$basearch/ yu/stable ←(basearch からここまで 1 行で書いてください) [fedora-extras-updates] name=Fedora Extras updates $releasever - $basearch - Extra Packages baseurl=http://download.fedora.us/fedora/dedora/$releasever/$basearch/ yu/updates ←(basearch からここまで 1 行で書いてください) しかし、yum の標準設定で取得できるパッケージはバージョンが古い(0.71)ので、Clam AntiVirus のサ イトから最新版を入手するのが良いでしょう。 1 DAZUKO(発音は dah-tsu-ko)というモジュールが必要になります。これは、サードパーティのプログラムがファイル アクセスを制御できるようにするもので、ドイツの H+BEDV Datentechnik GmbH がウィルススキャンのために開発し たのが始まりです。名前は"file access control"のドイツ語"Dateizugriffskontrolle"に由来します。 公式サイトは http://dazuko.org/です。 2 4.Clam AntiVirus の導入 2005 年 1 月 13 日の時点で、公式サイトにある FedoraCore1 用のバイナリパッケージは clamav-0.80-2.i386.rpm です。また、メールのウィルスチェックをするためには、以下のパッケージも必要です。 clamav-milter-0.80-2.i386.rpm これは MILTER2という sendmail の API を利用して、sendmail が処理中のメールメッセージにアクセスし てウィルスチェックを行なうものです。 インストールは RPM パッケージですので簡単ですが、まずパッケージの正当性をチェックします。 # rpm --import http://crash.fce.vutbr.cz/Petr.Kristof-GPG-KEY # rpm -K clamav* チェックが終わったらインストールします。 # rpm -ivh clamav* これだけです。インストールが終了した時点で、clamav というユーザーがシステムに追加されているは ずです。Clam AntiVirus はこのユーザー権限で動作します。 ついでに将来のアップデートが yum で行なえるようにしておきましょう。yum.conf に以下の記述を追加 しておきます。 [crash-hat] name=Fedora Core $releasever - $basearch - CrashHat baseurl=http://crash.fce.vutbr.cz/crash-hat/$releasever enabled=1 gpgcheck=1 2 MILTER は、sendmail が処理中のメールメッセージをサー ドパーティのプログラムからアクセスできるように設計さ れたメールフィルタ API で、sendmail 8.12 から正式な機能となっています。Sendmail が MILTER を有効にしてコン パイルされているかは以下のコマンドで確認できます。 $ sendmail -d0 < /dev/null 出力結果の Compiled with:に続く文字列中に MILTER の文字があれば有効です。 MILTER については、http://www.imasy.or.jp/~ume/published/sendmail-milter/ の「sendmail 8.12 と MILTER (FreeBSD PRESS No.8)」を参照してください。 3 5.設定 Clam AntiiVirus の設定ファイルは /etc/clamd.conf です。特に変更しなければならないところは無いはずですが、はじめのほうに書かれている Example と いう記述がコメントアウトされている事を確認します。もし、この Example が有効になっていると設定ファ イルが無いというエラーでウィルスチェックができません。 その他主要な設定項目を挙げておきます。 設定項目 値 LogFile /var/log/clamav/clamd.log LogFileMaxSize 説明 ログファイルの指定。 ログの最大サイズ。0 なら制限なし。 M,m で MB、K,k で kB 単位の指定が 0 できる。 LogSyslog なし ログの取得に SYSLOG を使う。 DatabaseDirectory /var/lib/clamav ウィルスデータベースを保存する ディレクトリ。 MaxDirectoryRecursion 15 (デフォルト) ディレクトリをスキャンする際の 最大階層数。 FollowFileSymlinks なし シンボリックリンクを辿ってスキャ ンするかどうか。 VirusEvent /usr/local/bin/send_sms ウィルスを発見した際に実行する 123456789 "VIRUS ALERT: %v" コマンドを記述する。 (一例) User clamav 動作する際のユーザー権限。 ScanPE なし(デフォルトで有効) Windows の 32 ビット実行ファイル をスキャンする。 ScanOLE2 なし(デフォルトで有効) MS Office 文書のマクロをスキャン する。 ScanMail なし(デフォルトで有効) メールをスキャンする。 ScanArchive なし(デフォルトで有効) 圧縮ファイル、アーカイブファイ ルをスキャンする。 Sendmail と連携するための clamav-milter の設定ファイルは /etc/sysconfig/clamav-milter です。インストール直後の内容は次のようになっています。 CLAMAV_FLAGS=" --quiet \ --dont-wait \ --force-scan \ --dont-log-clean \ --server=localhost \ --pidfile=/var/run/clamav/clamav-milter.pid \ local:/var/run/clamav/clamav-milter.sock \ " 4 このように clamav-milter の動作オプションが羅列されています。複数のオプションを 1 行で書く場合は 行末の\は必要ありませんが、複数行に分けて書く場合、このように行末に\が必要です。オプションの 詳細な説明は # man clamav-milter とする事で参照できますが、以下に主要なものを挙げておきます。 オプション 説明 --force-scan メールの発信元がどこであれ、必ずスキャンする。 --local LAN から発信されたメールもスキャンする。 --noxheader 通常、Clamav-milter はスキャンしたメールのヘッダーに X-Virus-Scanned: X-Virus-Status: の二つの項目を付け加えます。これらを付け加えたくない場 合、このオプションを使用します。 --noreject メールにウィルスを発見しても、メールの差出人(From:アド レス)に返送しません。近ごろのウィルスは差出人を詐称しま すので、付けておいた方がいいでしょう。 --outgoing メールサーバから発信されるメールもスキャンします。 --postmaster=EMAILADDRESS 警告メッセージを送る postmaster のアドレス。 --postmaster-only 通常、スキャンしたメールにウィルスが発見されると、宛先 (To:アドレス)と postmaster に「メールを遮断した」と知ら されます。その知らせを postmaster のみにしたい時に使いま す。 --quiet ウィルスを発見してメールを遮断しても、全くメッセージを 発しません。このオプションは --postmaster-only よりも優 先します。 --quarantine-dir=DIR 感染ファイルを隔離するディレクトリを指定します。 --server=HOSTNAME clamd の動作しているサーバを指定する。 ウィルスパターンを最新のものに保つ freshclam の設定ファイルは /etc/freshclam.conf です。ほとんど変更する必要はありませんが、clamd.conf と同じように Example 行がコメントアウトされて いる事を確認します。主要な設定項目は以下の通りです。 設定項目 値 説明 DatabaseDirectory /var/lib/clamav ウィルスデータベースを保存するディ レクトリ。 UpdateLogFile /var/log/clamav/freshclam.log freshclam のログファイルを指定する。 LogSyslog なし(デフォルトで無効) SYSLOG を利用するかどうか。 Checks 24(一例) ウィルスデータベースの更新を、1 日 に何回チェックするか。 5 6.Clam AntiVirus の利用 まず、最初にウィルスパターンファイルを最新のものにします。 # freshclam 次のように Clam AntiVirus 関連の 3 つのデーモンを起動します。 # service clamd start # service freshclam start # service clamav-milter start また、システムを起動した際にこれらのデーモンも自動起動するように chkconfig で設定しておきましょう。 # chkconfig --level 35 clamd on # chkconfig --level 35 freshclam on # chkconfig --level 35 clamav-milter on コマンドラインでの書式は次のようになります。 clamscan [options] [file/directory] 例えば # clamscan /root とすると、/root ディレクトリ内のファイルをスキャンします。ファイルの名前の後ろに OK と付いていれば、 そのファイルにウィルスは見つからなかった事になります。最後にサマリーが表示されます。次に示す 例では、5 つの感染ファイルが見つかっています。 ----------- SCAN SUMMARY ----------Known viruses: 29410 Scanned directories: 1 Scanned files: 34 Infected files: 5 Data scanned: 0.30 MB I/O buffer size: 131072 bytes Time: 6.510 sec (0 m 6 s) clamscan コマンドに与えるオプションには以下のようなものがあります。 -r サブディレクトリも再帰的にスキャンします。 --remove 感染ファイルを削除します。 --quiet エラーメッセージ以外出力しません。 --move=DIRECTORY 感染ファイルを指定したディレクトリに移動します。 定期的にスキャンを実行するなら、cron に登録しておきましょう。 6 7.sendmail との連携 sendmail と連携させてメールの送受信時にウィルスチェックさせるには、sendmail の設定変更が必要で す。/etc/mail/sendmail.mc の末尾に以下の記述を追加し、sendmail.cf ファイルを作成しなおします。 INPUT_MAIL_FILTER(`clamilter', `S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m')dnl ←(ここまで 1 行で書いてください) define(`confINPUT_MAIL_FILTERS', `clamilter')dnl その後、sendmail を再起動します。 実際にウィルスを送って動作の確認します。その為のサービス「Anti-Virus Testing Tool」が Webmail.us というサイトにあります。http://www.webmail.us/testvirus にアクセスしてテストします。このテストでは、 EICAR3という実害のないテスト用ウィルスを指定のアドレスに向けて送信します。 Anti-Virus Testing Tool の使い方は以下になります。 Step1 テストしたいメールアドレスを入力します。 Step2 [Send]ボタンをクリックします。Step1 で入力したアドレスに確認のメールが 届きます。そのメールにある URI にアクセスし、テストを受ける事を了承し ます。 Step3 テスト項目が 27 個あります。それぞれのテストを[Send]ボタンで実行させ ます。 いくつか試したところ、こんなメールがウィルスメールの宛先と postmaster に届きました。 From [email protected] Thu Jan 13 15:41:27 2005 Date: Thu, 13 Jan 2005 15:10:16 +0900 From: [email protected] To: [email protected] Cc: <[email protected]> Auto-Submitted: auto-submitted (antivirus notify) X-Infected-Received-From: crc2.excedent.us [206.158.107.157] Subject: Virus intercepted X-Virus-Scanned: ClamAV 0.80/663/Wed Jan 12 07:44:48 2005 clamav-milter version 0.80j on localhost X-Virus-Status: Clean A message sent from <[email protected]> to <[email protected]> contained Eicar-Test-Signature and has not been delivered. ウィルスメールがサーバに届いた時点で、Clam AntiVIrus は即座にそのメールを遮断しますが、上記 の警告メールはすぐには届かず、しばらくたってから届きました。 3 EICAR について詳しく知りたい方は、http://www.eicar.org/をご覧下さい。 7 【参考サイト】 「Clam AV: Project News」 http://www.clamav.net/ Clam AntiVirus の公式サイトです。各 OS 用のバイナリパッケージが入手できます。 「ClamAV のページ」 http://clamav-jp.sourceforge.jp/ Clam AntiVirus の非公式日本語情報サイトです。「Clam Antivirus に関するメモ」では マニュアルを日本語で読めます。 「ほかり net」 http://www.hokari.net/ Clam AntiVirus の導入方法が非常に簡潔に説明されています。 8
© Copyright 2024 Paperzz