NTP

読み:えぬてぃーぴー / 英語表記:Network Time Protocol

ネットワークにつながった機器の時刻を、正確な時刻のサーバに合わせる(同期する)ためのプロトコル。UDPの123番ポートを使う。

イマシルちゃんの解説

パソコンやサーバの時計は、放っておくと少しずつずれていくんだ。
時刻がそろっていないと、複数の機器が残した動作記録(ログ)を比べても出来事の順番を追いにくくなるよ。
NTPは、ネットワークを通じて機器の時計をサーバの時刻に合わせるプロトコルなんだ。
問い合わせと応答を送受信した時刻から、通信にかかった時間と時計のずれを見積もるよ。
その結果を使って時計を調整し、定期的にやり取りしてずれを小さく保つんだ。
通信の状況などで誤差は残るけれど、機器同士で時刻をそろえると障害の原因を調べやすくなるんだよ。

より深い解説

定義

NTP(Network Time Protocol)は、RFC 5905などで定められた、ネットワークを通じて機器の時刻を同期するためのプロトコルである。UDPのポート123番を使う。インターネット上でもミリ秒単位、LANではそれ以上の精度で時刻を合わせられる。

階層構造(ストラタム)

ストラタム内容
0原子時計やGPSなどの、正確な時刻の源(基準時計)
1ストラタム0に直接接続されたNTPサーバ
2ストラタム1から時刻を得るサーバ
…数字が大きいほど、基準時計から遠い(最大15)

上位のサーバに負荷が集中しないように、組織の中にNTPサーバを置き、組織の機器はそこから時刻を得るのが一般的である。

時刻の合わせ方

クライアントとサーバの間で、送信と受信の4つの時刻(T1~T4)を記録し、ネットワークの往復の遅延を差し引いて、時刻のずれを計算する。

往復の遅延 = (T4 − T1) − (T3 − T2)
時刻のずれ = ((T2 − T1) + (T3 − T4)) ÷ 2

T1:クライアントの送信時刻、T2:サーバの受信時刻、T3:サーバの送信時刻、T4:クライアントの受信時刻

NTPを使った増幅型のDDoS攻撃

NTPは、送信元を偽装しやすいUDPを使い、小さな要求に大きな応答を返す機能があったため、DRDoS(リフレクション)攻撃の踏み台に悪用された。

  1. 攻撃者は、送信元IPアドレスを攻撃対象に偽装して、多数のNTPサーバに要求を送る
  2. 悪用されたのは、管理用のmonlistコマンド(直近にアクセスしてきた最大600件のクライアントの一覧を返す機能)
  3. 小さな要求に対して、非常に大きな応答(数百倍)が、攻撃対象に送りつけられる

踏み台にされないための対策

対策内容
monlistを無効にするNTPサーバの設定を変更して、状態確認の機能(monlist)を使えなくする。ソフトウェアを更新する(新しい版では既定で無効)
アクセスの制限時刻の問い合わせに応答する相手を、自組織のネットワークに限定する
送信元の偽装を防ぐISPや組織の出口で、送信元IPアドレスが偽装されたパケットを遮断する(イングレスフィルタリング)

「自ネットワーク外のNTPサーバへの時刻の問い合わせを止める」ことは、自分の時刻同期を止めるだけで、踏み台にされることの防止にはならない。また、「外部からのUDPのアクセスをNTPだけ許可する」設定は、むしろNTPへの要求を受け入れることになる。

SNTP

SNTP(Simple NTP)は、NTPの機能を簡略化したもので、高い精度を必要としないクライアントや組込み機器で使われる。NTPと同じパケットの形式とポート番号を使う。

実際の試験ではここに出る!全5問

ネットワークスペシャリスト

午後Ⅰ
午後Ⅱ
午前Ⅱ

この用語が出てくる記事

↑