メイン | Squidのfiledescriptor増加 »

Reverse Transparent Proxy

Linux Bridgeとsquidを使って、
「Reverse Transparent Proxy」、透過的に、リバースプロキシーを作ってしまおうというネタ。

インターネット─(eth0)[ブリッジ](eth1)─[Webサーバ]
                   └─[キャッシュサーバ] 

インターネットからWebサーバへののアクセスをブリッジにてキャッシュサーバに向けてしまうという手。
WebサーバのIPアドレスなどを仕組み上変更できない、時などの最終手段。
Layer4スイッチの代わりです。

解説サイト
bridge - Linux ethernet bridging
Bridge Firewalling

最近では、ブリッジ機能はカーネルにすでに組み込まれている模様。
RedHat7.3なら「bridge-utils」を入れる。

eth0、eth1を終了
# ifconfig eth0 down
# ifconfig eth1 down

promisc モードにする
# ifconfig eth0 0.0.0.0
# ifconfig eth1 0.0.0.0

キャッシュサーバへのDNAT、iptablesを利用
# iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport http -J NAT --to キャッシュサーバIP:80
「--to キャッシュサーバIP:80」を追加していくことで負荷分散?も可能になります。

# ifconfig br0 up
とすることでインターフェイスを起動

squidサーバは、以下の設定をわすれない。

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_uses_host_header on

iptablesでは、もちろん、フィルタリングなどもすることができるし、
squidでのアクセス制限なども考える必要があります。