オープンソースのウイルス検知ソフトの「Clam AntiVirus」をシステムに導入する。Clam AntiVirusは、UNIX系のシステムで動作するアンチウイルスソフトである。シグネチャによるパターンマッチング方式を採用していて、約29,000種類以上のウイルス、ワームおよびトロイの木馬に対応している。Windows版は、GUIが用意されているが、Linuxで利用する場合は、コマンド操作で行う。
サポートしている圧縮ファイル形式は、zip、RAR(2.0)、tar、gzip、bzip2、MS OLE2、MS Cabinet Files、MS CHM(Compiled HTML)、MS SZDD compression format、UPX(すべて)、FSG(1.3,1.31,1.33,2.0)、Petite(2.x) である。
まず、行うことは、clamavユーザとグループの作成である。サービスの実行権限は、clamavユーザになる。
#groupadd clamav #useradd -g clamav -s /usr/bin/false -c "Clam Antivirus" clamav
Clam AntiVirus から最新安定版の clamav-0.80.tar.gz をダウンロードして解凍する。
$tar zxvf clamav-0.80.tar.gz $cd clamav-0.80 $./configure -- 「--datadir=/var/lib/clamav」のように付加すればデータベースのパスを変更できる $make $su #make install/usr/local以下に次のファイルがインストールされる。(解説類と設定ファイルとにパスやファイル名の相違などがあるので注意)
日々のウイルスを検査するには、言うまでもなくウイルス定義ファイルを更新しなければならない。ウイルス定義ファイルは、 /usr/local/share/clamav/ディレクトリに生成されるmain.cvdおよびdilry.cvdである。main.cvdはほとんどのウィルス定義を格納するファイルであり、daily.cvdは最近追加されたウイルス定義を格納するファイルである。daily.cvdに収録されたウイルス定義は、しばらく後にmain.cvdに移動される。これらウイルス定義ファイルのダウンロードを行うには、freshclamコマンドを用いる。ダウンロードするにはrootの権限が必要である。
#freshclam
これを一定時刻に自動的にダウンロードするように設定し、そのダウンロードの記録をログに残すようにする。 まず、ログファイルを作成する。freshclamはclamavユーザ権限で動作するため、ログファイルなどにclamav権限でアクセスできるようにする。(syslog経由で/var/log/messageに残すこともfreshclam.confの設定で可)
#touch /var/log/clavam-updat.log #chown clamav.clamav /var/log/clam-update.log #chmod 644 /var/log/clavam-update.log
設定ファイル/usr/local/etc/freshclam.confを編集する。
#Example ----コメントを付けることで設定ファイルが有効になる DatabaseDirectory /usr/local/share/clamav UpdateLogFile /var/log/clam-update.log DatabaseOwner clamav DNAdatabaseInfo current.cvd.clamav.net --データベースおよびclamaAVのバージョン情報の通知。ログに表示する。 DatabaseMirror db.jp.clamav.net --日本のミラーサイトを利用するために、xxをjpに置き換える。 DatabaseMirror database.calamav.net --データベースのダウンロードを補完する。必ず有効にしておく。 MaxAttempts 3 ---データベースサイトが応答がない場合、ダウンロートを試みる最大回数(初期値= 3) Checks 12 ---2時間毎のダウンロード 24/2(初期値=12)ウイルス・データベースは2時間毎の更新が推奨されている。その更新の記録を指定ログに出力する。また、clamAVのバージョンアップがあった場合それを知らせてもらう。ダウンロードサイトは、自動的に最寄りのサイトが選択されるようになっているが、日本のサイトを指定する。1つのホスト名に対して複数のIPアドレスを設定するラウンド・ロビンを用いている。「host db.jp.clamav.net」で3件のダウンロードサイトが表示された(2005年1月現在)。
この設定を自動的に処理するためには、cronを利用する。記述は、左から、「分」、「時」,「日」、「月」、「曜日」そして「実行ユーザ」、「実行コマンド」である。ファイルは/var/spool/cron/rootである。
#crontab -e ----viで設定ファイルを開く ------------------------------------------------ MAILTO=root 24 */2 * * * /usr/local/bin/freshclam > /dev/null 2>&1 ------------------------------------------------ #crontab -l ----設定の確認を行う詳細については、「man 5 crontab」で。
これで2時間おきに24分にfreshclamを実行し、エラーの場合のみroot宛にメールが送信される。24分というのは、 データベースサイトへの集中を緩和するために、区切りのよい0、10、20、...の分は登録しないことが推奨されているからである。設定を破棄したい場合は、「crontab -r」を実行する。
なお、freshclamのサービスをデーモンとして(Webサーバやメールサーバのように)起動したい場合には、「-d」オプションをつけ、設定ファイルを指定して起動する。
#freshclam -d --config-file=/usr/local/etc/freshclam.conf
システムの再起動後もfreshclamのサービスを起動するには、/etc/rc.d/rclocal に上記を追記しておけばよい。また、バージョンアップの際には、設定後、一度fresclamデーモンを再起動させる。そうしないと、定義ファイルのダウンロードの度に、バージョンアップを即す警告が常時出ることになる。
なお、最新のウイルス定義ファイルは、以下のデータベースから調べることができる。
■http://news.gmane.org/gmane.comp.security.virus.clamav.virusdb
次にログのローテーションを設定する。ログの肥大化を防ぐためである。/etc/logrotate.confファイルでログローテーションの全般的な設定がなされている。 したがって、ログローテーション用のclam-updateには、全般設定以外の変更や追加を設定すればいいことになる。 1週間毎にログを更新し、4週間分を保存する。空ファイルならば、ローテーションしない。エラーがあってもエラーメッセージ(メールなど)を出さない。ローテーション後には、ファイルの所有者・グループを変更する。
#touch /etc/logrotate.d/clamv -- 設定ファイルclamvの作成 ------------------------------------ "/var/log/clam-update.log" { rotate 4 weekly missingok notifempty create 0640 clamav clamav }
ウイルスの検査を行うには、clamscanコマンドを実行する。clamscanはコマンドとして動作し、実行されるたびにウイルスデータベースを読み込む。
$clamscan ファイル名
Sylpheed とMozilla Thunderbird で受信したメールをウイルススキャンしてみた。「-r」でディレクトリを再帰的にスキャンする。0.80からmboxオプションは廃止された。
$clamscan -r Mail/inbox -r .thunderbird/default.sxm/Mail Mail/inbox//.sylpheed_cache: OK Mail/inbox//.sylpheed_mark: Ok Mail/inbox//17: Worm.Bagle.Z FOUND -- メール17にWin32/Bagle.worm.Z発見 Mail/inbox//.new-cache: OK Mail/inbox//16: OK Mail/inbox//12: OK ---------SCAN SUMMARY -------------- Known viruses: 21635 Scanned directories: 4 Scanned files: 6 Infected files: 1 -- ウイルス1件 Data scanned: 0.11 MB I/O buffer size: 131072 bytes Time: 1.425 sec (0 m 1 s)システムのメールボックスをスキャンするには、
#clamscan -r /var/spool/mail/
ウイルススキャンを行うファイルが多い場合には、「--bell 」でウイルス発見時にベルを鳴らす、「-i」でウイルス感染ファイルのみを表示させてスキャンを実行する。ウイルスを隔離するディレクトリを作成し、そこへ移動させるには、「--move=ディレクトリのパス」である。そして、ウイルスに感染したファイルが表示された場合は、確認後「--remove」で削除する。スキャンの結果をファイルに出力するには、「-l ファイル名」である。
$clamscan -r --bell -i --move=ディレクトリのパス ~/ $clamscan --remove ウイルス感染ファイル
アンチウイルスソフトの動作テスト用を確認するためには、「EICAR」(European Institute for Computer Antivirus Research)というにせ物ウイルスがある。EICARは、アンチウイルスソフトでスキャンするとウイルスとして検出されるが、もちろんほかのファイルに感染したり、システムに害を及ぼすような動作はしない。
■The Anti-Virus test file
上記のサイトから eicar.com、eicar.com.txt、eicar.com.zipおよびeicarcom2.zip をダウンロードして、ウイルスチェックを行う。
なお、現在データベースに登録されているウイルス定義ファイルを参照するには、sigtool コマンドを用いる。
$sigtool --list-sig | less
ユーザが使用するウイルススキャン用のGUIユーティリティ clamaktion-utility (KDE-3.1以上)というのがある。右クリックしホップアップメニューに「ウイルススキャン」の項目が現れ、スキャンを実行するというものである。 ソースファイルを解凍した後、インストール前に、clamaktionの実行ファイルおよびclamaktion.desktopファイルを編集する。
clamaktionの編集箇所: CLAMSCAN=/usr/local/bin/clamscan ----calmscan のパスを指定 QUARANTINE_DIR=$HOME/TMP/quarantine ----このままでもよいが、TMPをClamScanと識別できるように変更。 LOGFILE=$HOME/TMP/clamscan_log ----上と合わせる。 CONFIGURED=no → yesに変更 clamaktion.desktopの編集箇所: Name[jp]=ウイルススキャン ---メニューの表示を記述する。
編集が終わったならば、ユーザ権限で./installを実行する。これでディレクトリやファイルを右クリックすると、「ウイルススキャン」の項目が現れる。スキャンを実行すると、その結果は自動的に端末が起動し表示する。rootも必要ならば、root権限で./installを実行する。
[Prev] | [Top] |