NTP
ネットワークにつながった機器の時刻を、正確な時刻のサーバに合わせる(同期する)ためのプロトコル。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(リフレクション)攻撃の踏み台に悪用された。
- 攻撃者は、送信元IPアドレスを攻撃対象に偽装して、多数のNTPサーバに要求を送る
- 悪用されたのは、管理用のmonlistコマンド(直近にアクセスしてきた最大600件のクライアントの一覧を返す機能)
- 小さな要求に対して、非常に大きな応答(数百倍)が、攻撃対象に送りつけられる
踏み台にされないための対策
| 対策 | 内容 |
|---|---|
| monlistを無効にする | NTPサーバの設定を変更して、状態確認の機能(monlist)を使えなくする。ソフトウェアを更新する(新しい版では既定で無効) |
| アクセスの制限 | 時刻の問い合わせに応答する相手を、自組織のネットワークに限定する |
| 送信元の偽装を防ぐ | ISPや組織の出口で、送信元IPアドレスが偽装されたパケットを遮断する(イングレスフィルタリング) |
「自ネットワーク外のNTPサーバへの時刻の問い合わせを止める」ことは、自分の時刻同期を止めるだけで、踏み台にされることの防止にはならない。また、「外部からのUDPのアクセスをNTPだけ許可する」設定は、むしろNTPへの要求を受け入れることになる。
SNTP
SNTP(Simple NTP)は、NTPの機能を簡略化したもので、高い精度を必要としないクライアントや組込み機器で使われる。NTPと同じパケットの形式とポート番号を使う。
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和7年度 春期 午後Ⅰ 問3
- ネットワークスペシャリスト 令和7年度 春期 午後Ⅱ 問2
- ネットワークスペシャリスト 令和5年度 春期 午前Ⅱ 問17
- ネットワークスペシャリスト 令和3年度 春期 午前Ⅱ 問17