2009年3月14日 11:32

NIC1枚で透過型プロキシ

これは現在の自分から未来の自分への備忘録です。
一般的には、な〜んの役にも立たないと思います(笑)

友人より「ルーターの設定は変更しない、NICカードは1枚、PCはMacintosh(MacOSX10.4)」つー極めて特異な環境で透過型のプロキシを使いたいから設定して♪とかいうムチャな指令を受ける。

プロキシはSquidを採用。
squid.confの設定
2.6の場合は以下5ヶ所を変更。


http_port 127.0.0.1:8080 transparent #透過型の設定
acl localnet src 192.168.0.0/255.255.0.0 #ローカルからアクセスを許可する範囲
http_access allow localnet #ローカルからアクセスを許可
forwarded_for off #ホストのアクセスを知らさない
cache_effective_user squid #実行ユーザー指定(ココがすごく重要だった)

2.5以下の場合は透過型の設定がちっと違だけであとは同じ

http_port 127.0.0.1:8080
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

ipfwで80ポート行きのパケットをsquidに渡す

/sbin/ipfw add 200 fwd 127.0.0.1,8080 tcp from any to any 80 out

このままだとループしてしまう(ここでモノ凄くハマった)のでsquidからのパケットは通過させる

/sbin/ipfw add 100 allow tcp from any to any 80 out uid squid

起動時に実行させる場合はlaunchdに登録すればOK

あと、ipfwを自動起動する場合は/etc/hostconfigに「IPFW=-YES-」を追加するのを忘れない事。

参考サイト
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ipfw&dir=jpman-4.6.0%2Fman§=0
http://squid.robata.org/faq_top.html

http://www.linux.or.jp/JF/JFdocs/TransparentProxy.html
http://777soul.com/mac/tips/24-ipfw/ipfw.html
http://www.itmedia.co.jp/enterprise/articles/0704/26/news009_3.html