phoenix-power面倒な明示を必要としない透過プロキシの使い方など

透過プロキシは、SHELL変数とかに依存しないので便利です。

例えば、ここでは、privoxyを使います。

これは、主に、cookie無効化とかuser agent偽造とか広告ブロックとかアクセス制限とか、そういうのを常時有効にしたい人が使いますね。

/etc/privoxy/config
1
2
3
4
5
6
7
8
## all network
# listen-address 192.168.1.X:8118
## local network
# listen-address 127.0.0.1:8118
## tor socks5
#forward-socks5 / 127.0.0.1:9050 .
# transparent proxy
accept-intercepted-requests 1

listen-addressは、デフォルトでは、localhost:8118になります。これは、ローカルで使う場合ですね。

他のパソコンから当該プロキシサーバーを経由したい場合は、ifconfigで調べたサーバーのアドレスを記述すればいいです。

1
2
$ sudo systemctl start privoxy
$ sudo systemctl enable privoxy

iptablesを使う場合は以下のような感じ。簡単ですね。

1
2
# iptables
$ sudo iptables -t nat -A PREROUTING -s 192.168.1.X -p tcp --dport 80 -j REDIRECT --to-ports 8118

各種デバイスで上記で立ち上げたprivoxy proxy serverを経由する場合は、通常、各種OSのネットワーク設定からプロキシ設定を192.168.1.X:8118にすればいけます。Xはサーバーのアドレス。

ネットワーク設定で一括指定できるので、面倒ではないですね。

通常のローカルネットワークというのは、このようにローカルネットワーク内に設置された一つのプロキシサーバーを経由して、WANとのやり取りをするようになっており、これによって一括してログやアクセス制限が可能な仕組みが一般的です。

configは、デフォルトでuser.*を読み込んでいて、それに記述することでユーザー設定が出来ます。cookieを強くすると、認証が失敗することもあるので弱めに。

/etc/privoxy/user.action
1
2
3
4
5
6
## UA
{ +hide-user-agent{ Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/1718; U; en) } }

## Cookie
# { +crunch-incoming-cookies +crunch-outgoing-cookies +filter{content-cookies} }
{ +session-cookies-only }

広告はファイルを自動ダウンロードして設定するものがありますので、そちらを。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git clone https://github.com/Andrwe/privoxy-blocklist
$ cd privoxy-blocklist
$ chmod +x privoxy-blocklist.sh
$ sudo su
$ ./privoxy-blocklist.sh

# コメント削除
$ vim /etc/conf.d/privoxy-blacklist
"PRIVOXY_USER=xxx"
"PRIVOXY_GROUP=xxx"
"PRIVOXY_CONF=xxx"
# 再実行
$ ./privoxy-blocklist.sh
# 再起動
$ systemctl restart privoxy

参考

http://blog.asial.co.jp/1076

https://wiki.archlinuxjp.org/index.php/Privoxy