NTPがUDPポート123への双方向ファイアウォールアクセスを必要とするのはなぜですか?


17

からntpを許可するiptablesルールは何ですか?

iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT

また、NTP Webサイトから:

... ntpdには、特権UDPポート123への完全な双方向アクセスが必要です。...

私の質問は、なぜですか?NTPに慣れていない人にとって、これは潜在的なセキュリティホールのように見えます。特に、私のクライアントがファイアウォールでそのポートを開いて、サーバーが時間を同期できるように依頼している場合はそうです。ファイアウォールでこのアクセスが必要であることをクライアントに納得させるために、クライアントに正当な理由がある人はいますか?ヘルプは大歓迎です!:)


2
「関連/確立を許可する」という部分を読みましたか?このルールの存在する場合はUDPポート123のための一般的な入力ルールは必要ありません
VMai

1
これは本当に潜在的なセキュリティホールですか?これは頻繁に繰り返されるフレーズで、無意味だと思います。2014年には、1024未満のポートに特別なプロパティを埋め込み、明示的に必要でないすべてのトラフィックをブロックします。インターネット上の特定のホストから1つのマシンへのポートを1つ開いています。
dfc 14年

確かに潜在的なセキュリティホールではないことに同意しますが、私は金融業界で働いており、人々は「何かが通り抜ける」場合にファイアウォールを開くことにいつも神経質です。手元に十分な正当性があることは常に価値がありますが、自分自身の答えに興味があります-タイムサーバー上のntpdは、実際にクライアントに発信接続を行って時間更新を送信しますか?それは奇妙に聞こえ、特にスケーラブルではありません。
DuffJ 14年

私はこれを数日前にグーグルで検索しましたが、着信接続なしで管理できます。
barlop

上のことを言っ@VMai人superuser.com/questions/141772/... 何の例を与えなかったが、私は彼が発信接続、それらの中に来るパケットを有効にするためのものだと思います。これは、「ntpdには特権UDPポート123への完全な双方向アクセスが必要」という概念とは異なります。これは、着信接続のように聞こえます。関連/確立済みを使用して着信および発信を許可する場合、4つのルールが必要になります。着信接続の場合は2、発信接続の場合は2。
barlop

回答:


10

サーバーとして機能し、クライアントがあなたと同期できるようにする場合にのみ、着信トラフィックのNTPのポートを許可する必要があります。

そうでない場合、NTP状態の存在により、開始した既存のファイアウォール状態によって着信NTPパケットがブロックまたは許可されているかどうかが自動的に判断されます。

iptables -A出力-p udp --sport 123 --dport 123 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED、RELATED -j ACCEPT

iptablesルールが適切かどうかを教えてください。私はiptablesの経験がありません。pfSenseはステートフルファイアウォールであるため、NTPクライアントは、発信許可ルールのみでpfSenseルーター上で同期されたままです。


1
これは理にかなっているようです!残念ながら、私はもはやあなたの答えの正しさを確認する立場にありません。ただし、論理的に見えるので、受け入れます。どうもありがとう!
DuffJ

1

NTPは、NTP RFCがクライアントの送信元ポートに関して以下を指定しているため、ポート123での双方向アクセスが必要です。

対称モード(1および2)で動作する場合、このフィールドにはIANAによって割り当てられたNTPポート番号PORT(123)が含まれている必要があります。

クライアントのソースポートは123であるため、サーバーが応答を送信すると、ポート123に送信されます。当然、その応答を受信するには、クライアントはポート123で着信応答を許可する必要があります。いくつかの一時ポート範囲。

ベン・クックは、前述したステートフルファイアウォールとしてステートレスファイアウォールを扱うとき、これはのみ必要です応答が明示的なルールなしで戻って来ることができるでしょう。


0

最善の解決策は、サーバーにntp信号を与えると予想されるIPアドレスに対してのみ、入力用にポート123を有効にすることだと思います。
ntp構成ファイル/etc/ntp.conf内には、サーバーがポイントすべきいくつかのntpサーバーのアドレスがあります。lookupコマンドを使用して、各アドレスに対応するIPを見つけることができます。

host -t a 0.debian.pool.ntp.org

次に、サーバーファイアウォールにルールを追加できます

iptables -I INPUT -p udp -s 94.177.187.22 -j ACCEPT


これにより、悪意のある人がサーバーを損傷するのを防ぐことができます。
出力を制限しても意味がないと思います。


-1

ntpサーバーからサーバーへの通信は、ソースおよび宛先ポート123です。少なくともntpサービスを実行しているホストに対して明示的に許可するのが最も便利です。

外部ソースから時間を取得するために、外部ホストをインターネットに公開することのみを検討することもできます。これに同期する内部ntpサービスは、すべてのデバイスのソースになる可能性があります。これらのホストが目的専用である場合、露出の可能性は制限されます。ホストはntpトラフィックのみを受け入れ、他のデータは保存しません。

または、外部IPネットワークをまったく使用しないでください。たとえば、GPSなどの無線ソースを時間に使用します。

http://www.diablotin.com/librairie/networking/firewall/ch08_13.htm http://support.ntp.org/bin/view/Support/TroubleshootingNTP


1
この回答に感謝しますが、質問には答えません。私がシステム管理者であり、ファイアウォールを開いて内部NTPサービスをセットアップできるようにしたい場合はどうすればよいですか?NTPに双方向アクセス(単方向アクセスよりもはるかに危険)が必要な理由は、まだ誰にもわからないようです。
DuffJ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.