DNSサーバを立てる

FC2ドメインで汎用JPドメイン「5-55.jp」を取ったばっかりにDNSサーバを立てるはめになったお話はここ(→自宅サーバへの道その4 - satake7’s memo)。とりあえず、文句は言わずやることをやる。

bind9のインストール

これは楽チン。

$ sudo apt-get install bind9

The following packages were automatically installed and are no longer required:
  rake rdoc libredcloth-ruby1.8 liberb-ruby libsqlite3-ruby1.8
Use 'apt-get autoremove' to remove them.
提案パッケージ:
  bind9-doc
以下のパッケージが新たにインストールされます:
  bind9
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
取得:1 http://jp.archive.ubuntu.com gutsy-updates/main bind9 1:9.4.1-P1-3ubuntu1 [255kB]
bind9 (1:9.4.1-P1-3ubuntu1) を設定しています ...
Adding group `bind' (GID 113) ...
Done.
Adding system user `bind' (UID 105) ...
Adding new user `bind' (UID 105) with group `bind' ...
Not creating home directory `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
* Starting domain name service... bind
  ...done.

設定ファイル

設定ファイルは、/etc/bind にできるようだ。

$ ls /etc/bind

db.0    db.255    db.local  named.conf        named.conf.options  zones.rfc1918
db.127  db.empty  db.root   named.conf.local  rndc.key

rndcの認証鍵の作成

bindのデーモンを制御するrndcというやつにあげる認証用の鍵を作っておきます。ググルと『rndc-confgen -r /dev/random』でやってねというページばっかりですが、Ubuntuではこれだと全然レスポンスが戻ってきません。『/dev/random』にキーにするためのノイズが足りないかららしいです。キーの精度が落ちるそうですが、『/dev/urandom』からキーをとるようにすると、すぐ戻ってきます。あと、sudoでやると、rndc.confを作るときにパーミッションがねぇと怒られたので、rootでやりました。

$ sudo su -
# cd /etc/bind
# rndc-confgen -r /dev/urandom > rndc.conf
# chown bind:bind rndc.conf
# chmod 640 rndc.conf
# nano rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#   algorithm hmac-md5;
#   secret "************************";
# };
#
# controls {
#   inet 127.0.0.1 port 953
#       allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

この『rndc.conf』の内容はあとで先頭の'#'を外して、『named.conf』にコピーして使います。
この項、続く。