web-dev-qa-db-ja.com

eth1からSquidプロキシにすべてのHTTPトラフィックをルーティングする方法は? Iptableルール?

Squidプロキシサーバーをセットアップしました。サーバーには2つのインターフェースがあります。 eth0はルーターに接続し、eth1は他のすべてのマシンが接続するスイッチに接続します。サーバーにはDHCPサーバーもあります。マシンにSquid3をセットアップしましたが、そのプロキシを使用するようにブラウザーを構成すると(IPとポートを設定するとネットワーク設定になります)、動作します。しかし、ブラウザを設定する必要がなく、すべてのリクエストがプロキシを通過する透過プロキシとして必要です。

IPtableルールを正しく設定するだけで実行できますか?一部の記事では、sysctl.confの変更について説明しています。多くのチュートリアルからIptableルールを試しましたが、どれも機能しませんでした。追加する作業ルールを教えてください。ありがとうございました。

PS:サーバーはUbuntu12.10です

PS2:可能であれば、ufwにこれらのルールを追加する方法を教えてください

2
THpubs

構成に合わせて、以下を変更する必要があります。

eth1:LANインターフェース
eth0:WANインターフェース
Squidポート:8028

以下は、透過モードでのSquidの設定です。

# NAT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT

# Redirect
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8028 -j REDIRECT --to-port 80 
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to IPaddress:8028
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8028
1