CentOS 5.3 記念インストール祭ということで、SquidClamAV をインストールしてみたのでその記録です。無防備な OS インストール途中の PC などに威力を発揮してくれることを期待して。
SquidClamAV とは
SquidClamAV は名前そのままで、リダイレクタと呼ばれる小さなプラグインみたいなものです。
単体では動きませんが、Web キャッシュサーバ squid からリダイレクタとして呼ばれて動き、指定した条件にマッチするコンテンツを Web ブラウザに送る前に、ウィルスチェッカ Clam AntiVirus に渡してウィルスかどうかをチェックします。
ウィルスが含まれていると判定された場合は、Web ブラウザにはコンテンツを GET させず、代わりにエラーメッセージを表示することでシャットアウトします。
PC なら普通は Web クライアント側でウィルスチェッカをインストールしてありますが、OS インストール直後の PC を保護したり、proxy とクライアントで二重にウィルスチェックして安全性を高めたりといった効果が期待できます。
ま、私がやってみたいだけなんですけど 🙂
前もってインストールしておくもの
以下がすでに動作しているものとします。
- CentOS 5.3
- clamav-0.95-1.el5.rf
- clamd-0.95-1.el5.rf
- httpd-2.2.3-22.el5.centos
httpd (apache) は、SquidClamAV がウィルス検出時のメッセージを Web ブラウザに送るためだけに必要で、特に Squid サーバと同一マシン上にインストールしてある必要は無さそうです。
この記事でインストールするもの
- Squid 2.6
- SquidClamAV 4.0 … trust_cache オプションを使用する
Squid のインストール
[code]
# yum -y install squid
[/code]
Squid 本体の設定
[code]
# cp -p /etc/squid/squid.conf /etc/squid/squid.conf.orig
# vi /etc/squid/squid.conf
[/code]
squid.conf は沢山のセクションに分かれています。必要最小限の設定だけ書いたファイルを新たに作っても動くはずですが、ここではデフォルトで用意されている squid.conf の各セクションに挿入していきます。
diff 形式っぽく書いてあるので、頭の “+” 記号は無視して考えてください。
[code language=”diff” gutter=”true”]
# TAG: acl
…
#Recommended minimum configuration:
…
acl CONNECT method CONNECT
+ acl localnet src 192.168.0.0/255.255.255.0 ←自分の LAN 環境に合わせる
+ acl purge method PURGE
[/code]
http_access セクションは、順序に大きな意味がありますので、既存の行の順序を変えないように挿入していきます。
[code language=”diff” gutter=”true” firstline=”8″]
# TAG: http_access
…
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
+ http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
… (中略) …
# And finally deny all other access to this proxy
http_access allow localhost
+ http_access allow purge localhost
+ http_access deny purge
+ http_access allow localnet
http_access deny all
… (中略) …
# TAG: url_rewrite_program
… (中略) …
+ url_rewrite_program /usr/local/bin/squidclamav
… (中略) …
# TAG: url_rewrite_children
…
+ url_rewrite_children 15
… (中略) …
# TAG: url_rewrite_access
…
+ url_rewrite_access deny localhost
… (中略) …
# TAG: visible_hostname
…
+ visible_hostname squid.example.com ←自分のホスト名に変更
[/code]
以下はお好みで、該当セクションを探して追加します。
[code language=”diff”]
+ header_access X-Forwarded-For deny all
+ header_access Via deny all
+ header_access Cache-Control deny all
+ forwarded_for off
[/code]
ここではまだ Squid を起動しません。リダイレクタとして “/usr/local/bin/squidclamav” を定義してあり、まだインストールしていないからです。
clamd の設定
clamd はすでに動作しているものとし、設定だけ書き換えます。
[code]
# vi /etc/clamd.conf
[/code]
デフォルトで設定されている LocalSocket と、TCPSocket はコメントアウトし、LocalSocket は以下のように書き換えます。
[code lang=”diff”]
– LocalSocket /tmp/clamd.socket
+ #LocalSocket /tmp/clamd.socket
+ LocalSocket /var/run/clamav/clamd.sock
[/code]
[code language=”diff”]
– TCPSocket 3310
+ #TCPSocket 3310
[/code]
[code]
# /etc/init.d/clamd restart
[/code]
次回は SquidClamAV のインストールと設定です。
windows版Squidでの導入方法が、知りたいです。