Privoxyであれこれ

目次

  1. はじめに
  2. Privoxyってなに?
  3. Privoxyの導入
  4. Privoxyの設定
  5. Privoxyの設定(各項目)
  6. Google filter
  7. Yahoo filter
  8. IDN filter
  9. MicroSoft filter
  10. mixi filter

1. はじめに

超手抜きなPrivoxy[privoxy.org]の使い方です。

もっといい解説ページを見つけたら削除します。

2. Privoxyってなに?

オープンソースのWebフィルタソフトです。Web Proxyとして動作します。

今までWebをアクセスするのに

自分のPC → Webサイト

だったのが、

自分のPC → Privoxy → Webサイト

という感じになります。


もともとProxyを通してアクセスしている場合は、

自分のPC → Proxy → Webサイト

を、

自分のPC → Privoxy → Proxy → Webサイト

というふうにできます。


この時点で「なにを言っているのか分からない」という人は、Privoxyは使わないほうがいいかも。(ひどい…)

3. Privoxyの導入

Privoxyのサイト[privoxy.org]に行って「Download recent releases」からダウンロードページに行って、自分の環境に合ったファイルをダウンロードします。

Windows[microsoft.com]の場合、Win32と書いてあるところの「Download」をクリックし、次のページで「privoxy_setup_3_0_3-2.exe」をダウンロードします。

ダウンロードしたらダブルクリックして実行してインストールします。

インストールは指示通りにやるだけなので、特に説明しません。


Privoxyをインストールしたら、Webブラウザの設定を変更して、Privoxyを通してWebを見に行くようにします。

インターネットオプションのProxyの設定で、

に設定するだけです。

ここで、もともとProxyが設定されていた場合は、Privoxyの設定に必要なので、どこかにメモしておいてください。


うまく設定できていれば、Webブラウザから設定の確認・修正ができます。

「Privoxy@localhost」というページが開かない場合は、Privoxyが起動してないか、Proxyの設定を間違えていると思われます。

4. Privoxyの設定

Privoxyの設定は、config.txtを直接編集することでも可能です。

詳しくはユーザーマニュアルを見てください。


config.txtは下記のような内容になります。各項目はあとで説明します。

説明もたくさん(英語で)書いてありますが、設定の部分だけ抜き出してあります。

  1. FILE LOCATIONS

confdir .

logdir .

actionsfile standard # Internal purpose, recommended

actionsfile default # Main actions file

actionsfile user # User customizations

filterfile default.filter

logfile privoxy.log

jarfile jar.log

  1. DEBUG

debug 1 # show each GET/POST/CONNECT request

debug 4096 # Startup banner and warnings

debug 8192 # Errors - *we highly recommended enabling this*

  1. ACCESS CONTROL AND SECURITY

listen-address 127.0.0.1:8118

toggle 1

enable-remote-toggle 1

enable-edit-actions 1

buffer-limit 4096

最低限必要だと思われる設定は、以下のようになります。

  1. FILE LOCATIONS

confdir .

logdir .

actionsfile standard

actionsfile default

actionsfile user

filterfile default.filter

ログも残しませんし、外部proxyも通しません。ほとんどデフォルトのままです。

実際、私のconfig.txtはほぼ上記の通りの内容になっています。

5. Privoxyの設定(各項目)

Privoxyの設定を、各項目ごとに説明します。

confdir .

logdir .

設定ファイルとログファイルを保存するディレクトリです。変更しなくていいでしょう。

Windowsの場合、Privoxyがインストールされたディレクトリになります。

actionsfile standard

actionsfile default

actionsfile user

アクションファイルです。どのサイトにどのフィルタを使用するのかを指定します。

standard.action、default.action、user.actionファイルが読み込まれます。

ユーザーはuser.actionファイルを書き換えて使用することになるでしょう。

ただし、バージョンアップ(上書きインストール)で間違えてuser.actionを上書きしてしまったことのある私は、nyaboo.actionというファイルを作って、これを書き換えています。

filterfile default.filter

フィルタファイルです。フィルタを定義します。Perlの書式がそのまま使えるので、Perlを知っている人なら使いこなせるでしょう。

最初から色々なフィルタが定義されているので、とりあえずこのまま使ってもいいと思います。

フィルタファイルは複数指定できないようなので、このdefault.filterファイルを書き換えるか、別のフィルタファイルを用意してそれを読み込むようにします。

logfile privoxy.log

jarfile jar.log

ログファイルや横取り(intercept)したクッキーを保存するファイルを指定します。

問題が起こったとき解析するのに使えますが、通常は特に必要になりませんし、ファイルがどんどん巨大化していくので、指定しない(ログを残さない)ほうがいいかも知れません。

debug 1 # show each GET/POST/CONNECT request

debug 4096 # Startup banner and warnings

debug 8192 # Errors - *we highly recommended enabling this*

デバッグ用の設定です。Privoxyのウィンドウに表示する情報を設定できます。普通の人はデバッグしないので不要でしょう。

listen-address 127.0.0.1:8118

WebブラウザをPrivoxyに接続するためのアドレスとポートを設定します。

特に理由がなければ変えなくていいでしょう。

なお、127.0.0.1:8118はデフォルトのままなので、わざわざ指定しなくてもいいです。

toggle 1

enable-remote-toggle 1

enable-edit-actions 1

buffer-limit 4096

順番に、

となります。

enable-*を有効にしておくと、Webブラウザを使ってPrivoxy Configurationページから設定を変更することが出来ます。

特に理由がなければ変えなくていいでしょう。


もともと外部のProxyを使ってWebを見に行っていた場合は、forwardの設定も必要になります。

forward / proxy.***.jp:8080

これは、PrivoxyがWebサイトを見に行くときに使う外部のProxyの設定です。

上記の設定の場合、すべてのサイトを見に行くときに、proxy.***.jpのポート8080を見に行きます。

forwardなし…自分のPC → Privoxy → Webサイト

forwardあり…自分のPC → Privoxy → proxy.***.jp:8080 → Webサイト

Privoxyをインストールしてインターネットオプションを変更したときに、もともとProxyが設定されていた場合は、ここでそのProxyを設定してください。

もともとProxyが設定されてなかった場合は、この設定は必要ありません。

なお、forwardは複数指定することができます。

forward / .

forward .com proxy.***.com:8080

forward .net proxy.***.net:8080

というふうに、基本的にはWebサイトを直接見に行くけど、「~.com」はproxy.***.com経由で、「~.net」はproxy.***.net経由で…ということもできます。

まぁ、そこまでするのはよっぽど特殊な人かも知れませんが。

6. Google filter

Google[google.co.jp]の広告を削ります♥

フィルタ

FILTER: google_filter Google filter

s|<table border=0 cellpadding=0 cellspacing=4 align=right width=20%>.*</table>||

s|<table cellpadding=3 cellspacing=0 border=0 height=40 width=100%>.*</table>||

s|<table cellspacing=0 cellpadding=0 width=25% align=right bgColor=.ffffff border=0>.*?</table>||

アクション

{+filter{google_filter}}

.google.

7. Yahoo filter

Yahoo[yahoo.co.jp]の広告を削ります♥

フィルタ

FILTER: yahoo_filter Yahoo filter

s|<!-- TopLink TOPTXT -->.*<!-- TopLink end -->||s

s|<!-- Center BOX -->.*<!-- /Center BOX -->||s

アクション

{+filter{yahoo_filter}}

.yahoo.

8. IDN filter

国際化ドメイン名でアクセスすると注意を促します。

フィルタ

FILTER: IDN_filter IDN Filter

s|(<body[^>]*)>|$1<p><strong style="font-size:400%;color:red;">Accesssing by the IDN!!</strong></p>|igU

アクション

{+filter{IDN_filter}}

xn--*.


国際化ドメイン名によるアクセスをブロックします。

アクション

{+block}

xn--*.

9. MicroSoft filter

MicroSoftという文字列をMicsoRoftに置換します。

フィルタ

FILTER: microsoft_filter MicroSoft filter

s/microsoft(?!.com)/MicsoRoft/gi

アクション

{+filter{microsoft_filter}}

.microsoft.

このフィルタを使って表示した内容を仕事や勉強などの重要な書類にコピペすると、とても困ったことになる可能性があります。

10. mixi filter

mixi[mixi.jp]のページを目立たなくします。画像をなくし、背景色の指定をなくします。

フィルタ

FILTER: mixi_filter Mixi filter

  1. Delete attribute

s|<body[^>]*>|<body>|gsU

s|<tr[^>]*>|<tr>|gisU

s|<td[^>]*>|<td>|gisU

s|<table[^>]+>|<table>|gisU

  1. Delete top image

s|<IMG src=(http://)?img.mixi.jp/img/topimg[^>]+>||gsU

  1. Delete map

s|<map.*>.+</map>||gsU

  1. Convert/Delete image

s|<img src=(http://img.mixi.jp/img/bn_\da.gif) ALT=([^>]+) [^>]*>|$2|gsU

s|<img SRC=(http://img.mixi.jp/photo/member/.+)[^>]*>|[photo]|gsU

s|<img SRC="http://img.mixi.jp/img/cl05.gif"[^>]+>|[calendar]|gsU

s|<img [^>]+>||gisU

  1. Delete script

s|<script.*</script>||gsU

s| onMouseover[^>]+>|>|gsU

アクション

{+filter{mixi_filter}}

mixi.jp/

外部リンク

  1. Privoxy[privoxy.org]
  2. Privoxyのサイト[privoxy.org]
  3. Windows[microsoft.com]
  4. Privoxy Configuration[privoxy.org]
  5. Privoxy User Manual[privoxy.org]
  6. Google[google.co.jp]
  7. Yahoo[yahoo.co.jp]
  8. mixi[mixi.jp]