Cloud n にオールインワンサーバを立てる 8
BIND のインストール。
chroot 版 BIND とキャッシュサーバのインストール
# yum -y install bind bind-chroot caching-nameserver
chroot 環境下では named を起動すると以下のようにマウントされる。所定の場所に設定ファイル、ゾーンファイルを作っておけば、 /var/named/chroot/ 配下に再配置する必要はない。
実体 | 配置場所 |
---|---|
/etc/named | /var/named/chroot/etc/named |
/var/named | /var/named/chroot/var/named |
/etc/named.conf | /var/named/chroot/etc/named.conf |
/etc/rndc.key | /var/named/chroot/etc/rndc.key |
/usr/lib64/bind | /var/named/chroot/usr/lib64/bind |
/var/named/studio-soleil.com.zone | /var/named/chroot/var/named/studio-soleil.com.zone |
dig コマンドで名前解決したいので bind-utils パッケージをインストールする。
# yum -y install bind-utils
BIND の設定
そもそもお金があれば Cloud n の DNS サービス (1,000 円/月) を使うのだが、余計なお金をかけたくないから自前で BIND を立ち上げている。
ドメインのネームサーバは二つ以上、それも、プライマリネームサーバとは異なるネットワークに、セカンダリネームサーバを用意するのが慣例となっている。プライマリがこけてもセカンダリが名前解決してくれる。
最小限の仮想サーバを新たに作り、異なるゾーン (ロケーション) に DNS を立ててもしてもいいが 450[円/月] かかる (せこいw)。ここは無料セカンダリネームサーバのマイハマネットさんを利用させてもらおう。
・ バックアップを取ってから編集するクセをつける # cp -p /etc/named.conf /etc/named.conf.org ・ named.conf の修正 # vi /etc/named.conf
- // Maihama-Net (Secondary NameServer)
- acl maihama-net {
- 198.104.58.211;
- 153.120.38.37;
- };
- // Trusted Network
- acl TrustedNetwork {
- // 信頼するネットワークを記載する
- };
- options {
- // 問い合わせを許可するインターフェースを any に
- listen-on port 53 { any; };
- // IPv6 には対応しないのでコメントアウト
- // listen-on-v6 port 53 { ::1; };
- // インターネットから問い合わせ可能
- allow-query { any; };
- // 再帰問合せを許すのは localhost のみ
- // 所持しないゾーン情報を聞かれても答えませんよ
- recursion yes;
- allow-recursion { localhost; };
- // キャッシュを返していいのは TrustedNetwork だけ
- allow-query-cache { TrustedNetwork; };
- // ダミーのサービス名で攻撃者に情報を与えない
- version "DNS Server Ver. 1.0";
- hostname "";
- };
- zone "studio-soleil.com" {
- type master;
- file "studio-soleil.com.zone";
- notify yes;
- allow-transfer { maihama-net; };
- };
ゾーン の設定
# vi /var/named/studio-soleil.com.zone
- $TTL 3600
- @ IN SOA ns.studio-soleil.com. root.studio-soleil.com. (
- 2014121201 ; serial
- 86400 ; refresh 1 day
- 7200 ; retry 2 hours
- 2592000 ; expire 2 weeks
- 3600 ; default_ttl 1 hours
- )
- studio-soleil.com. IN NS ns2.maihama-net.com.
- studio-soleil.com. IN NS ns3.maihama-net.com.
- studio-soleil.com. IN NS ns.studio-soleil.com.
- studio-soleil.com. IN A 153.149.34.61
- studio-soleil.com. IN MX 10 mail.studio-soleil.com.
- studio-soleil.com. IN TXT "v=spf1 +a +mx ~all"
- ns IN A 153.149.34.61
- mail IN A 153.149.34.61
- www IN A 153.149.34.61
※ ちなみに、 153.149.34.61 の IP アドレスはテスト用に立てた仮想サーバに割り当てられたダミーアドレス。
ゾーン転送用の設定
本サーバに設定したゾーン情報を、セカンダリネームサーバに転送するときに rndc を使う。
そのため、共通鍵を作成する必要がある。
# rndc-confgen -a -b 512 -r /dev/urandom # chgrp named /etc/rndc.key # chmod g+r /etc/rndc.key
BIND 起動前のチェック
1. ドメインの whois 情報のネームサーバを書き換える
ドメインを取得した業者 (レジストラ) にネームサーバ変更を申し込む。
WEB で変更できる場合もあれば、煩雑な申し込みが必要なところもある。
3 ~ 5 個くらい書き込めると思うので、次のように登録する。
ネームサーバ | ns2.maihama-net.com |
---|---|
ネームサーバ | ns3.maihama-net.com |
ネームサーバ | ns.studio-soleil.com |
ネームサーバ | |
ネームサーバ |
2. Maihama-Net さんの設定
studio-soleil.com というドメインに対して、 Primary DNS Server の IP アドレスを登録する必要がある。
Cloud n の仮想サーバから rndc でゾーンを転送した時に、ここに正確な IP アドレスを登録していないと、ゾーン転送が失敗する。
3. BIND の起動
・ サービス開始 # service named start ・ 自動起動を On に # chkconfig named on
これでセカンダリネームサーバにゾーン転送されるはず。
ゾーン情報を更新したりした際、あえて自分でやる場合は以下のコマンドを入力する。
# rndc reload
ゾーン転送に失敗する場合はマイハマネットさんのログを見たり、仮想サーバの /var/log/messages ログを見たりしてエラーを取り除く。