web-dev-qa-db-ja.com

別のマシンでWebプロキシを使用するようにRouterOSを設定するにはどうすればよいですか?

RouterOSのドキュメントは、RouterOSに組み込まれたHTTPプロキシを介してすべてのWebトラフィックを透過的にプロキシする方法を示しています。

/ip firewall nat 
add in-interface=ether1 dst-port=80 protocol=tcp action=redirect to-ports=8080 chain=dstnat 
/ip proxy
set enabled=yes port=8080

別のマシンでプロキシを実行して、Squidなどで利用できるより高度なフィルタリングルールを利用できるようにしたいと考えています。ただし、NATを使用してSquidを実行している別のマシンにトラフィックをリダイレクトする場合、HTTPリクエストはプロキシHTTPリクエストになるように書き換える必要があるため、機能しません。トラフィックにより、Squidからの不正なリクエストエラーが発生します。

4
Tim

parent-proxy設定:

/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128
2
Tim

RouterOSでプロキシを設定する必要はありません。すべての発信HTTPトラフィックを直接NAT経由でサーバーにルーティングできます。

ip firewall nat add in-interface=eth1 src-address=!<IP of Squid machine> dst-port=80 protocol=tcp action=dst-nat to-addresses=<IP of Squid machine> to-ports=8080 

最後のパラメーター "src-address =!..."は、Squidマシンが他のマシンと同じインターフェースを介して通信する場合に必要です。それ以外の場合は、次のようになります。

  1. コンピューターがHTTP要求を送信する
  2. RouterOSはこのパケットをsquidに送信します
  3. SquidはHTTPリクエストをウェブサーバーに送信します
  4. RouterOSは再びsquidリクエストをsquidに送信します->ループ
3
mkudlacek
/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128

/ip firewall nat
chain=dstnat src-address=!<IP of Squid machine> protocol=tcp dst-port=80  src-address-list=<IP of Local machine> action=redirect to-ports=8080
1
vhickry