コンテンツフィルタでインターネットのゴミ情報を水際で食い止める

 ブログ界隈では毎日のようにWebサイトのデザインに関する不平を聞く。大げさなテキストを好まない人もいれば、バナー表示や広告を嫌う人もいる。私が苛立ちを覚えるのは、ポップアップや無用のJavaScriptおよびクッキーだ。こうしたゴミ情報を取り除けば、不要なデータのダウンロードによる帯域幅の無駄使いがなくなるので、インターネットの接続速度を上げることができる。本稿では、Webサイトから取得するコンテンツのフィルタリングに使えるツールをいくつか紹介する。

Privoxy

 Privoxyは興味深い機能を満載したスタンドアロンのアプリケーションだ。インストールはきわめて簡単で、デフォルトの設定は大半のユーザにとって申し分ないものになっている。インストールを行うコマンドは、Fedoraユーザなら「yum install privoxy」、Ubuntuユーザなら「sudo apt-get install privoxy」となる。あるいは、ソースtarballを取得して「./configure」、「make」、「make install」の各コマンドでインストールしてもよい。インストールが済むと、Privoxyはローカルホスト(127.0.0.1)のポート8118番にバインドされる。別のポートとネットワークインタフェースがよければ、ソースからのインストール中に選択するか、「/etc/privoxy/config」ファイルのセクション4.1で指定することができる。

 使い始める前に、ブラウザにPrivoxyの情報を設定する必要がある。Firefoxであれば、「オプション」ダイアログボックスの「詳細」、「ネットワーク」タブ、「接続設定」ボタンを順にクリックする。「手動でプロキシを設定する」を選択して、「HTTPプロキシ」の欄に「127.0.0.1 」と入力してポートを「8118」とする。また、「直接接続するサイト」の欄からは「localhost」も「127.0.0.1」も削除しておくこと。これで、ブラウザから「http://p.p/」にアクセスすればPrivoxyのインタフェースが表示される。

 Privoxyには2種類の設定ファイルが用意されている。その1つ、フィルタファイルでは、HTML、CSS、JavaScriptをはじめとするコンテンツのフィルタリングが行える。デフォルトのフィルタルールは、「/etc/privoxy/default.filter」ファイルに定義されている。アクションファイルと呼ばれるもう1つのファイルは、特定のWebサイトに対してPrivoxyが取るべき対処を定義するものだ。アクションファイルに定義されるルールは、クッキーや広告、その他のオブジェクトを対象としている。デフォルトの設定では、一定のサイズを超えるバナー広告、すべてのポップアップウィンドウ、Googleの広告が抑制されるようになっている。こうしたデフォルトのアクションルールは、「/etc/privoxy/default.action」ファイルに定義されている。すべての設定ファイルで正規表現が利用されているため、その辺りがよくわからない人は「default.filter」と「default.action」のどちらのファイルも編集しないほうがよいだろう。また残念ながら、ブラウザのインタフェースから設定ファイルを編集することはできない。

Webcleaner

 Webcleanerは、Privoxyで可能なことはすべてカバーしている。また、アンチウイルスフィルタを備えているほか、Webサイトの画像を容量の小さいJPEG画像に縮約することもできる。Privoxyとは異なり、Webcleanerではブラウザインタフェースで設定が行える。ただし、Webcleanerのインストール作業はハードルが高い。画像圧縮やウイルスフィルタの機能を使いたければ、それぞれPython Image Libraries(PIL)とClamAVのようなツールが必要になる。SSLで暗号化されたWebページに対してコンテンツフィルタリングを行うには、Python 2.5とRunit(initシステムの代替)に加え、OpenSSLとPython-opensslの各パッケージをインストールする必要がある。また、動作要件には記されていないが、私の環境ではpython-develパッケージのインストールも必要だった。

 ブラウザインタフェースのほうは、インストール手順どおりにすれば立ち上がるはずだ。まずは、ブラウザのプロキシ設定に「127.0.0.1」とポート8080(Privoxyの8118とは異なることに注意)を指定する。次に、ターミナルウィンドウを開いて「webcleaner」コマンドでWebcleanerを起動してから、ブラウザで「http://127.0.0.1:8080」にアクセスする。すると、画面に2つのパスワードが表示されるはずだ。ここで「/usr/share/webcleaner/config/webcleaner.conf」ファイルを開いて「adminpass=""」という行を探す。この行にはWebcleanerによって生成されたMD5パスワードを追記しておく。もう1つのパスワードは、Webcleanerにログインするときに使用する。ここまで済んだらWebcleanerを再起動してみよう。先ほどと同じように「http://127.0.0.1:8080」をアクセスすると、ログイン画面が表示されるはずだ。

 Webcleanerのインタフェースは少しばかり複雑だ。カテゴリはわかりやすく操作も簡単だが、フィルタ設定の追加という点ではPrivoxyのほうがずっと優れている。Privoxy同様、Webcleanerもデフォルトの状態で広告をブロックしてGIFアニメーションを無効化するようになっている。しかし、広告の削除によってテキスト表示が崩れてしまうサイトがいくつかあった。

DansGuardianとSquid

 3番目に紹介するのは非常によく用いられているコンテンツフィルタリング環境で、これには2つのアプリケーションが含まれている。実際のフィルタリングを行うのはDansGuardianだ。このツールは厳密なフレーズマッチングに基づくWebページのフィルタリングが可能で、PICS(Platform for Internet Content Selection)もサポートしている。PICSというのは、不愉快なコンテンツが含まれる可能性のあるページをフィルタリングできるものだ。またDansGuardianでは、設定によってサードパーティによるブラックリストを利用したり、独自のブラックリストを管理したりすることもできる。

 SquidはHTTPとFTPに対応したプロキシサーバだが、TSLやSSLのようなほかのプロトコルのサポートには制限がある。このフィルタリング環境では、Squidが取得したWebページをDansGuardianに与えることになる(DansGuardianを任意のプロキシサーバと連携させる設定が可能)。

 インストール後、Squidはポート3128番にバインドされるが、DansGuardianはデータの受信をポート8080番で行う。そのため、iptablesを使って、すべてのトラフィックをポート8080にリダイレクトする必要がある(過去の記事を参照)。

まとめ

 WebcleanerもDansGuardianもウイルス対策として役立つ。唯一気になるのは、Webcleanerは設定が面倒で、DansGuardianはスタンドアロンのアプリケーションではない、といったところだ。一方、使いやすさと興味深い機能を備えたPrivoxyは、大半のネットワークのホームユーザを満足させられるだろう。

Shashank Sharmaは専らフリー/オープンソースソフトウェアの初心者向け記事を執筆する傍ら、Linux.comフォーラム掲示板の管理人も務める。『Beginning Fedora』(Apress刊)の共著者でもある。

Linux.com 原文