●ViralatorでWebサイトからのウイルスをシャットアウト

 「Viralator」は,プロキシサーバ「Squid」と連携し,Web閲覧時などでファイルのダウンロード行う際に,事前にダウンロードするファイルを,アンチウイルスソフトを使用してスキャンして,安全か確認してからダウンロードを行うことができる。これにより,クライアントとなるコンピュータでWebサイトを閲覧しているとき,ウイルスに感染しているファイルがダウンロードされないようになるわけだ。

 Viralatorはダウンロードリクエストのあったファイルを,サーバへ一時的にダウンロードし,アンチウイルスソフトでスキャンを行う。もしウイルスに感染したファイルであれば,ユーザーに警告するとともに,クライアントマシンへダウンロードされずに,ウイルスを駆除することができる(図1)。

 Viralatorのインストールには,Webサーバである「Apache」,プロキシサーバ「Squid」,およびSquidと連携するリダイレクタ(※1)である「squirm」,そしてアンチウイルスソフトをインストールし,またApacheはsuEXEC(※2)を有効にしておく必要がある。なお,ApacheおよびSquidはたいていのディストリビューションなら用意されているはずなので,インストールされている前提で解説する。ない場合はWebサイトからダウンロードしてインストールしよう。なお,今回使用しているApacheはバージョン1.3.22,SquidはSquid/2.4.STABLE1だ。

※1:リダイレクタ
プロキシサーバに対してユーザーがリクエストしたURLを,別のURLへ置き換えてくれる仕組み。たとえば,アダルトサイトなどへのリクエストを,ほかのサイトに置き換えてブロックすることが可能になる。今回紹介するsquirm以外にも,Squid用のリダイレクタとして「Jesred」などがある

※2:suEXEC
ApacheのCGIやSSIプログラムを,Webサーバの権限ではなく,ファイルを所有するユーザーの権限で動作させる機能。また,CGIプログラムに対していくつかのセキュリティチェックも行う


図1■Viralatorの役割
図版
Viralatorは,プロキシサーバ「Squid」と連携し,Web閲覧時などでファイルのダウンロード行う際に,事前にダウンロードするファイルをアンチウイルスソフトを使用してスキャンする。そしてウイルスに感染しているファイルは,ダウンロードの停止および駆除を行ってくれる


●Squirmのインストール

 まず,Squid用のリダイレクタSquirmのインストールを行う。リダイレクタは,前述したように,特定のURLなどをブロックする際などにも利用できる。家庭などで複数のコンピュータを利用しているときに,子供が有害なサイトにアクセスしないようにフィルタリングするといった用途もあるだろう。RPMパッケージも用意されているので,自分のインストールしやすいほうを選択すればよいだろう。ここでは「squirm-1.0betaB」を使用している。

$ wget http://squirm.foote.com.au/squirm-1.0betaB.tar
$ tar xvf squirm-1.0betaB.tar
$ cd squirm-1.0betaB/regex
$ ./configure
$ make clean
$ make
$ cp -p regex.o regex.h ..

$ cd ..
$ make
$ su
Password:
# make install

 以上でsquirmのインストールが完了する。「/usr/local」に「squirm」ディレクトリがあることを確認しておこう。

・Squirmの設定

 インストールが終わったら,「/usr/local/squirm/etc」に移動し,設定ファイルを編集する。「squirm.local」は自身のネットワークに合わせて編集する(リスト1)。「squirm.patterns」の「regexi」以下はViralatorでスキャンするファイルの拡張子を設定している(リスト2)。ここでは「zip」,「doc」,「exe」の3つの拡張子のファイルをViralatorにリダイレクト(ウイルススキャンの対象に)するよう設定している。そのほかの拡張子を設定したい場合は,squirm.patternsに加えていけばよい。

$ cd /usr/local/squirm/etc
$ cp squirm.local.dist squirm.local
$ cp squirm.patterns.dist squirm.patterns

リスト1■「squirm.local」の例
-
# squirm.local.dist
#
# list your client's addresses here.
#
# i.e. the addresses for machines that do 'GET requests',
# but don't include any Squid neighbours

127.0.0
192.168.1

-
※ローカルホスト及び,192.168.1.*からのアクセスのみリダイレクトを行う設定

リスト2■「squirm.patterns」の例
-
# squirm.patterns.dist
#
# The ordering of lines is this file is critical
# Please see http://www.senet.com.au/squirm/ for examples
#

# Lines have the form:
# regex|regexi pattern replacement [[^]accelerator_string[$]]
# or
# abort filename_extension
#
#
# Examples of valid lines:
#
# regex ^.*/n32e301\.exe$ http://www.mydomain/path_to/n32e301.exe
# regexi ^.*/n32e301\.exe$ http://www.mydomain/path_to/n32e301.exe
# regex ^.*/n32e301\.exe$ http://www.mydomain/path_to/n32e301.exe n32e301.exe$
# abort .gif
# abort .html

abortregexi (^http://192\.168\.1\.10/.*)
abortregexi (^http://192\.168\.1\.10/.*)
regexi (^.*\.zip$) http://192\.168\.1\.10/cgi-bin/viralator.cgi?url=|\1
regexi (^.*\.doc$) http://192\.168\.1\.10/cgi-bin/viralator.cgi?url=|\1
regexi (^.*\.exe$) http://192\.168\.1\.10/cgi-bin/viralator.cgi?url=|\1
-
※上の例は設定するプロキシサーバ(Linuxマシン)のIPアドレスが「192.168.1.10」の場合だ。これを参考に,割り当てているIPアドレスを記述しよう

PREV 3/5 NEXT