ウィルスチェックのための Squid 用リダイレクタ “SquidClamAV” のインストール。Squid, clamd, SquidClamAV の設定すべてが終わった後の動作チェックと後始末です。

SquidClamAV の動作チェック

SquidClamAV が正しく機能しているかテストするため、試しにテストウィルスを Eicar サイトからダウンロードします。

[code language=”bash”]
# /usr/local/bin/squidclamav
SquidClamav running as UID 0: writing logs to stderr
Sun Apr 5 20:38:45 2009 LOG Reading configuration from /etc/squidclamav.conf
Sun Apr 5 20:38:45 2009 LOG Anonymizing User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Sun Apr 5 20:38:45 2009 LOG SquidClamav (PID 5375) started
[/code]

このように表示されれば起動はしています。次に、おもむろに Eicar のテストウィルスをダウンロードしてみます。

[code]
http://www.eicar.org/download/eicar_com.zip 192.168.0.1 mylog GET
[/code]

(コマンドプロンプトは無いので、行頭からいきなり入力)

debug 1 にしておいた効果で、大量のデバッグメッセージが表示されます。

ウィルス検出が正しく行われたログ

Squid のキャッシュにないファイルは、GET 後ウィルスチェックされます。

[code]
Sun Apr 5 20:51:02 2009 DEBUG Request:http://www.eicar.org/download/eicar_com.zip 192.168.0.1 mylog GET
Sun Apr 5 20:51:02 2009 DEBUG regex matched: http://www.eicar.org/download/eicar_com.zip
Sun Apr 5 20:51:02 2009 DEBUG Curl will use proxy: http://127.0.0.1:3128
Sun Apr 5 20:51:03 2009 DEBUG content matched: application/zip
Sun Apr 5 20:51:03 2009 DEBUG Content-Type: application/zip will be scanned
Sun Apr 5 20:51:03 2009 DEBUG Sending STREAM to clamd.
[/code]

ウィルスであれば、Web ブラウザに対してはエラーメッセージを表示するため、clwarn.cgi へリダイレクトし、

[code]
Sun Apr 5 20:51:03 2009 LOG Redirecting URL to: http://localhost/cgi-bin/clwarn.cgi?url=http://www.eicar.org/download/eicar_com.zip&source=192.168.1.3&user=mylog&virus=stream:+Eicar-Test-Signature+FOUND
[/code]

ちなみに trust_cache 1 オプションが設定されていると、引き続いて Squid 内のキャッシュを破棄します (purge)。

[code]
Sun Apr 5 20:51:03 2009 DEBUG Virus found, trying to purge Squid Cache.
Sun Apr 5 20:51:03 2009 DEBUG Purge squid answer: 200
Sun Apr 5 20:51:03 2009 Squid Cache purged of url http://www.eicar.org/download/eicar_com.zip.
http://localhost/cgi-bin/clwarn.cgi?url=http://www.eicar.org/download/eicar_com.zip&source=192.168.1.3&user=mylog&virus=stream:+Eicar-Test-Signature+FOUND 192.168.1.3 mylog GET
Sun Apr 5 20:51:03 2009 DEBUG Virus found, redirection sent to Squid.
[/code]

Web ブラウザで動作確認

ログの内容に不審な点がなければ、Web ブラウザで動作を確認します。Squid はデフォルトでポート 3128 番を使用しますので、それに合わせて Web ブラウザ側のプロキシ設定を行います。

IE7: ローカル エリア ネットワーク (LAN) の設定

ここで
http://www.eicar.org/download/eicar_com.zip
をブラウズしようとすると、ダウンロードされず、以下のようなメッセージが表示されます。

SquidClamAV: clwan.cgi のウィルス検出メッセージ

後始末

Web ブラウザベースである程度動作確認したら、ログの量が多すぎるため debug モードは切っておきます。

[code]
# vi /etc/squidclamav.conf
[/code]

[code language=”diff”]
– debug 1
+ debug 0
[/code]

そして squidclamav を再起動。killall -10 を使うと、squid 本体を再起動せずに SquidClamAV の設定だけ再読込できます。

[code]
# killall -10 squidclamav
[/code]

あとは、お決まりの OS 起動時の各種サービス自動起動設定。

[code]
# chkconfig squid on
[/code]

次回はトラブルシューティング編です。