![なぜ両方向に 123/udp を開くのですか?](https://rvso.com/image/1672310/%E3%81%AA%E3%81%9C%E4%B8%A1%E6%96%B9%E5%90%91%E3%81%AB%20123%2Fudp%20%E3%82%92%E9%96%8B%E3%81%8F%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
ファイアウォールのある環境で NTP サーバーを使用する場合、123/udp を双方向に開くのが一般的ですが、なぜ双方向に開く必要があるのでしょうか。
例えば、NTPクライアントからNTPサーバーに時刻を同期する場合、NTPクライアントからNTPサーバーへのアウトバウンド方向のみオープンにすれば問題ないように思えます。しかし、多くのWebサイトでは、インバウンド方向もオープンにすべきと示されています。NTPサーバー間と、NTPサーバーとPCなどのエンドデバイス間では通信シーケンスが異なるのでしょうか。正直混乱しています。
よろしくお願いします。
答え1
たとえば、NTP クライアントから NTP サーバーに時刻を同期する場合、NTP クライアントから NTP サーバーへの送信方向のみを開くことは問題ないと思われます。
クライアントにとって、通常はしない受信ポートを明示的に開く必要はありません。ステートフル ファイアウォールが使用されたポートを記憶し、着信応答パケットを自動的に受け入れることに頼ることができます。
しかし、あなたはするポート 123 の受信パケットが明示的にブロックされていないことを確認する必要があります (ISP が DoS 攻撃を軽減しようとしたり、顧客が誤ってオープン NTP サーバーを実行しないようにしたりするときに、このような状況が発生することがあります)。
NTP には、「クライアント/サーバー」に加えて、「対称」(ピアツーピア) モードもあります。少し変わっていますが、古いバージョンの NTP では、使用されているモードを決定するためにポート番号が使用されます。サーバーと通信するクライアントは一時的な送信元ポートを使用しますが、対称モードのピアは送信元ポートとして 123 を使用します。そのため、受信応答の宛先ポートも同様に 123 になります。
一般的に、基本的な SNTP クライアントは「クライアント/サーバー」モードを使用し、フル サーバーは「対称アクティブ」モードを使用します。ただし、たとえば組み込みの Windows NTP クライアント (w32tm) は、単純な更新を実行している場合でも常に対称モードを使用しているように見えます。これは、AD ドメイン コントローラーで実行されている NTP サーバーと同じコードベースであるためと考えられます。(同様に、ntpd を実行している PC は、対称モードを使用するように構成されている可能性があります。)
これは、ほとんどのWindows PC(およびおそらく他のNTPクライアントも同様)では、NTPサーバーからPCへの受信応答には123が含まれることを意味します。宛先ポートとしてこれらは実際には着信クエリであると認識するステートレス ACL によって誤ってブロックされる可能性があります。