2015年2月17日火曜日

ServersMan@VPS(Ubuntu14.04-64)のDNSサーバ

初期セットアップを終え、その後のセットアップ作業に支障がないくらいになった
私のServersMan@VPS(Ubuntu14.04-64)。
まず行わなければならないのがDNSサーバのセットアップです。
独自ドメインを運用するためには権威DNSサーバを用意する必要があるためです。
まあ私の場合は独自ドメインのトップはgodaddyでホスティングしてもらっており、
vpsはそのサブドメインの権威DNSサーバとなってもらいます。
それではDNSサーバと便利なdigツールのインストールのため以下を実行します。
# apt-get update
# apt-get install bind9
# apt-get install dnsutils

次いで、"/etc/bind"ディレクトリに旧環境で使用していた自作dbファイルをコピーします。
私は所有する独自ドメインについて各ドメイン(サブドメイン)毎に
"db.<ドメイン>"のようなファイルを作成しています。
同じ"db.*"でも、"db.0"、"db.127"、"db.255"、"db.empty"、"db.local"、"db.root"は、
インストールされたファイルをそのまま使うことになります。
ちなみにdbファイルはざっくり言って以下のような感じになります。
$TTL 604800
<サブドメイン>. IN SOA <メールアドレス('@'は'.'に置換)>. <サブドメイン>. (
         1  ; Serial
    604800  ; Refresh
     86400  ; Retry
   2419200  ; Expire
    604800 ) ; Negative Cache TTL
;
<サブドメイン>. IN NS <vpsホスト名(FQDN)>.

<vpsホスト名> IN A <IPアドレス(IPv4)>
<vpsホスト名> IN AAAA <IPアドレス(IPv6)>.
www IN CNAME <vpsホスト名(FQDN)>.

続いて追加したdbファイルの登録です。
設定ファイル"/etc/bind/named.conf"の最後にdbファイル1つにつき1つ以下のような記述を加えます。
zone "<サブドメイン>" {
        type master;
        file "/etc/bind/db.<サブドメイン>";
};

それからセキュリティ対策を施しておきます。
稼働中のDNSサーバソフトのバージョンがバレないように、
設定ファイル"/etc/bind/named.conf.options"の"};"の行の前に
version "secret!!";
を追加します。
また、このDNSサーバはデフォルトではオープンリゾルバにはなっていないようで、
権威DNSサーバとしてだけ運用するのであればこれでいいのでしょうが、
いろいろなケースを想定し、自分自身からと、
vpnで使いそうなプライベートIPアドレス(IPv4)からの要求は通るようにします。
設定ファイル"/etc/bind/named.conf.options"の先頭に
acl "trusted" {
    localhost;
    10.0.0.0/8;
    172.16.0.0/12;
    192.168.0.0/16;
};
を、"};"の行の前に
recursion yes;
allow-query { any; };
allow-recursion { trusted; };
allow-query-cache { trusted; };
を追加します。
なお、vps自身が利用するリゾルバは"/etc/resolv.conf"で設定でき、
デフォルトでServersMan@VPSが用意してくれているサーバになっています。
自身をリゾルバにしても差し支えはないでしょうが、
せっかくなのでそのままにしています。

その後
# /etc/init.d/bind9 restart
で再起動すれば作業完了ですが、
nslookupやdigでIPアドレスがうまく引けない等あれば、
ログファイル"/var/log/syslog"にエラーが出ている可能性があるので、
それを参考にしながら設定ファイルを修正すればいいでしょう。

0 件のコメント:

コメントを投稿