ウィルスチェックのための Squid 用リダイレクタ “SquidClamAV” のインストール、Squid, clamd まで設定が終わった後の続きです。

SquidClamAV のダウンロードとインストール

[code]
# yum -y install curl-devel ← squidClamAV の実行に必要
# wget http://jaist.dl.sourceforge.net/sourceforge/squidclamav/squidclamav-4.0.tar.gz
[/code]

新しいバージョンがあるかもしれません。SourceForge.net を確認してください。

[code]
# tar zxvf squidclamav-4.0.tar.gz
# cd squidclamav-4.0
# ./configure && make && make install
# cp -p squidclamav.conf.dist /etc/squidclamav.conf
# cp clwarn.cgi /var/www/cgi-bin/
# touch /var/log/squidclamav.log
# chown squid:squid /var/log/squidclamav.log
[/code]

SquidClamAV の設定

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

以下、squidclamav.conf に書く設定を何種類かに分けて説明します。

Squid サーバの IP アドレスとポート

過去のバージョンでは proxy http://127.0.0.1:3128/ と書いていたようですが、形式が変更されたようです。

[code gutter=”true”]
squid_ip 127.0.0.1
squid_port 3128
[/code]

各種変数とフラグ

最初はログが多くても debug 1 にしておき、動作が確認されたら 0 にするのがお勧めです。

逆に trust_cache モードは trust_cache 0 にしておき、動作が確認されたら 1 にするのがお勧めです。

[code gutter=”true” firstline=”3″ highlight=”5,12″ toolbar=”true”]
logfile /var/log/squidclamav.log
redirect http://localhost:10080/cgi-bin/clwarn.cgi
debug 1
force 1
stat 0
maxredir 10
clamd_local /var/run/clamav/clamd.sock
timeout 60
useragent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
trust_cache 0
[/code]

ウィルスチェックする URL

正規表現で書いていきます。

  • regexi … case insensitive. 大文字小文字を区別しない
  • regex … case sensitive. 大文字小文字を区別する

[code gutter=”true” firstline=”13″ toolbar=”true”]
regexi ^.*.exe$
regexi ^.*.com$
regexi ^.*.zip$
[/code]

例えば http://example.com/download/eicar_com.zip が上記にマッチし、ウィルスチェックの対象になります。

後述の content ^.*application/.*$ があれば実際には .zip もウィルスチェックの対象になりますが、念のため両方書いています。

ウィルスチェックしない URL

  • aborti … case insensitive. 大文字小文字を区別しない
  • abort … case sensitive. 大文字小文字を区別する

[code gutter=”true” firstline=”16″ toolbar=”true”]
abort ^.*.gz$
abort ^.*.bz2$
abort ^.*.pdf$
abort ^.*.js$
abort ^.*.html$
abort ^.*.htm$
abort ^.*.shtm$
abort ^.*.shtml$
abort ^.*.css$
abort ^.*.xml$
abort ^.*.xsl$
abort ^.*.js$
abort ^.*.jsp$

abort ^.*.jsp?.*$
aborti ^.*servlet.*$
abort ^.*.ico$
aborti ^.*.gif$
aborti ^.*.png$
aborti ^.*.jpg$
aborti ^.*.swf$
[/code]

ウィルスチェックする Content-Type

今度は URL ではなく Content-Type によるフィルタリングです。
abortcontent, abortcontenti
content, contenti
の 4種類があります。

[code gutter=”true” firstline=”37″ toolbar=”true”]
abortcontenti ^.*application/x-mms-framed.*$
abortcontenti ^.*application/x-javascript.*$

content ^.*application/.*$
[/code]

なんでもあり Content-Type 設定は外した方が軽い

末尾の content ^.*/.*$ は、.html じゃない動的 URL に含まれる text/html などすべてのコンテンツをチェックしようとするので、コメントアウトします。

[code language=”diff”]
# Scan all files
– content ^.*/.*$
+ #content ^.*/.*$
[/code]

Squid + SquidClamAV の起動

Squid, clamd, SquidClamAV の設定がすべて終わったら、最後に Squid へアクセスするためのポート 3128 番を setup コマンドなどで開き、

system-config-securitylevel: squid 用のポート 3128 番を開く

Squid を起動します。

[code]
# /etc/init.d/squid start
[/code]

/etc/init.d/squidclamav などとやってしまいそうな気がしますが、起動するのは Squid 本体です。

次は動作チェック編です。