web-dev-qa-db-ja.com

Squid-同じサブネット上にNICを持つ透過プロキシ?

特定のWebサイトの監視とブロックに使用する基本的なSquid + DansGuardian仮想マシンをセットアップしました。現在、Webトラフィックはゲートウェイとして設定されたルーターを通過します。このIPアドレスは、Linuxサーバー上のDHCPサービスによって配布されます。一部のクライアントを、MACアドレスに基づいて別のゲートウェイにルーティングしたいと思います(これはすでに実行できます)。設定は次のとおりです。

Router (Gateway) - 192.168.0.1
DHCP/DNS Server  - 192.168.0.10
Squid Server     - 192.168.0.254
Client PCs       - 192.168.0.100-199

ただし、ほとんどのチュートリアルでは、Squidが1 NICでトラフィックを受け入れ、それを別のサブネット上の別のNICで外部に中継する必要があるようです。

SquidにIP(192.168.0.254)でトラフィックを受け入れさせ、それをゲートウェイ(192.168.0.1)に中継して、建物を通常どおりに残すことは可能ですか?もしそうなら、誰かが私に与えることができる関連するiptablesルールを持っていますか?

1
fistameeny

この目的のために別個のインターフェースを持つ必要はありません。

HTTPトラフィックをリダイレクトし、残りを適切にNATにリダイレクトするルールを追加するだけです:

iptables -t nat -A PREROUTING -i eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -j SNAT --to-source 192.168.0.254

すべてのチェーンのデフォルトポリシーが受け入れるように設定されていることを前提としています。また、このホストでipv4転送を有効にする必要があり、そのデフォルトゲートウェイは192.168.0.1に設定する必要があります。

1
Serge