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でのアクセス制限なども考える必要があります。