iptablesを使用して特定のipからのweb接続だけをリバースプロキシの待ち受けポートへポートフォワードしたいのですが
うまく動作してくれません。
【構成】
ubuntu16.04を使用しています。
NW構成
Client A ------- vyOS -------- ルーター ---- インターネット
Server A
Server B
各ネットワーク設定
Client A 192.168.0.1
vyOS 192.168.0.254
Server A 192.168.0.2
Server B 192.168.0.3
ルーター 172.16.1.254
【前提】
上記のような構成のネットワークを作り、ClientA、ServerA、ServerBからソフトウェアルーターであるvyOSを抜けてルーター⇒インターネットへ
通信ができています。またServer Aはnginxでリバースプロキシのフロントエンドとして、Server BにはそのバックエンドとしてWebサーバーが
稼働している状態です。
透過プロキシーを実装するため、Client AからvyOSを抜ける際に、vyOSのPolicyでClient AのipのみServer Aへパケットを転送するように
設定しており、他のPCからはそのままインターネットへ抜けられるようになっています。
Server AではSquidを稼働させ、8080でプロキシーの待ち受けができています。(8080をクライアントから指定してインターネットへ出ることが可能)
【問題】
下記の設定を Server Aに設定し、vyOSから転送されてきたパケットのうち、80番ポート宛ての通信を8080番へポートフォワードしたいのですが、
下記の通り送信元のipアドレスを指定しても、すべての80番ポート向けの通信が8080へ転送されてしまい、リバースプロキシも正常に動作しなくなります。
透過プロキシ用の設定
iptables -t nat -A PREROUTING -s 192.168.0.1/32 -p tcp --dport 80 -j DNAT --to 192.168.0.2:8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
正しい構文をご存知の方、ご教示お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/26 03:25
2019/05/18 13:14