○ ntpのインストール (サーバ)

・メインのNTPサーバをLinuxルータに置き、上位のNTPサーバと同期させます
・その他のサーバ・クライアントマシンは、このNTPサーバに同期させます
・ntp-4.2.6p3をソースからインストールし、共通鍵認証の設定をします
・make はメンテナンスマシンで行っています

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:ntp-4.2.6p3.tar.gz  (http://www.ntp.org/)

○参照ファイル

パッケージの追加
最初の設定 (Router)
opensslのインストール

○インストール環境

:OS CentOS 5.6
:selinux permissive
:インストール先  /usr/local
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行
:マシン名 venus.528p.com
:IPアドレス 192.168.0.1

・メンテナンスの場合は一般ユーザから行います



○ntp-4.2.6p3

○ntpユーザ・ディレクトリの作成

uid/gid情報を参照

[root@venus:~]
# mkdir /etc/ntp
# useradd -u 38 -d /dev/null -s /bin/false ntp
# mkdir /var/lib/ntp
# chown ntp:ntp /var/lib/ntp

○ソースの展開・インストール

# cd /usr/src
[root@venus:/usr/src]
# tar zxvf ntp-4.2.6p3.tar.gz
# chown -R root:root ntp-4.2.6p3
# cd ntp-4.2.6p3
[root@venus:/usr/src/ntp-4.2.6p3]
# make distclean
# ./configure CFLAGS="-O2 -march=pentium3" \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-all-clocks \
--enable-parse-clocks \
--enable-kernel-fll-bug \
--enable-linuxcaps \
--with-crypto

・CFLAGS="-O2 -march=pentium3" (CPU最適化オプション)
・--enable-linuxcaps (linuxでntpdの -u オプションを有効にする)
・該当しない場合は指定しない
・オプションは半角を入れて続けて記入した方が良い

# make
# make uninstall
# make install
# cd ..
[root@venus:/usr/src]
# tar jcvf ntp-4.2.6p3-rt-110410.tar.bz2 ntp-4.2.6p3/

○step-tickersの作成

・起動スクリプトで読み込みます
・ntpdateで最初に時刻合わせをします

:/etc/ntp/step-tickers

# echo "130.69.251.23" >> /etc/ntp/step-tickers

○共通鍵認証用のkeyファイルを作成します

・rpmパッケージの場合はインストールされたものを使います
・ntp-keygenのデフォルトでは公開鍵認証用のkeyファイルが作成されます
・"authenticate no"の場合でも設定しておいた方が良い

:/etc/ntp/ntpkey*

# dd if=/dev/urandom of=/root/.rnd bs=1024 count=1
# cd /etc/ntp
[root@venus:/etc/ntp]
# ntp-keygen -M
# ls -l
ntpkey_md5_venus.528p.com -> ntpkey_MD5key_venus.528p.com.3503177518
ntpkey_MD5key_venus.528p.com.3503177518

・パーミッションを変更します

# chmod 600 ntpkey*

・ntpkey_MD5keyの内容(MD5 keyとSHA1 key が設定されています)

 1 MD5 /V'{H4:!H81vT3Vbn'1R  # MD5 key
 2 MD5 MJ$DFp`+agA,r;;C.s7w  # MD5 key
 3 MD5 WHUW*pVAwO=wF]q*p`1I  # MD5 key
 4 MD5 X^_y}KVobG8$l8nqzw+}  # MD5 key
 5 MD5 KB`5n*^26];}vEZ1h?{w  # MD5 key
 6 MD5 b|fh(u&&.soVy|U{w2rw  # MD5 key
 7 MD5 ]yn^qpBwueu=*7yLTJXX  # MD5 key
 8 MD5 DVHwpt,)fv,'cJwK.83/  # MD5 key
 9 MD5 _pm];/&^E{tyrBa1ty1{  # MD5 key
10 MD5 25Pk?m&Cacm6hXQO?1)!  # MD5 key
11 SHA1 4f4b8326aa10fe3c73939d5ec7f8319ef95eea17  # SHA1 key
12 SHA1 6625b2147e5ddb444d69711e181a3668cab9cbce  # SHA1 key
13 SHA1 a55098babae62a4979715d8b76c0404d6f2911ce  # SHA1 key
14 SHA1 e1a9a3703aff6ba981aab9d1404f8bd5487ba275  # SHA1 key
15 SHA1 7c3f9be889609b073f04103dea7a8e48fc97cc13  # SHA1 key
16 SHA1 13c3e4bf931c9720f7c7d0674c6239b49a7a3c94  # SHA1 key
17 SHA1 059b81aacd9ddee9fbcae40977dab5d4308675a0  # SHA1 key
18 SHA1 3f99fbdcc2a73f84e12cd519db1a7825d3e1c501  # SHA1 key
19 SHA1 5322087205e8fd532d8cbce7b289ca02139417e6  # SHA1 key
20 SHA1 6b6eb66ca93b1a25fcfb71abe14ab91f859baec1  # SHA1 key

○ntp.confの作成

・ローカルネットワークでの共通鍵認証を行います
紫色部分 鍵ファイルと "key ID" の指定
・ntpkey_MD5keyファイルの "key ID" 10,20 のkeyを使用します
・SHA1 keyをサポートしない古いntpのために MD5 keyを含めます

:/etc/ntp.conf

restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.0.1

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

restrict 130.69.251.23 mask 255.255.255.255 nomodify notrap noquery
restrict 130.34.11.117 mask 255.255.255.255 nomodify notrap noquery

server 130.69.251.23
server 130.34.11.117

server 127.127.1.0 # local clock
fudge  127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

keys   /etc/ntp/ntpkey_md5_venus.528p.com
trustedkey 10 20

:外部公開ntpサーバ例

・mfeedのntpはntptraceで情報を返さないので注意

ntp.nc.u-tokyo.ac.jp (130.69.251.23)  Stratum 1
ntp1.tohoku.ac.jp    (130.34.11.117)  Stratum 1
ntp2.tohoku.ac.jp    (130.34.48.32)   Stratum 1
ntp1.jst.mfeed.ad.jp (210.173.160.27) Stratum 2
ntp2.jst.mfeed.ad.jp (210.173.160.57) Stratum 2
ntp3.jst.mfeed.ad.jp (210.173.160.87) Stratum 2

○ntpd起動用スクリプトを作ります

/étc/rc.d/init.d/ntpd (別記)

○起動オプションの設定

:/etc/sysconfig/ntpd

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"

○ntpdの起動

・事前にinternetに接続されていること
・port123(UDP)が開放されていること
・起動後 "ntpq -p" コマンドで同期の確認します

# cd ~
[root@venus:~]
# service ntpd start
# chkconfig --add ntpd

・少し休憩!

# ntpq -p

○内部時計との同期用スクリプトを作ります

・hwclockでハードウェアクロックに書き込みます オプションは -w でも良いです
・/etc/cron.weeklyに配置して、7日に1回動作させます

:/etc/cron.weekly/sys2ohc (root root 755)

#!/bin/bash
/sbin/hwclock --systohc

○iptablesの設定

Netfilter (iptables) で制御している場合、ポートを開けてください

Netfilter (iptables) の設定参照

○selinuxヘの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

[root@venus:~]
# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -Rv /var



○一時的な外部NTPサーバとの同期 (正確さ必要でない場合)

○/etc/ntp.confを修正します

・ntpサーバをハードウェア・クロックと同期させます
・1日1回、外部ntpサーバと同期させます

restrict default nomodify notrap noquery
restrict 127.0.0.1

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008

keys    /etc/ntp/ntpkey_md5_venus.528p.com

○ntpdの再起動

[root@venus:~]
# service ntpd restart

○外部時計との同期用スクリプトを作ります

・ntpdateコマンドを -u オプション付きで動作させます
・hwclockでハードウェアクロックに書き込みます オプションは -w でも良いです
・/etc/cron.dailyに配置して、1日1回動作させます

:/etc/cron.daily/ntpsync (root root 755)

#!/bin/bash
/usr/local/bin/ntpdate -u 210.173.160.27
/sbin/hwclock --systohc

○ Copyright(c) 528p.com All Rights Reserved.