LANケーブルがコンピュータのUDPポートを開くのはなぜですか?

LANケーブルがコンピュータのUDPポートを開くのはなぜですか?

オペレーティングシステム:Debian 12

セキュリティは私にとって非常に重要なので、私はしばしばOPSECで働いています。これで新しいルーターが作成され、LANケーブルを接続するとコンピュータにポートが開きます。 LANケーブルを外すとポートが閉じます。ルータにポート転送が設定されていません。

LANに接続されていません:

$ sudo ss -lntup
Netid  State    Recv-Q   Send-Q      Local Address:Port      Peer Address:Port  Process                                                                         
udp    UNCONN   0        0           192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=5))                                              
tcp    LISTEN   0        32          192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=6)) 

LANが接続されている:

$ sudo ss -lntup
Netid  State    Recv-Q   Send-Q      Local Address:Port      Peer Address:Port  Process                                                                         
udp    UNCONN   0        0           192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=5))                                              
udp    UNCONN   0        0                 0.0.0.0:33955          0.0.0.0:*                                                                                                                
tcp    LISTEN   0        32          192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=6)) 

LANを再接続すると、別のポートが開きます。

$ sudo ss -lntup
udp    UNCONN   0        0           192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=5))                                              
tcp    LISTEN   0        32          192.168.122.1:53             0.0.0.0:*      users:(("dnsmasq",pid=2717,fd=6)) 
udp    UNCONN   0        0                 0.0.0.0:49258          0.0.0.0:*                                                                                     

原因は何ですか?私はこれが正常な行動だとは思わない。状態はUNCONNですが、私のLANケーブルでポートが開いているのでセキュリティ上危険です。私はWireGuardを使用しています。無効にすると unconn ソケットが消えます。

なぜこのようなことをするのですか?

これが起こらないようにするにはどうすればよいですか?

答え1

~からOPのコメント:

@AB はい、wgを使用します。 wgを無効にすると、unconnソケットは消えます。 wgはなぜこれをするのですか?

システムは、プライマリインターフェイスにリンク(キャリア検出)があるたびにWireGuard(トンネル)インターフェイスを取得するように設定されているようです。

WireGuardはピアと通信するためにUDPソケットが必要です。カーネル実装(wireguard.koip link add wg0 up type wireguard:カーネルモジュール)またはユーザースペースの実装(例:wireguard-go wg0+ ip link set wg0 up)。

WireGuard 設定でローカルポートを指定しない場合、動的にランダムに選択されます。これは通常、「クライアント」WireGuardインターフェイスの場合です(WireGuardがポイントツーポイントモデルに従います)。通常、安定したパブリックアドレスがなく、トンネルが存在するまで接続できない側です。

このUDPポートと動的WireGuard設定の間の関係を確認するには、単にwg。完全に設定されていないインターフェイスの場合でも、少なくとも次の内容が表示されます。

interface: wg0
  listening port: 36387

これは、インターフェイスがカーネル実装(UP)またはすべての場合(現在示されているように)にwireguard-go使用されるポートです。

カーネルで処理すると、ポートはインターフェイスが動作しているときにのみリッスンします。ただし、ポートが変更されると、毎回インターフェイスを削除して再生成する必要があります。それ以外の場合は、同じポートが再び表示されます。ソケットはカーネルで処理されるため、ソケットに関連するプロセス情報はありません。


UNCONNこれに関する注意事項は、ソケットが接続されていない状態にあることを意味します。

接続されていないとしてもエラーやタイムアウトが発生したという意味ではありません。これは、通信でUDPソケットを使用する2つの方法の1つです。単一のソケットを使用して、効率的な方法で複数のピアと通信できます。

両方のWireGuard実装はUDPソケットを使用します。未接続モード:少なくともユーザースペースの場合、そのconnect(2)ソケットでは使用されませんが、代わりにsendmsg(2)/send(2)を使用して通信することを意味しますwrite(2)recvmsg(2)他の方向でも同じ)。

答え2

実際、「ケーブル」はポートを開けません(これが質問で想定しているようです)。ソフトウェアポートを開くことができます。今日のコンピュータシステムはかなり複雑ですが、「魔法」ではありません。

新しいインターフェイスが表示されるのを待っているプロセスがコンピュータにあるようです(つまり、このプロセスがntpdこれを実行することを知っています)。ケーブルを挿入すると、インターフェイスが効果的に動作し、それがインターフェイスが動作していることをソフトウェアプロセス(カーネルインターフェイスを介して)に通知し、そのプロセスが最終的にポートを開きます。

たぶん見ることができますhttps://stackoverflow.com/a/24207967

関連情報