netcat/socatはどの層(IP/TCP?)で動作しますか?

netcat/socatはどの層(IP/TCP?)で動作しますか?

3つのマシン(A-> B-> C)間のSSHトンネル中にトラフィックを転送するためにnetcatを使用するときに、CがAのIPアドレスを知ることができるかどうかを知りたいので、この質問があります。

答え1

netcatアプリケーション層ツールです。 OSIスタックの上位層(7階層)で動作します。したがって、簡単な設定では、コンピュータCはコンピュータAを直接見ることができず、IPトラフィックの送信元はBから来たように見えます。 IP レイヤでは、netcatアプリケーションが起動して接続を確立するため、すべてのトラフィックが B で発生しているように見えます。

ただし、OSI スタックの適用は限られています。 VPNとプロトコルトンネリングを考慮すると、IP(レイヤ3)はアプリケーションレイヤ(レイヤ7)でルーティングできます。

したがって、答えは設定によって異なります。

これはトランスポート層です。アプリケーション層データは、ソースアドレスを簡単に明らかにすることができます。したがって、CできるAと直接通信がなくてもAのアドレスを調べることは可能である。

答え2

タイトルに答えると、netcat基本的にTCPを使用しますが、-uフラグを付けたUDPモードを提供します。socatTCP、UDP、SCTP、Linuxのnetlinkソケットなど、さまざまなプロトコルを使用できます。ネイティブIPソケットも提供します(ただし、それを使用するにはルートである必要があります)。

実際の質問に答えるために、Bは実際にAのIPアドレスが何であるかを知りません。ただし、基本プロトコルが誤ってIPアドレスを公開する可能性があります。たとえば、IRCサーバーは実際にリッスンしているIPを公開でき、場合によってはHTTPサーバーからIPが漏洩する可能性があります。これは、ローカルホストでリッスンし、ポートをローカルホストからマシンBに転送し、次にBからCに転送することによって軽減することができます(サーバーソフトウェアの可能な悪用を除く)。

関連情報