OpenNTPD資料一覧

OpenNTPDインストール手順

2008/12/2更新

対応バージョン: 3.9p1

公式サイト

準備

導入に必要なもの

openntpd-3.9p1.tar.gz

導入OS

Fedora 8,9,10

管理用アカウント作成

% sudo groupadd _ntp
% sudo useradd -g _ntp -s /sbin/nologin -d /var/empty/ntp _ntp
% sudo mkdir /var/empty/ntp
% sudo chown root /var/empty/ntp
% sudo chmod 700 /var/empty/ntp

デフォルトでインストールされているNTPサーバの無効化

まず、既にサービスが起動していれば停止する。

% sudo service ntpd stop

次にサービスを無効にする。

% sudo chkconfig ntpd off

必要に応じて関連ファイルを退避する。ただしOpenNTPDではこれらのファイルを使用しないので残しておいても問題ない。

/etc/ntp.conf
/etc/ntpディレクトリ配下

インストール

配布ファイル展開

% tar zxvf openntpd-3.9p1.tar.gz
% cd openntpd-3.9p1

make,インストール

% ./configure
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/sbin/ntpd

/usr/local/etc/ntpd.conf

各種設定

/usr/local/etc/ntpd.confにて設定を行う。

以下、主な設定項目について説明する。設定は同じパラメータを複数行記述できる。

待ち受けインタフェース(listen on)

ntpdをサーバとして運用する場合の待ち受けインタフェースを指定する。ポートは123固定。

ntpdをクライアントとして運用する場合は未設定でよい。

例)

当該ホスト上の全てのインタフェース
listen on *
ループバックアドレス(IPv4)
listen on 127.0.0.1
ループバックアドレス(IPv6)
listen on ::1
任意のアドレス
listen on 192.168.0.1

NTPクライアントの指定(server|servers)

ntpdをクライアントとして運用する場合のNTPサーバを指定する。

ntpdをサーバとして運用する場合は未設定でよい。

尚、FQDNで指定したNTPサーバが特定の1台を示す場合はserverを、DNSラウンドロビンにより複数のIPを返す場合はservers(最後が複数形)をそれぞれ使用する。

例)

server 10.0.0.8
server pear.foo.org
servers pool.foo.org

動作確認

デーモンを起動する。

% sudo /usr/local/sbin/ntpd

% ps aux|grep ntpd
root 27193 ... Ss   04:34   0:00 /usr/local/sbin/ntpd
_ntp 27194 ... S    04:34   0:00 /usr/local/sbin/ntpd

プロセスが動作し、syslogに以下のようなログが出力されていれば正常に動作している。

ここでは例として3つの外部NTPサーバに接続するクライアントとして動作させた場合のログを示す。

ntp engine ready
peer xxx.xxx.xxx.1 now valid
peer xxx.xxx.xxx.2 now valid
peer xxx.xxx.xxx.3 now valid
adjusting local clock by 5.972681s
adjusting local clock by 5.920600s
adjusting local clock by 5.891570s

デーモンを終了する。

単にkillすればよい。

% sudo pkill ntpd

initスクリプト設置

スクリプト作成

/etc/rc.d/init.d/openntpdを作成する。

#!/bin/bash
#
# openntpd
#
# chkconfig: 345 80 20
# description: openntpd

TARGET=ntpd
DST_BIN=/usr/local/sbin/${TARGET}

start()
{
  echo -n "Starting ${TARGET}: "
  ${DST_BIN}
  echo
}

stop()
{
  echo -n "Shutting down ${TARGET}: "
  pkill ${TARGET}
  echo
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart)
    stop
    start
    ;;

  *)
    echo "Usage: `basename $0` {start|stop|restart}" >&2
    exit 1
esac

exit 0

サービス登録

% sudo chkconfig --add openntpd
% sudo chkconfig --list openntpd
openntpd   0:off  1:off  2:off  3:on  4:on  5:on  6:off
% sudo service openntpd start

関連資料・記事