NTP サーバーが安全かどうかをテストする方法

NTP サーバーが安全かどうかをテストする方法

ntp.conf ファイルで NTP の設定をいくつか試して、NTP サーバーが保護されているかどうかを確認したいと考えています。

ここで提供される推奨事項に従います。 https://support.ntp.org/Support/AccessRestrictions#Section_6.5.1.2.1

以下を追加しました:

IPV4: restrict -4 default limited kod nomodify notrap nopeer noquery

IPv6: restrict -6 default limited kod nomodify notrap nopeer noquery

さて、質問です: ドキュメントに書かれた行に基づいて:

他のユーザーが ntpd から時刻を取得できるようにしたいのであれば、サーバーのステータス情報も表示できるようにしますか (これにより、OS や ntpd のバージョンに関する情報が明らかになる可能性があるにもかかわらず)?

サーバーがステータスやその他の OS 情報を送信しているかどうかをどのように確認できますか?

さらに、制限に「noquery」オプションを追加しない場合の違いは何ですか。また、「noquery」オプションの有無をどのようにテストできますか。つまり、そのようなオプションを追加すると何らかの影響があるかどうかです。(セキュリティの観点からテストしたいです)

Wireshark を使用してステータスや OS 情報を取得し、conf オプションをテストできますか?

答え1

ntpdのリファレンス実装では、多くの実装変数をプログラムを通じて公開しています。ntpq(そしてntpdcこれらは、特別な NTP パケット内の制御プロトコルを使用します。制御チャネルが ntpd 構成を変更することは可能ですが、任意の数のホストへの構成ファイルの展開を自動化できる現代ではほとんど使用されません。

ntpdのメンテナンスのリスクは主に偽装アドレスへのIP増幅の防止ネットワーク上の不正な IP アドレスによる時間同期構成の変更から保護します。

いつものように、パッチを当て続けることでいくつかの欠陥が軽減されます。「monlist」関数による増幅攻撃により、2013-5211 の脆弱性これは何年も前に更新されるべきだったが、全てホストの がサポートされているディストリビューション上にあり、メンテナーから注意を受けています。

monlistへの注目が高まり、monlistを簡単にスキャンできるツールがいくつか登場しました。たとえば、nmap スクリプト ntp-monlist

機能の完全なリストはntpq 用に文書化されたコマンド。 wiki の choose-your-own-configuration のこれらの行は によって異なりnoquery、これはすべての ntpq クエリを完全に拒否します。 タイム サービスを実行したままにします。 たとえば、その nmap スクリプトは何も返しません。 とは対照的に、 はnomodfy設定を変更するコマンドのみを制御するアクセス ルールです。 は明らかにnomodify厳しく制限する必要があり、おそらく localhost のみに制限する必要があります。

お気に入りのディストリビューションのパッケージなど、他の場所にあるサンプル構成と比較します。RHEL 7 の ntp.confアクセス制御の出発点としてこれを提案します:

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery
    
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
    
restrict 127.0.0.1 
restrict ::1
    
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    
# Disable the monitoring facility to prevent amplification attacks using ntpdc  
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor

ntpd がすでにパッチ適用されているにもかかわらず、monlist の緩和策に注意してください。さらに、リモート ホストのデフォルトでは、クエリや変更ができません。軽微な変更を加えると、パブリック インターネットにサービスを提供できる NTP ホストを作成できます。

当然、必要な ntp.conf がわかったら、それを展開します。NTP サーバーの構成を自動化し、すべてのホストのテンプレート イメージで適切な構成を取得します。

この monlist の議論では、ntp による OS とプラットフォームの識別に関する元の質問はカバーされていません。ntpq ドキュメントによると、そのビルド情報は、readvar制御コマンドを介してシステム変数に表示される可能性があります。つまり、リモート サーバーの場合: ntpq -c readvar time.example.net。ただし、問題の NTP ホストがどのアソシエーション ID であるかなど、ここではデコードする実装の詳細がいくつかあります。

個人的には、ntpd のビルド情報を公開することについてはあまり心配していません。誰かが私の ntpd が最新であり、状態マシンの一部が最新であることを知ったとしても、それでできることはあまりありません。攻撃者は、増幅を期待して、偽造された NTP パケットを可能な限りすべてのホストに散布するでしょう。

関連情報