
私は、数十のファイアウォールと大規模なプロキシ サーバーを備えた大企業で働いています。時々、分離されたネットワークにあるいくつかのサービスにアクセスする必要があり、そのネットワーク内のサービスにアクセスできます。現在、私は次のアプローチを採用しています。
ローカルトンネルを設定するアプリがあります。
ssh -L 30001:super01.secret.host:3419 secretServer1 ssh -L 30002:super01.secret.host:8080 secretServer1 ssh -L 30011:super02.secret.host:8080 secretServer1 ssh -L 30021:super03.secret.host:4000 secretServer2
私は各Webサービスのブックマークを(例えば)localhost:30001に指定しています
開発するローカル プログラムを localhost:30001 URL を使用するように構成します。
動的ポート転送と Socks プロキシを使用する別の方法があることは知っていますが、それを構成するのは本当に面倒です (いずれにしても、会社のシステム全体のプロキシが必要であることを考慮すると)。
super01.secret.host:3419 に送信されるリクエストをリダイレクトし、localhost:30001 経由でルーティングする方法はありますか? そうすると、secretServer1 サーバー経由で super01.secret.host にアクセスするように定義するアプリ (スクリプト) を実装でき、ローカル ポート転送を開いてリダイレクトを作成できます。または、これを構成するさらに良い方法はありますか。
私の主な目標: - すべてのネットワーク設定をシステム全体に行う - 分離されたネットワークからサービスに透過的にアクセスできるようにする (つまり、そのネットワークから super01.secret.host:8080 にアクセスする必要がある場合、ローカル マシンから同じホストとポートにアクセスできるようにする) - 残りのすべてのネットワークを以前と同じように機能させる (つまり、リクエストは noproxy リストにない限り、会社のプロキシを経由してルーティングされる)
答え1
sshプロキシとiptablesを使用したポート転送の両方を使用できます。
いつものように、SSH プロキシを設定します。
ポート転送、例:最初のリダイレクト用
iptables -A PREROUTING -t nat -i eth0 -p tcp -d secretServer1 --dport 3419 -j DNAT --to localhost:3001
注記: これはテストされていません