ClamAVをsquidで利用する

ウェブのプロキシサーバを通してアクセスする時に、できれば安全にしたい、ということで、ウイルスチェッカーを導入することにした。

利用しているサーバはDebian lennyでsquid3なので、ClamAVを統合することにして、squidclamavで二つの間をつなぐことに。

aptitude install clamav clamav-freshclam clamav-daemon
aptitude install libcurl4-openssl-dev

clamav-dataではなくclamav-freshclamをとりあえず選択したが、-dataの方がよかったかもしれない。とはいえ、どちらでも正常に動けばたいして変わりはない、はず。下のほうはsquidclamavのmakeに必要な依存ライブラリ。

squildclamavの.tar.gz (現時点では4.0) をダウンロードして、適当に/usr/local/srcなどで展開、./configure; make; make install する。この時点で、

/usr/local/bin/squidclamav (実行バイナリ)
/etc/squidclamav.conf.dist (設定ファイルの雛形)

がインストールされているはず。

ここまで終われば後は設定。

ClamAVをどうやってつなぐかによるが、今回はunix socketを選択したので、

dpkg-reconfigure clamav-base

を実行してtcpでなくてunixを選択しておく。squidの設定変更は、

http_access deny to_localhost
url_rewrite_program /usr/local/bin/squidclamav
url_rewrite_children 15
url_rewrite_access deny localhost

あたり。clamav.confは特には変えないが、LocalSocketの値は後で必要。squidclamav.confは、~.distからコピーして適宜書き換える。とりあえずはこんな感じ。

$ grep -v ^# squidclamav.conf
squid_ip 127.0.0.1
squid_port 3128
logfile /var/log/squidclamav.log
redirect http://<domain>/clwarn.cgi
debug 0
force 1
stat 1
maxredir 15
clamd_local /var/run/clamav/clamd.ctl
timeout 60
useragent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
trust_cache 0

content ^.*\/.*$

ここでのredirectの設定先は、エラーをクライアントに返すときのCGIなので、適当に何でもいいかもしれないが、一応ソースのclwarn.cgiをコピーしておいた。(+Apacheの設定も必要)

あとは必要ならlogrotate.dの下にsquidclamav.logのためのエントリを追加とかはあるけれど、大体これで動く。はず。

日本語化に関しては、単純にclwarn.cgiだけの話なので、どうせ検出メッセージを見てなにかすることはあるまいと思って放置。

Leave a Reply »