web-dev-qa-db-ja.com

NAT=インターネットから背後にあるデバイスに直接接続する方法は?

グローバルインターネットに「A」というIPアドレスがあります。

「A」にしかアクセスできません。

NATを実行するルーターの背後にネットワークがあります:192.168.1.0/24

そのNATの背後にクライアントがあります: "B"

「B」と「NAT」ルーターにアクセスできません。

目標:「A」で直接「B」に到達します。

ポートフォワーディングやUPnPなどは使用できません。

質問:「B」に到達するためのコツは何ですか?NATだけでなく、ルーターにステートフルファイアウォールがある場合は回避できるコツです!

「B」がウェブを閲覧するとインターネットに出て行くと考えています。応答を受信して​​いるときに、NATを実行するルーターは、「B」が持っていたNATされたIPを判別する必要がありますか? (NATされたネットワークの背後にさらに多くのマシンが存在する可能性があります)。このため、NATルーターもポート情報を使用します。たぶん私たち/彼らがUDPを使用している場合、IP "A"のすべての非特権ポートを試し、 "B"にパケットを送信できますか?

NATルーターは、単なるsohoルーターです。 (元の問題:NATがファイアウォールではないことを証明しようとしていますが、その証拠が必要です)

6
Marina Ala

簡単な答え(私がこれを正しく理解している場合)では、はい。これは、リバースSSHトンネリングを利用して実現できます。

最初にソックスプロキシを使用して(PuTTYを介して実行できます)、「B」でトンネルをセットアップする必要があります。次に、リクエストに対して「A」を介してトラフィックをルーティングする必要があります。

応答が戻ると、「A」を経由して「B」に戻ります。本質的に「Aで直接B」に到達する。

これを達成するための追加のリソースを以下に示します。 http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnelhttps://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work

SSH Reverse Tunneling concept

SSH Reverse Tunneling Concept2

3
c1ph3rflux

実際には、NATデバイスがどのように機能するかによって、計画は機能する可能性があります。

通常、NATデバイスは、内部IPと送信元ポートを宛先IPとポートにマップするので、そのIPとポートのみが内部IPと通信できるようにします。これにより、NAT非常に粗雑で貧弱なステートフルファイアウォール。

ただし、この機能はNATの必須部分ではありません。つまり、どのベンダーもこのアプローチを実装するかどうかを選択できます。

つまり、NATデバイスのポートをスキャンして内部ネットワークを検出することが理論的に可能です内部ネットワーク上のデバイスが接続試行に応答する場合これは一連の「if」ですが、価値があります。

つまり、はいNAT実装方法がわからないため、NAT $ ===だけでは不十分ですNATが実装されました。ステートフルファイアウォールが防御を提供します-この潜在的な未知の穴をカバーするための詳細NAT=はセキュリティ技術ではないため、保護メカニズムとして扱うべきではありません。

2
schroeder

anyDesk(バージョン5.2以降)を使用すると、クライアント間のTCP接続をセットアップできます。

クライアントPCをインターネット経由でTeam Foundation Server(TFS)に接続するために使用しました。サーバーとクライアントはNATの背後にあります。ローカルポートとリモートポートを「8080」に設定し、クライアントで次のアドレスを使用してクライアントからサーバーに接続できます: ' http:// localhost:8080/tfs / '

参照: TCP-Tunneling-AnyDesk

0
mrbm