Since 12/1/2007
Home > Linux > CentOS5 > システムの時刻を正確に保つ

CentOS5 システムの時刻を正確に保つ - itochif.com

システムの時刻を正確に保つ事は大切です。ログの時刻があてにならなかったり、cronで動作するプログラムが予定外の時刻に動作したりする可能性があります。ここでは、Network Time Protocol(NTP)を使用してシステムの時刻を正確に保ちます。

富士通

GNOME端末を起動する

CentOS5 GNOME端末 GNOME端末を起動します。GNOME端末の起動は画面左上のメニュー[アプリケーション]->[アクセサリ]->[GNOME端末]を選択します。

NTPサーバの選定

ntpdateコマンドを使用して時刻を正確に保つためには、時刻同期のサービスを提供しているNTPサーバを選択する必要があります。NTPサーバはプロバイダが提供していたり、一般に公開されていたりします。NTPサーバを選択する基準のひとつに、ネットワーク的に近い場所のサーバを選択するのがよいとされていますが、1.[ローカル]->2.[プロバイダ]->3.[一般公開]の順で選べばよいと思います。

富士通

ファイアウォールの設定

ファイアウォールの設定で行ったiptablesの設定ではntpdateでの時刻同期のための通信が破棄されてしまいます。 以下は[/usr/sbin/ntpdate]コマンドを使用した時の/var/log/messagesの内容です。

# /bin/grep DROP /var/log/messages
Mar  2 16:00:00 www kernel: [DROP DEFAULT] :IN= OUT=eth0 SRC=192.168.10.2 DST=XXX.XXX.XXX.XXX LEN=76 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=123 DPT=123 LEN=56

図1.ファイアウォールによって破棄されたntpdateの通信(抜粋)

これら通信を行うために上記ログから必要な情報を抜き出すと以下のリストになります。

  • 外向きの新規UDP通信(OUT=eth0/PROTO=UDP)
  • 送信元IPアドレスはこのサーバ(SRC=192.168.10.2)
  • 宛先IPアドレスはこのサーバ以外のANY(DST=XXX.XXX.XXX.XXX)
    ※NTPサーバのIPアドレスが固定ならば宛先IPアドレスは固定
  • 送信元ポートは123(SPT=123)
  • 宛先ポートは123(DPT=123)

ファイアウォールの設定で作成したシェルスクリプトに、この情報を元にして作成したiptablesコマンドを追記します。 「※この下に受け入れる接続を記述する」の部分に以下の設定を追記します。

# ----- ntpdate 用
/sbin/iptables -A OUTPUT	-p udp -o $IF1 -s $IP1 --sport 123 --dport 123 -m state --state NEW -j ACCEPT
図2.「ファイアウォールの設定」に追記するコマンド

上記のコマンドを追記した後、以下のコマンドでパケットフィルタテーブルを更新します。

# /usr/local/sbin/iptables.sh
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns     [  OK  ]
図3. パケットフィルタテーブルの更新

システムの時刻をNTPサーバと同期させる

ファイアウォールの設定も完了したので、実際にntpdateコマンドを使用してシステムの時刻をNTPサーバと同期させます。ここでは"ntp.nict.jp"をNTPサーバとして設定しています。

# /usr/sbin/ntpdate ntp.nict.jp
2 Mar 16:00:00 ntpdate[5035]: step time server 133.243.238.163 offset 37.523717 sec
# /bin/date #システムの現在時刻の表示
2008年  3月  2日 日曜日 16:00:05 JST

図4.システムの時刻が更新されている

マウスコンピューター/G-Tune

システムの時刻を定期的に更新する

システムの時刻が大幅にずれないように、定期的にntpdateを使用してNTPサーバと同期をとります。ここではcrontabを使用して定期的に時刻を同期させます。

# /usr/bin/crontab -e
------------------------------ 次の行からcrontabの中身
10 * * * * /usr/sbin/ntpdate ntp.nict.jp
------------------------------ crontab終了
図5.毎時10分に[/usr/sbin/ntpdate ntp.nict.jp]を実行するようcrontabに記載

GIGABYTE製 ハイエンドデスクトップ 468x60

掲載日 3/02/2008