ntpqでリモートのntpdサーバの情報を取得
Pocket

NTPに関連するコマンド『ntpq』において、リモートで稼働しているNTPサーバの情報を取得することが出来ると知ったので試してみた。
テスト用のNTPサーバは、CentOSで稼働させ、IPアドレスは「192.168.0.222/24」とする。

まずはNTPサーバの「/etc/ntp.conf」に、以下の内容を追加する。

restrict 192.168.0.0 mask 255.255.255.0

これは、「192.168.0.0/24のネットワークからのアクセスを受け付ける」という意味になる。
また、リモートから操作出来るようにiptablesの停止を行う。

service iptables stop

さて、これでクライアント機からntpqコマンドを用いてNTPサーバの情報が取得できる。
NTPクライアント機で、以下のコマンドを実行し対象のNTPサーバで対話モードを使用し、Peersの情報を参照する。

blacknon@X201:~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-a2.nict.go. .NICT.           1 u    1   64  377    7.568   69.194  20.079
blacknon@X201:~$ ntpq 192.168.0.222
ntpq> peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 gw1.kohaaloha.c .INIT.          16 -    - 1024    0    0.000    0.000   0.000
 laika.paina.jp  .INIT.          16 -    - 1024    0    0.000    0.000   0.000
*ntp-v6.chobi.pa 245.93.165.128   2 u    8   64  377    4.804    0.270   9.542
 felixx.tsn.or.j .INIT.          16 -    - 1024    0    0.000    0.000   0.000

    Screenshot_from_2014-05-17 19:48:40

    さて、このアクセスを停止させるにはどうすればいいのか。
    先程「/etc/ntp.conf」に追記した一文を、以下に書き換えればいい。

    Sponsored Links

    restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap nopeer noquery
    

    末尾に「nomodify」「notrap」「nopeer」「noquery」というオプションが追加されているのがわかると思う。
    これらはフラグと呼ばれており、こちらのページを参照するとわかりやすい。

    以下に、このフラグの内容についてだけ抜粋する。

    • ignore : 全てのパケットを拒否する。
    • noquery : ntpq のクエリー(照会)を無視する
    • nomodify : サーバーの状態を変更しようとする ntpq のクエリー(照会)を無視する
    • noserve : 時刻同期要求は拒否するが、ntpq のクエリー(照会)は許可する
    • notrust : 指定したホストを参照先サーバーとして使用しない
    • notrap : trap サービスのためのパケットを拒否する。

    構築したいサーバに併せて、上のフラグを組み合わせてあげるといい。

    Pocket

    Written by blacknon

    インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

    Leave a Comment

    メールアドレスが公開されることはありません。