私が所有しているLinuxノードが特定のパッケージ(正確にはREST APIパッケージ)の「ルーター」として機能するようにしたいと思います。
全体的な状況はこんな感じです。私はweb-uiプログラムを作成しました。このプログラムはクライアント(Node-Aと呼ばれる)になり、クライアントは私が持っているサーバー(Node-Bと呼ばれる)にREST APIリクエストを送信します。 ...私は、ノードBのドメイン名はもちろん、ノードBについては何も知りたくありません。ノードBが存在するという事実さえ知らせたくありません...その理由は、ノードBが私にとって非常に重要だからです。まだありません。安全性に満足する段階に達しました。
だから私はノードAからノードBに接続を渡すために中間ノード(node-intと呼ばれる)として持っている別のサーバーを使用することを考えました。
クライアントノードAがノードBに要求を渡し、ノードBから応答を受け取り、再びノードAに転送するノードintにREST API要求を実行しようとしています。
唯一の問題は、iptablesを使用してこれを行う方法を知りません。フィルタテーブル(FOWARDチェーン)、パケット自体を変更するためのマングルテーブル、またはnatテーブルを使用する必要がありますか?
私はこの仕事に何が一番良いのかわかりません。だから、経験豊富な誰かが私に最善のアプローチを導くことができることを願ってここに質問することです。
ありがとうございます。
答え1
これを行うためにIPテーブルを使用する必要はありませんが、httpサーバー構成を使用するだけです。
- 2 つの http サーバーを設定します。 1つは公的に表示され(node-int)、もう1つはLAN内にあり、外部世界(node-B)からはアクセスできません。
- パブリックサーバーでプロキシを有効にし、ここで処理されるURL、ノードBに送信されるURL、他のサーバーに送信されるURLを定義します。
もちろん、正確な設定ステートメントはhttpサーバーによって異なりますので、Apacheでは次のように実行されます。 https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
他のhttpサーバーにも同様のことがあります。