このページではntpdを使って自宅サーバーの時刻をNTPと同期させるための、ntp.confの設定方法について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
NTP SSH DHCPサーバーの構築

NTPサーバーについて

ntpdの設定(WBEL3,CentOS3)

ntpdの設定(WBEL4,CentOS4)

ntpdの設定(CentOS5)

ntpdのコントロール

ntpdの動作チェック


SSHサーバーについて

sshdの設定(WBEL3,CentOS3)

sshdの設定(WBEL4,CentOS4)

sshdの設定(CentOS5)

sshdのコントロール

sshdの動作チェック

ポートフォワーディングの設定


DHCPサーバーについて

DHCPのインストールと設定

DHCPのコントロール

DHCPの動作チェック


ntpdの構築に必要なファイル(WBEL3,CentOS3)

この コンテンツ に従って普通に WBEL や CentOS を インストール すると、 ntpd とその設定に必要なファイル類は既に 構築中のLinuxサーバー にインストールされているはずです。

以下に、WBELやCentOSにインストールされているntpdで、操作や設定が必要なファイルを示します。

それ以外の ディストリビューション をお使いの場合や、標準添付以外のパッケージをインストールした場合には、ファイル名やディレクトリの パス が以下とは異なる場合がありますので注意してください。

ntpdの必要ファイル一覧
ntpdの必要ファイル一覧

ntpdの本体プログラムは"/usr/sbin/ntpd"ですが、これを直接呼び出すことはまずありません。

実際にはこの"/usr/sbin/ntpd"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/ntpd" を用います。

また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/ntpd" でも呼び出すことができます。

例えば、

"/etc/init.d/ntpd start" →ntpdの起動

"/etc/init.d/ntpd stop" →ntpdの停止

という使い方になります。

"/etc/rc.d/init.d/" には パス が通っていません パスが通っていないディレクトリにあるファイルの実行 から、パスを省略して実行することはできませんので注意してください。

また、先ほど説明したとおり、ntpdの設定ファイルは "/etc/ntp.conf" です。

ntpdはほとんどの動作についてこの"/etc/ntp.conf"の内容を参照しますから、設定に関して書き換えが必要なファイルはこの"/etc/ntp.conf"だけだと思ってよいでしょう。

このページの先頭へ↑

"/etc/ntp.conf"の編集(WBEL3,CentOS3)

まず、 サブネット 内の適当な クライアント機 から SSHクライアント で 構築中のLinuxサーバー に ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) 。

それから su コマンド で ユーザーアカウント を "root" に変更し、 cp コマンドでバックアップを作成した後、 nano エディタで "/etc/ntp.conf" を開きます nanoエディタでファイルを開く 。

[tanaka@web1 tanaka]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 root]# cp /etc/ntp.conf /etc/ntp.conf.orgEnter
[root@web1 root]# nano /etc/ntp.confEnter

↓

nanoで/etc/ntp.confを開く
nanoで"/etc/ntp.conf"を開く

"/etc/ntp.conf/" は、 ntpd が動作中でも自由に書き換えることができます。

ただし、 WBEL3 や CentOS3 の サーバー アプリケーション は通常、設定ファイルを保存しただけでは設定は反映されません。もちろんntpdも同様です。

サーバーアプリケーションの設定ファイルは、通常サーバーアプリケーションの起動時に参照されて読み込まれますから、設定ファイルの保存後にサーバーアプリケーションの再起動を行うか、設定ファイルの再読み込みのコマンドを実行しなければ、設定ファイルの修正は有効になりませんので注意してください。

ntpdの再起動、設定ファイルの再読み込みについては、 ntpdのコントロールについて で説明します。

このページの先頭へ↑

ntp.confの編集(WBEL,CentOS)

以下に編集前の"/etc/ntp.conf"の内容を示します。

# Prohibit general access to this service.
restrict default ignore
   1. 「全てのNTP通信を拒否する。」


# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
   2. 「"127.0.0.1"とのNTP通信を許可する。」


# -- CLIENT NETWORK -------
# Permit systems on this network to synchronize with this
# time service. Do not permit those systems to modify the
# configuration of this service. Also, do not use those
# systems as peers for synchronization.
# restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap


# --- OUR TIMESERVERS -----
# or remove the default restrict line
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.

# restrict mytrustedtimeserverip mask 255.255.255.255 nomodify notrap noquery
# server mytrustedtimeserverip



# --- NTP MULTICASTCLIENT ---
#multicastclient             # listen on default 224.0.1.1
# restrict 224.0.1.1 mask 255.255.255.255 notrust nomodify notrap
# restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap



# --- GENERAL CONFIGURATION ---
#
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. The
# default stratum is usually 3, but in this case we elect to use stratum
# 0. Since the server line does not have the prefer keyword, this driver
# is never used for synchronization, unless no other other
# synchronization source is available. In case the local host is
# controlled by some external source, such as an external oscillator or
# another protocol, the prefer keyword would cause the local host to
# disregard all other synchronization sources, unless the kernel
# modifications are in use and declare an unsynchronized condition.
#
server 127.127.1.0   # local clock
   3. 「"127.127.1.0"をNTPサーバーとして参照する。」
fudge  127.127.1.0 stratum 10
   4. 「"127.127.1.0"をNTPサーバーとして参照させる。」

#
# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
#
driftfile /var/lib/ntp/drift
   5. ntpdにより作成される誤差修正値ファイルの指定。
broadcastdelay 0.008
   6. ブロードキャストで生じる誤差を指定。

#
# Authentication delay. If you use, or plan to use someday, the
# authentication facility you should make the programs in the auth_stuff
# directory and figure out what this number should be on your machine.
#
authenticate yes
   7. 「ntpdの認証システムを利用する。」

#
# Keys file. If you want to diddle your server at run time, make a
# keys file (mode 600 for sure) and define the key number to be
# used for making requests.
#
# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote
# systems might be able to reset your clock at will. Note also that
# ntpd is started with a -A flag, disabling authentication, that
# will have to be removed as well.
#
keys      /etc/ntp/keys
   8. ntpdの認証システムを利用する場合のキーファイルを指定。

"#" で始まる行はコメント行として無視されます。つまり、この"/etc/ntp.conf"の内容の大部分は設定のための解説文で、実際の設定パラメータはごく一部です。

このファイルをこれから編集していきます。

"restrict"〜NTPで接続するホストを指定する

行の先頭が "restrict" というキーワードで始まる設定は、 NTP による通信の許可、拒否を決定するためのものです。このキーワードによる設定は最も優先されます。

従って、他のキーワードで具体的な ホスト とのNTPによる通信設定を行っても、この"restrict"キーワードで許可されていないホストとは通信できません。

キーワード"restrict"は、"/etc/ntp.conf"中に複数記述することができます。

デフォルト の"/etc/ntp.conf"では、

restrict default ignore  1. 「全てのNTP通信を拒否する。」
restrict 127.0.0.1     2. 「"127.0.0.1"とのNTP通信を許可する。」

の二つの設定値だけが有効になっていますが、"restrict"は先に記述された行から順に解釈され、後に記述された行の設定が優先となります。

つまり、前の記述内容と、後の記述内容が矛盾する場合には、 後の記述内容が有効になる 、という具合になるわけです。

従って、 1. で

「とりあえず全てのNTP通信を拒否しておく」

という初期化の設定を行い、その後に 2. で

「 ループバックアドレス 、つまり自分自身からのみNTP通信を許可する」

という設定を記述にすることで、 構築中のLinuxサーバー が自分自身以外のホストとの通信を行わないようにしているわけです。

もしも、この 1. と 2. の記述順序を入れ替えてしまうと、ntpdは自分自身を含めてすべてのNTP通信を行わなくなってしまいます。

しかしながらここでは敢えて "restrict" に関する設定を一切行わないことにします。

現在有効になっている 1. と 2. を "#" でコメントアウトしてください。

#restrict default ignore
#restrict 127.0.0.1

ntpd は"restrict"キーワードで通信制御を行わない場合、 「全てのホストとNTP通信を行う。」 という振る舞いになりますから、この二行の設定を無効にすると、すべてのホストと自由にNTP通信を行うことができるようになります。

「そんなことをして セキュリティ 上問題はないの?。」

と思われるかもしれませんが、ここでもう一度、現在構築中のネットワーク構成を思い出してください ネットワークの計画(WBEL3) ネットワークの計画(CentOS3) NAT+IPマスカレードの説明 。

つまり、ntpdが稼動する 構築中のLinuxサーバー は、 ルーター の NAT + IPマスカレード により、 WAN 空間からの一方的なアクセスに対して遮断されている LAN 内に設置されていますから、外部からのNTPによる不正アクセスが 構築中のLinuxサーバー に対して行われることはあり得ない、というわけです。

もちろん、 ポートフォワーディング でNTPによる通信を外部から直接受けるような設定を行う場合は、きちんと"restrict"を設定しなければなりませんが、今回はntpdにサーバーとしての役割は持たせませんから、ポートフォワーディングの設定も行いません。

結果として、すべてのNTP通信を許可しても、セキュリティ上の問題は発生しない、というわけです。

"server"〜参照するNTPサーバーを指定する

行の先頭が "server" で始まるキーワードは、参照先の NTP サーバー の指定です。

ここで指定したNTPサーバーの時刻を参照して 構築中のLinuxサーバー は自分自身の時刻を修正します。

書式は、

server [参照するNTPサーバーの IPアドレス または FQDN ]

となります。

参照先のNTPサーバーとしては、 ISP や任意団体、大学、企業などが運営しているものが任意に利用できますが、大体次のようなコンセプトで選定してください。

1.通信経路の負荷を減らすため、できるだけ自分が契約しているISPのサーバーを利用する。

2.通信経路の負荷を減らすため、自宅からできるだけ近い場所にあるNTPサーバーを利用する。

3.精度を上げるためと通信障害に備える意味で、3種類のNTPサーバーを指定するのが望ましい。

契約しているISPがNTPサーバーを運用していない場合は、一般利用を認めている他のNTPサーバーを利用することになります。例えば、

インターネットマルチフィード時刻情報サービス for Public

のNTPサーバーを利用する場合には、FQDNで、

よく解説書などには、 名前解決 によるタイミングのずれの減らすため、NTPサーバーの指定は
「FQDNよりもIPアドレスが望ましい。」
と書かれている場合があります。
これは一見もっともなアドバイスのように思えますが、実はあまり重視すべきことではありません。
常にアクセスを行うNTPサーバーの名前解決は、 ホスト機 の DNSキャッシュ に蓄えられているから、というのが主な理由です。
DNSキャッシュによる名前解決は一瞬で行われますので、これが時刻調整に与える影響は微々たるものです。
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp

と記述するか、それぞれのIPアドレスで、

server 210.173.160.27
server 210.173.160.57
server 210.173.160.87

と、"/etc/ntp.conf"に追加記述します。

一般で利用できるNTPサーバーについては、 Webブラウザ から 「NTPサーバー」 、 「タイムサーバー」 などのキーワードでインターネット上で検索を行うと調べることができます。

タイムサーバーの草分けともいうべき福岡大学のNTPサーバーは、心無い通信機器メーカーの無断利用などで毎秒1000件近いアクセスがあり、管理者を悩ませているとのことです。
公に利用できる施設は、 「利用させてもらう。」 という気持ちで利用しましょう。
もちろん、 WBEL3 や CentOS3 などの無料の ディストリビューション も同じ気持ちで利用しましょう。

その中には、例えば福岡大学のタイムサーバーのように、アクセス負荷が大きすぎて運用に支障をきたしているものもありますので、利用させてもらう際は状況をよく調べ、マナーを守るようにしましょう。

さて、 デフォルト の"/etc/ntp.conf"には、次のような"server"キーワードが記述されています。

server 127.127.1.0   # local clock
   3. 「"127.127.1.0"をNTPサーバーとして参照する。」

"127.127.1.0" は、 マザーボード 上の ハードウェア としての時計を示すアドレスです。

つまり現在は、 「ntpdは ホスト機 本体のマザーボードの時計の時刻を参照する。」 という設定になっているわけです。

これは、参照するNTPサーバーが具体的に設定されないケースに対処するための設定ですから、この部分の設定は "#" でコメントアウトしてください。

#server 127.127.1.0   # local clock

"fudge"〜NTPサーバーを宣言する

行の先頭が "fudge" で始まるキーワードは、指定した ホスト を独立した NTP サーバー として宣言する設定です。

デフォルト の"/etc/ntp.conf"には、次のような"fudge"キーワードが記述されています。

fudge  127.127.1.0 stratum 10
   4. 「"127.127.1.0"をNTPサーバーとして参照させる。」

つまり現在は、 「ntpdは ホスト機 本体の マザーボード の時計の時刻をNTPサーバーとして動作させる。」 という設定になっているわけです。

これは、参照するNTPサーバーが具体的に設定されないケースに対処するための設定です。また、 構築中のLinuxサーバー ではNTPサーバーを明示的には運用させませんから、この部分の設定は "#" でコメントアウトしてください。

#fudge  127.127.1.0 stratum 10

"driftfile"〜誤差修正用ファイルを指定する

行の先頭が "driftfile" で始まるキーワードは、 ntpd が ホスト機 の時刻の進み方と、 NTP サーバー の時刻の進み方との誤差を記録するファイルを指定する設定です。

ntpdは、参照するNTPサーバーと時刻を同期するとき、一時間あたりの誤差をこの"driftfile"に記録しておきます。

そしてもしも一時間以上NTPサーバーから時刻情報が得られないときには、その"driftfile"に記録された時間を元に暫定的に時刻調整を実施します。

デフォルト の"/etc/ntp.conf"には、次のような"driftfile"キーワードが記述されています。

driftfile /var/lib/ntp/drift
   5. ntpdにより作成される誤差修正値ファイルの指定。

この設定はそのまま利用しますので修正は行いません。

"broadcastdelay"〜通信で生じる誤差を指定する

行の先頭が "broadcastdelay" で始まるキーワードは、 ntpd が NTP サーバー と時刻を同期するときに ブロードキャスト で生じる同期タイミングの遅れを修正するパラメータの設定です。

デフォルト の"/etc/ntp.conf"には、次のような"broadcastdelay"キーワードが記述されています。

broadcastdelay 0.008
   6. ブロードキャストで生じる誤差を指定。

通信環境は場所により様々ですから、もちろんこの値は絶対的なものではありません。しかし実際のタイミングの遅れを測定してこの値の微調整を行っても、実用上の影響はありません。

従ってこの設定はそのまま利用します。

"authenticate""keys"〜ntpdで認証機能を利用する

行の先頭が "authenticate" で始まるキーワードは、 ntpd が NTP サーバー として利用されるときに認証を行うかどうかの設定です。

また、 "keys" は、その認証に用いるキーファイルの所在を指定するキーワードです。

デフォルト の"/etc/ntp.conf"には、次のような"authenticate"、"keys"キーワードが記述されています。

authenticate yes
   7. 「ntpdの認証システムを利用する。」

keys      /etc/ntp/keys
   8. ntpdの認証システムを利用する場合のキーファイルを指定。

構築中のLinuxサーバー ではNTPサーバーを明示的には運用させませんから、この部分の設定は、

#authenticate yes

#keys      /etc/ntp/keys

のように "#" でコメントアウトしてください。

このページの先頭へ↑

"/etc/ntp.conf"の例(WBEL3,CentOS3)

以上の内容で作成した "/etc/ntp.conf" は、こちらをクリックすると表示できます。

この テキスト ファイルには余分な文字は入っていませんから、開いてコピー&ペーストで使用するか、 ダウンロード して使用してください。

もちろん、書き換えが必要な部分は適宜書き換えてください。

記述が終わったら "/etc/ntp.conf" を保存し、nanoエディタを終了してください nanoエディタでファイルを開く 。

"/etc/ntp.conf" の編集が終わったら、 ntpd の起動または再起動を行って設定を有効化してください ntpdのコントロールへ 。

WBEL3 及び CentOS3 でのntpdの設定はこれでひとまず終了です。

次は左上のメニューから 「ntpdのコントロール」 へと進んでください。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System