L
次のページ
H
前のページ
U
上のページ

« 人工作文 | Main | 歯医者通いは一区切り »

2009年06月03日

SquidClamav を使うと正常にアクセスできない場合の対処例

Squid + SquidClamav + ClamAV で構成したプロキシサーバを使うと、費用をかけずにマルウェアから保護された web ブラウジングができる。しかし、それだと正常にアクセスできないサイトが幾つかあった。でも、なんとか回避することができた。


SquidClamav でやっていること

web プロキシサーバを建てようとしたら幾つか方法がありますが、僕は大抵の場合、プロキシのソフトウェアとして Squid を使用します。Squid にはリダイレクターを指定する機能があります。リダイレクターは実際のサーバにアクセスするときにそれを通してアクセスするプログラムのことです。これに SquidClamav というソフトウェアを指定すると、ClamAV でサーバから渡されるコンテンツをスキャンし、問題が無ければ普通に、問題があると SquidClamav の設定で指定した URL にリダイレクトされて web ブラウジングができるようになります。

要するに「Squid + SquidClamav + ClamAV = 安全な web ブラウジング」というわけです。

というわけで、我が家の LAN のサーバ機を入れ替えるついでに、以前やろうと思って放置していた Squid + SquidClamav + ClamAV を設定してみました。マルウェアを検知したときのリダイレクト先の CGI は娘ちゃん向けのメッセージを表示すると同時に、インシデント情報として状況を僕にメールするようになっています。僕も自宅にいるときはこれをプロキシに設定して使っています。

正常にアクセスできないサイトがあった

ところが、Squid + SquidClamav + ClamAV のプロキシを使用していると正常にアクセスできないサイトがあったのです。それは次の二つです。

  • 米国 Yahoo の Yahoo! Mail
  • Apple の MobileMe

それぞれ次のような状況になってしまいます。

Yahoo! Mail での状況

サインインして表示される画面のメインの表示場所に「Sorry, your session has expired.」と書かれ再度サインインするための大きなボタンが表示されます。

MobileMe での状況

ログインすると「Unauthorized」とだけ書かれたページになってしまいます。401 Unauthorized が HTTP ステータスコードとして返されているようです。

対処法

Yahoo! Mail の場合

SquidClamav の設定で debug 1 としてみてわかったのですが、SquidClamav はサーバに実際にアクセスするときに libcurl を使用しています。そしてそのときにプロキシとして http://127.0.0.1:3128 を使用しています。つまりそのマシンでの Squid を実際のアクセスに再利用しているのです。これは最低限の設定だけをするとそうなります。

試しに proxy none にしてみたところ Yahoo! Mail の現象は治まりました。

MobileMe の場合

これは少々設定を弄ってもマルウェアのチェックをしながら回避することはできませんでした。仕方が無いので SquidClamav の設定で whitelist www.me.com としてスキャン対象から外して回避しました。

しかしながらこのままでは MobileMe の web アプリからやってくる脅威に対処できていません。iDisk なら自分で置いたファイルなのでよいのですが、MobileMe メール(つまりは web メール)の場合、添付ファイルや HTML メールなどに変なものが仕込まれ、それが脅威になる可能性があります。それは MobileMe メールの脆弱性になるので、それが起きたら大問題です。

普段は MobileMe メールは使わず、我が家のメールサーバに転送されてきたメールを見ています。そこでも Postfix + amavisd-new + SpamAssassin + ClamAV で全てのメールチェックしているので、大丈夫と言えば大丈夫ですが、なんとかしたいので、この逃げの対処法ではなく真っ向からの対処法をご存知の方がいらしたら教えてもらいたいです。

last generated
2009-11-21
page view