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”にエラーが出ている可能性があるので、
それを参考にしながら設定ファイルを修正すればいいでしょう。

広告