メインコンテンツへスキップ

ntpd を用いたNTPサーバの構築

··1 分·
Linux Ntp
Makoto Morinaga
著者
Makoto Morinaga
技術メモ、コーディング、環境構築のための個人ノート。
目次

複数のサーバを構築している場合、サーバ間の連携やログのタイムスタンプを合わせるた めに、サーバ内の時刻が同じであることは必須です。

そこで、今回はNTPサーバを1台構築し、サーバのシステム時刻を日本標準時間に自動的に合わせ、その他のサーバは構築したNTPサーバを参照させることで、管理しているサーバの時刻を同期させます。

NTPサーバ機能の有名所としては、ntpdとchronyがありますが、今回はntpdでNTPサーバを構築します。

なお、linuxにおけるntpdの設定は基本的に共通していますので、今回はArchLinuxで設定します。

ntpdのインストール
#

サーバにて以下のコマンドでntpをインストールします。

Terminal
sudo pacman -S ntp

ntpデーモンの設定
#

/etc/ntp.confを編集して、ntpデーモンの設定を行います。

ntpdの同期先の指定
#

デフォルトでは、ntpdの同期先の指定方法してserverが利用されますが、poolで指定すると、DNSのラウンドロビンのサーバも指定できますので、poolで指定します。 ntpdの同期先としては、インターネットマルチフィード株式会社が運営するPublic NTPサーバを利用します。 また、インターネットにアクセスできない場合でも、時刻の提供を続行できるように サーバのlocal timeを追加します。その際に、fudgeを使ってstratum 12 サーバーとして 追加することで、インターネットが接続可能な限りlocal timeは使用されなくなります。

/etc/ntp.conf
# server 0.arch.pool.ntp.org
# server 1.arch.pool.ntp.org
# server 2.arch.pool.ntp.org
# server 3.arch.pool.ntp.org
pool ntp.jst.mfeed.ad.jp
server 127.127.1.1
fudge 127.127.1.1 stratum 12

restrictの指定
#

restrictを以下のように設定して、ntpdの同期先との同期、サーバ自身及びLAN(ここでは、192.168.10.0/24)内からの時刻問い合わせを許可します。

/etc/ntp.conf
restrict default kod limited nomodify nopeer noquery notrap # default設定
restrict 127.0.0.1 # サーバ自身のアクセス許可(ipv4)
restrict ::1 # サーバ自身のアクセス許可(ipv6)
restrict source notrap nomodify noquery # ntpdの同期先との同期許可
restrict 192.168.10.0 mask 255.255.255.0 nomodify nopeer noquery # LAN内からの時刻問い合わせ許可

ntpデーモンの起動と有効化
#

以下のコマンドで ntpデーモンを起動します:

Terminal
sudo systemctl start ntpd.service

さらに、以下のコマンドで ntp デーモンを起動時に有効します:

Terminal
sudo systemctl enable ntpd.service

NTPの同期確認
#

以下のコマンドを実行して、同期先のサーバの前に+*が付与されていれば問題ありません。

Terminal
ntpq -p

出力例:

Terminal
remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
ntp.jst.mfeed.a  .POOL.          16 p    -   64    0    0.000    0.000    0.000
LOCAL(1)         .LOCL.          12 l  478   64  200    0.000    0.000    0.000
+ntp1.jst.mfeed. 133.243.236.17   2 u   60   64  377    2.790    0.190    0.636
+ntp3.jst.mfeed. 133.243.236.17   2 u    8   64  377    2.808   -0.018    0.755
*ntp2.jst.mfeed. 133.243.236.17   2 u    4   64  377    2.738    1.666    0.637

iptablesの設定
#

NTPサーバとしてLAN内に公開しますので、iptablesで123番ポートへアクセスを許可します。

iptablesの具体的な設定方法は、iptablesの設定を参照ください。

Terminal
iptables -A INPUT -p udp --dport 123 -j ACCEPT

関連記事

iptablesの設定
··2 分
Linux Firewall Iptables
Arch Linuxの初期設定
··1 分
Arch-Linux
net51-driversからnet55-driversへのアップデート
··1 分
Esxi