LANDISK にウィルスチェックを入れる

[戻る]

はじめに

ウィルスチェックソフトの類が嫌いです. PC 起動時に妙なウィンドウを出して邪魔したり, 勝手にディスクをガリガリしたり, メールを検閲したり... もちろん有用性は認めます. 勝手にされるのが嫌なんです. という訳で昔は, 適当にオプション弄って, 「たまにはウィルスチェックしてみるか」とデフラグと同じような 感覚で行ったり, ネットから得たファイルのみに対して 「念の為チェックしてみるか」と確かめていました. しかし最近のチェッカはそういうオプションが使えないのが多いです. っと言う訳で, 危ないですが入れずに済む PC には入れないという 主義で通しています.

もちろんノーガード戦法を全うしているというわけではありません. 念のため,

  1. ソフトのダウンロードはできるだけ有名所からのみ行う
  2. 聞いたことがサイト上の有用そうなソフトは, 実行前にチェッカの入った PC に持っていってチェック
  3. 見知らぬ人からの実行形式の添付メールはゴミ箱へ直行
  4. 時折タスクマネージャで実行中のプロセスを観察
くらいはやっています (これで万全というつもりはありません. やらんよりいくらかマシと思っている程度だということです).

っで問題は 2. ですが, 正直面倒です. 一応 オンラインチェック みたいなサービスがあるのは知っていますが, 送ったファイルをどう扱われるか不安ですし... っと言う訳で LANDISK (HDL-160U) を使って似たようなものを構築してみました.

原理

要はフリーのウィルスチェッカ: ClamAV を入れて cgi からアップロードして調べてもらうというものです. 実は LANDISK は非常に非力なためチェックに時間がかかります. 月に一度程度の利用頻度なら我慢できますが, 頻繁にやるとか, 既に PC-Linux サーバが常時起動しているなら, そっちでやった方が いいでしょう.

最終的には, エクスプローラの右クリックでメニューを出して, 怪しいファイルをチェックするようにしたいと思います. 作るのはそんなに難しくないと思っているのですが, いかんせん今はそんな暇がありません. まぁこれはそのうちと考えています.

コンパイル

一応コンパイルした手順を書いておきます. 私の LANDISK は過去にいろいろ作ったので, 素の (セルフコンパイル環境を構築しただけの) 環境では動かないかもしれません. まぁ HDL-160U も時代遅れの感があり, これ見て実際に行動を起こす人が 居るとは思えないので, その辺ははしょります.

  1. 仮想ルートへ移動
  2. zlib をコンパイルしてインストール
  3. clamav-0.92.1.tar.gz を展開
  4. 以下のコマンドを実行
    # addgroup clamav
    # useradd -g clamav -s /bin/false clamav
    
  5. 3 で展開したディレクトリに移動
  6. 以下のコマンドを実行
    # ./configure --prefix=/mnt/hda3/bin
    # make
    # make install
    
  7. オリジナルの環境へ移動
  8. 6. で作られたディレクトリ (例えば /mnt/hda3/vroot/mnt/hda3/bin) 一式を 本来の場所 (/mnt/hda3/bin) にコピー
  9. /mnt/hda3/bin/etc/freshclam.conf を開き Example をコメントアウト
  10. /mnt/hda3/bin/etc/clamd.conf を開き

っといった感じです. 構築物は今更置いても誰も使わないでしょうから, 今回はパスします.

活用法

  1. ルートパーティションを Read/Write モードにする
  2. 上記 4. と同じ操作を行う.
  3. /mnt/hda3/bin/bin/freshclam を実行
  4. /mnt/hda3/bin/sbin/clamd を実行
  5. apatch から見える所に このCGI を置く.
  6. 他の PC (ブラウザ) から 5 の CGI をアクセスする.
といった感じです.

このうち 3 のウィルス定義ファイルの更新は定期的に行う必要があります. 次のようなファイルを /mnt/hda3/bin/bin/freshclamd という名前か何かで作って cron に仕込めばいいでしょう. 間隔は, もともと滅多に使わないんだし 3 日〜1 週間に一度程度でいいと思います.

#!/bin/sh

./freshclam
sleep 10
kill -USR2 `cat /var/run/clamd.pid`

一方 4. は LANDISK 起動時に動いてないと話にならないので, /etc/rc.d/rc.local に仕込むといいと思います.

なお, 普通の Linux-PC で動かす場合は

  1. zlib のコンパイルは不要
  2. 仮想ルートの扱いは不要 (コピー不要)
  3. ./configure の prefix は不要
  4. clamd.conf の TemporaryDirectory の修正は不要
  5. cgiの clamdscan のパスを修正
すれば大丈夫だと思います.


2008.3