2017/06/10 CentOS7.2





時刻同期させる

NTPサービスはシステム内に一つは欲しいところです。
まずはNTPがインストールされているかを確認します。

#rpm -q ntp
ntp-4.2.6p5-25.el7.centos.2.x86_64

このようにNTPのバージョンが表示されれば、インストールされています。
表示されなければ、コマンドでインストールします。

#yum install ntp

/etc/ntp.confを確認します。コメントは除いてあります。
赤字が追記部分です。

単にインターネット上のNTPサーバと同期したいだけなら、デフォルトのntp.confで動作します。
またLAN内のNTPサーバとなってクライアントの要求に応答するのも、デフォルトのままで動作します。
(もちろんファイアウォールは開放されている必要があります)

#firewall-cmd --zone=public --add-service=ntp --permanent

ここではセキュリティを意識した、設定されたNTPサーバの設定とします。

上位NTPサーバと下位NTPクライアントを指定する

/etc/ntp.conf(赤字が変更部分)
----------------------------------
driftfile /var/lib/ntp/drift

restrict default ignore #上位と同期しない、クライアントからの要求にも応じない。攻撃対策
#restrict default nomodify notrap nopeer noquery 
#細かいことは禁止するが、時刻同期については慣用的な部分。コメントアウト

restrict 127.0.0.1
#ローカルからはなんでも許可
restrict ::1

restrict 210.173.160.27 nomodify notrap nopeer noquery #IPで上位NTPとの時刻同期を許可
server ntp1.jst.mfeed.ad.jp iburst #使用する上位NTP。iburstで収束を高速化

#server 0.centos.pool.ntp.org iburst  #コメントアウト
#server 1.centos.pool.ntp.org iburst  #ristrict default ignoreを使用しているので
#server 2.centos.pool.ntp.org iburst 
#これらのラウンドロビン型のNTPは使用できません
#server 3.centos.pool.ntp.org iburst

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap nopeer
#クライアントセグメントからの時刻同期要求を許可

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

disable monitor
------------------------------------


まずrestrict default ignore で基本は全てのアクセスを無視します。
この場合の無視とは、クライアントからの要求だけではなく、上位サーバと同期することも禁止します。
これは誤ったサーバと同期しない、無関係なクライアントから要求に応答しない、ことを意図します。
同期する上位NTPサーバを指定する場合、restrict行で具体的にそのサーバのIPアドレスを許可する必要があります。
従って、0.centos.pool.ntp.orgのような、毎回アドレスが代わるNTPとは同期できません。



接続確認
NTPを再起動し、接続を確認します。

#systemctl start ntpd.service
#ntpq -p
 
[root@localhost ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp2.jst.mfeed. 133.243.236.17   2 u  110  128  377   16.274    0.617   5.098

ある程度時間が経過してから実行すると、ntpqの結果に同期を示すアスタリスクが表示されます。



どうしても同期しない場合は、各種コマンド(ntpdc、ntpdate、ntpstat)で切り分けます。

#ntpdc
ntpdc>showpeer 210.173.160.57

remote ::, local ::
hmode client, pmode unspec, stratum 2, precision -24
leap 00, refid [133.243.236.17], rootdistance 0.05069, rootdispersion 0.06618
ppoll 7, hpoll 7, keyid 0, version 4, association 47743
reach 377, unreach 0, flash 0x1200, boffset 0.01627, ttl/mode 0
timer 0s, flags system_peer, config, bclient
reference time:      dce5fc1f.0d244054  Sat, Jun 10 2017 14:03:27.051
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  9:00:00.000
receive timestamp:   dce60288.8926ac01  Sat, Jun 10 2017 14:30:48.535
transmit timestamp:  dce60288.8926ac01  Sat, Jun 10 2017 14:30:48.535
filter delay:  0.01663  0.01773  0.03038  0.01923
               0.01627  0.01666  0.01633  0.02797
filter offset: 0.000171 0.000354 -0.00663 -0.00026
               0.000617 0.000451 0.000568 -0.00608
filter order:  4        6        0        5
               1        3        7        2
offset 0.000617, delay 0.01627, error bound 0.08061, filter error 0.06123

flash部分が、接続できない理由を示します。正常なら0x0000になります。
0x1200の場合一番考えられるのはntp.confでserver名が指定されているが、restrictの許可部分がない場合です。
あるいはserverで指定している上位NTPホスト名と、restrictで許可しているIPアドレスが間違っている場合です。

このIDを調べれば、「相手のNTPサーバが時刻同期を許可していない」「認証が必要である」など同期しない理由が判明します。







prev.gif