UDel ntpd - タイムサーバーの検出を完全に無効にする

UDel ntpd - タイムサーバーの検出を完全に無効にする

私は、自分の組織が運用する 3 台のサーバー (他には誰も運用していないと思っていた) のクライアントとして UDel ntpd (バージョン 4.2.6.p5) を設定しました。

server xx.yy.zz.1 iburst
server xx.yy.zz.2 iburst
server xx.yy.zz.3 iburst

restrict default ignore
restrict xx.yy.zz.1 nomodify notrap nopeer noquery
restrict xx.yy.zz.2 nomodify notrap nopeer noquery
restrict xx.yy.zz.3 nomodify notrap nopeer noquery

約 5 分間の稼働後、ntpq はデーモンがさらに 2 つのタイム サーバー (これも私の組織によって運用されていますが、タイム サーバーの公式リストには載っていません) を検出して追加したことを報告しました。

ntpq> pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*xx.yy.zz.1          aa.bb.cc.dd  2 u   16   64    1    0.157   -2.230   0.032
 xx.yy.zz.2          aa.bb.cc.dd  2 u   15   64    1    0.207   -2.191   0.032
 xx.yy.zz.3          aa.bb.cc.dd  2 u   14   64    1    0.211   -2.171   0.014
 xx.yy.zz.4         .INIT.       16 u    -   64    0    0.000    0.000   0.000
 xx.yy.zz.5         .INIT.       16 u    -   64    0    0.000    0.000   0.000

これらのサーバーはアドレスのホワイトリストになかったため(知らなかったため)、クライアントがそれらと通信しようとしても失敗しました。

これがどのように起こったのかは正確にはわかりませんが、ドキュメントから、サーバー A がクライアントに「サーバー B、C、D とも通信する必要があります」と伝える何らかの方法があるという印象を受けます。私が見つけたドキュメントには、このためのさまざまな方法についてのまとまりのない言葉がたくさん書かれていますが、それを制御する方法についてはまったく書かれていません。

したがって、質問は次のようになります。これを完全にオフにして、クライアントが何があっても構成ファイルに明示的にリストされているサーバーとのみ通信するようにするにはどうすればよいですか?


リクエストに応じて:

# ntpq -pncrv | redact
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+xx.yy.zz.1      aa.bb.cc.dd  2 u   56 1024  377    0.177   -0.010   0.070
*xx.yy.zz.2      aa.bb.cc.dd  2 u  690 1024  377    0.237    0.028   0.046
+xx.yy.zz.3      aa.bb.cc.dd  2 u  226 1024  377    0.229    0.013   0.052
 xx.yy.zz.4      .INIT.      16 u    - 1024    0    0.000    0.000   0.000
 xx.yy.zz.5      .INIT.      16 u    - 1024    0    0.000    0.000   0.000
associd=0 status=061b leap_none, sync_ntp, 1 event, leap_event,
version="ntpd [email protected] Fri Apr 10 19:04:04 UTC 2015 (1)",
processor="x86_64", system="Linux/3.16.0-4-amd64", leap=00, stratum=3,
precision=-22, rootdelay=0.405, rootdisp=38.394, refid=128.2.1.21,
reftime=d951542d.a6db3cdc  Wed, Jul 15 2015 17:50:37.651,
clock=d95156df.0d2756da  Wed, Jul 15 2015 18:02:07.051, peer=9102, tc=10,
mintc=3, offset=0.009, frequency=-5.266, sys_jitter=0.024,
clk_jitter=0.030, clk_wander=0.003

# redact < /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server aa.bb.cc.1 iburst
server aa.bb.cc.2 iburst
server aa.bb.cc.3 iburst
restrict -4 default ignore
restrict -6 default ignore
restrict aa.bb.cc.1 nomodify notrap nopeer noquery
restrict aa.bb.cc.2 nomodify notrap nopeer noquery
restrict aa.bb.cc.3 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

DHCP から追加のサーバーを取得することについては、ここには何も記載されていません。

答え1

あなたの組織が何であるか、また DHCP を使用しているかを推測しました。

はい、あなたの組織3つのサーバーのグループを目立つように公開するそうは言っても、あなたの組織もDHCPクライアントに他の6つのサーバーを使用するように指示します

マシンが DHCP でアドバタイズされたサーバーを使用していることがなぜ問題になるのかはわかりませんが、必要に応じてこの機能をオフにすることができます。Debian を使用している場合は、/etc/dhcp/dhclient.confリクエスト ステートメントから ntp-servers オプションを編集して削除する必要があります。

request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
-   rfc3442-classless-static-routes;
+   rfc3442-classless-static-routes, ntp-servers;

Debian を使用していない場合は、ディストリビューションのドキュメントを参照する必要があります。

関連情報