2010年9月22日水曜日

さくらのVPS Ubuntu 10.04 セカンダリDNSサーバとNTPの設定

Ubuntu 10.04 をインストールしてきた、さくらのVPS ですが、OSそのものの設定についてはあとちょっとだけ残っている部分があります。

セカンダリDNSサーバを設定する


標準のCentOSの時に控えてきた情報の中で、まだ設定していない項目があります。セカンダリ(2つ目)で使用する DNS サーバと、 NTP サーバです。まずは DNS リゾルバの設定です。設定ファイルは /etc/resolv.conf ですので、このファイルを root 権限で編集します。インストールしたそのままの状態では
search (インストール時に設定したDNSサーチドメイン名)
nameserver (インストール時に設定したDNSサーバ)
という状態で、DNSサーバは1個設定されている状態だと思います。すくなくとも1個設定してあり、このDNSサーバが稼働していれば特に問題はありませんが、CentOSでの設定に合わせる形で
search (インストール時に設定したDNSサーチドメイン名)
nameserver (インストール時に設定したDNSサーバ)
nameserver (設定を控えておいたセカンダリDNSサーバ)
と1行追加しておきましょう。ファイルを変更したら一般ユーザでDNSでの名前解決ができることを確認しておきましょう。
ubuntu@foobar$ dig google.com

; <<>> DiG 9.7.0-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22486
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 128 IN A 66.249.89.99
google.com. 128 IN A 66.249.89.104

;; Query time: 14 msec
;; SERVER: (ここに /etc/resolv.conf で設定した nameserver のIPアドレスが表示されます)
;; WHEN: Wed Sep 22 15:21:48 2010
;; MSG SIZE rcvd: 60
このようにIPアドレスが検索できれば大丈夫です。

Ubuntu は生き物だ ( apt-get によるアップデート)


ここまで設定して、さくらのVPS からインターネット上のリソースを利用できるようになりました( 逆に、さくらのVPSマシンはサービスをインストールしていないのでまだコンソールからしか操作できません )。 ここで、Ubuntu システムのアップデートをしておきましょう。ログインすると
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/

(途中略)

8 packages can be updated.
8 updates are security updates.

ubuntu@foobar$
などと表示されるかと思います。ここで重要なのは最後の 2 行の部分で、この例では 8 個のパッケージがアップデート可能で、そのうち 8 個が ( この場合は全部ですね ) がセキュリティ関連のものだという意味になります。インストール時にはこういったアップデートは手動で行うように設定したので、自動的にアップデートしたり再起動したりすることはありませんが、Windows Update のように折を見て更新しておく必要があります。アップデートするためには
ubuntu@foobar$ sudo apt-get update
[sudo] password for ubuntu: (ログインパスワードを入力します)
Hit http://jp.archive.ubuntu.com lucid Release.gpg
Hit http://jp.archive.ubuntu.com lucid-updates Release.gpg

(途中略)

Hit http://security.ubuntu.com lucid-security/multiverse Sources
Reading package lists... Done
ubuntu@foobar$
として、(一応念のため) パッケージリストを最新状態にアップデートした上で、アップデート操作を行います( 以降、sudo の部分は # プロンプトで省略するので適宜読み替えてください)。
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
bzip2 dpkg ... ( ここにアップデート対象のパッケージが列挙されます )
8 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 45.8MB of archives.
After this operation, 4096B of additional disk space will be used.
Do you want to continue [Y/n]?
ここで対象パッケージを確認したうえで、質問に "Y" と答えるとアップデート作業がはじまります。アップデート対象パッケージによっては再起動が必要になる場合がある ( その旨が表示されます ) ので、念のためブートローダ周りを確認して ( コンソール設定でスクリプトの内容も変更したので注意が必要です。grub 関連パッケージがアップデートされた場合には要注意です ) 再起動します。

システム時刻を同期させる


インストール時に控えていた項目で設定を入れていないのは NTP だけとなりました。現在の状況では、NTP サービスすらインストールされていないので、インストールします。パッケージ名は "ntp" なので、これをインストールするということで apt-get コマンドを使ってインストールします。
# apt-get install ntp
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
ntp-doc
The following NEW packages will be installed:
ntp
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 559kB of archives.
After this operation, 1450kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main ntp 1:4.2.4p8+dfsg-1ubuntu
2 [559kB]
Fetched 559kB in 0s (790kB/s)
Selecting previously deselected package ntp.
(Reading database ... 41610 files and directories currently installed.)
Unpacking ntp (from .../ntp_1%3a4.2.4p8+dfsg-1ubuntu2_amd64.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Setting up ntp (1:4.2.4p8+dfsg-1ubuntu2) ...
* Starting NTP server ntpd [ OK ]

今回は一つのパッケージでしたが、複数のパッケージを一度にインストールしたり、他のパッケージに依存しているものは必要なパッケージをリストアップして同時にインストールしれくれます。また、 ntp パッケージをはじめ、多くのパッケージでは、自動的にサーバサービスが起動されるようになっています。とはいえ、ntpサーバは ubuntu のサーバを参照するように設定されているので、ここは変更しておきましょう。設定ファイルは /etc/ntp.conf で
 14  
15 # You do need to talk to an NTP server or two (or three).
16 # server ntp.ubuntu.com ( デフォルト設定のサーバは # でコメントアウト )
17 server ( 控えておいた ntp サーバをここに記入 )
18
というふうに書き換えます。書き変えたら、ntpサーバを再起動します。
# service ntp restart
* Stopping NTP server ntpd [ OK ]
* Starting NTP server ntpd [ OK ]
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
(設定したサーバ).GPS. 1 u 2 64 1 0.406 2.388 0.001
#
ntp サービスを再起動したところで、 ntpq -p コマンドで設定したサーバが参照されていることを確認してください。このような形でサービスを追加していくのが今後の構築の流れになります。ただ、今回はセキュリティ面を特に気にせずにサービスの導入を行いましたが、設定もれなどがあるとそこが弱点になるので、ひとつひとつ段階を踏んでサービスを増やしていくと良いでしょう。なお、 Ubuntu 10.04 の ntp サービスでは、設定ファイルで特に明示しないかぎり外部からのntpサービスへの参照を拒否する設定となっています( 本当にそうなのか設定ファイルを確認してください )。

次回は


インターネット上でサービスを公開する上ではセキュリティは避けて通れない話題ですが、そのあたりを書いてみたいと思います。