Top / test / Ubuntu 10.04 LTS Server / 10_bind

Ubuntu 10.04 LTS Serverで bind9のDNSサーバー

やること

  • DNSの構築
  • 今時の送信ドメイン認証技術を実装
  • (しばらくしたらdynamicDNS)

インストール

$ sudo apt-get install bind9
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  bind9utils
提案パッケージ:
  bind9-doc resolvconf
以下のパッケージが新たにインストールされます:
  bind9 bind9utils
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 11 個。
433kB のアーカイブを取得する必要があります。
この操作後に追加で 1,368kB のディスク容量が消費されます。
続行しますか [Y/n]?

root serverのゾーンファイルを更新

/etc/bind/db.root の内容を確認すると、古いようなのでまずは入れ替える。

$ sudo mv db.root.old
$ wget ftp://FTP.INTERNIC.NET//domain/named.root
$ sudo chown root:root db.root

viewを使用した外部と内部からの名前引きに対応したサーバーの構築

まずは、viewを使用する場合には、named.conf.default-zonesに書かれているものを viewの中に入れないといけないので、named.confから外す。

$ diff -uN named.conf.orig named.conf
--- named.conf.orig     2010-03-23 04:59:08.000000000 +0900
+++ named.conf  2010-07-11 22:24:15.325486447 +0900
@@ -8,4 +8,4 @@

 include "/etc/bind/named.conf.options";
 include "/etc/bind/named.conf.local";
-include "/etc/bind/named.conf.default-zones";
+// include "/etc/bind/named.conf.default-zones";

次に、viewの外部と内部の定義をしないといけないので、optionsに記述する。 また、今は使用しないipv6を停止などを記載する。

$ diff -uN named.conf.options.orig named.conf.options
--- named.conf.options.orig     2010-03-23 04:59:08.000000000 +0900
+++ named.conf.options  2010-07-11 22:44:42.745247234 +0900
@@ -15,6 +15,23 @@
        // };

        auth-nxdomain no;    # conform to RFC1035
-       listen-on-v6 { any; };
+//     listen-on-v6 { any; };
+
+       // Do not allow access to cache
+       allow-query-cache { none; };
+};
+
+acl slaves {
+       (slavednszone)/28;
+       (slaveip);
+};
+
+acl lan {
+       192.168.1.0/24;
+       127.0.0.0/8;
 };

named.local に、internalとexternal の2つを記述する。 internalは、LAN向けなのでrecursion yesにして、ここで、default-zonesをincludeする。 external については、recursion noにする。 (一時的に notify noにしておく。あとで実運用になったら、消す)

view "internal" {
       // This should match our internal networks.
       match-clients { lan; };

       // Provide recursive service to internal
       // clients only.
       recursion yes;

       // cache ttl setting
       max-ncache-ttl  300;   // negative
       max-cache-ttl   43200;  // normal cache
       lame-ttl        600;  // lame

       // include localzone
       include "/etc/bind/named.conf.default-zones";


       // Provide a complete view of the example.com
       // zone including addresses of internal hosts.
       zone "kensuke.jp" {
               type master;
               file "/etc/bind/db.kensuke.int";
               allow-transfer {
                       lan;
               };
       };
};

view "external" {
       // Match all clients not matched by the
       // previous view.
       match-clients { any; };

       // Refuse recursive service to external clients.
       recursion no;

       // for debug
       notify no;

       // Provide a restricted view of the example.com
       // zone containing only publicly accessible hosts.
       zone "kensuke.jp" {
               type master;
               file "/etc/bind/db.kensuke.ext";
       };
};

そして、 外部向けのzoneファイルと、内部向けのzoneファイルを作成する。

SPFへの対応

参照にあるように、gmailを併用しているときでも、特に気にしないでよさそうな話もあるので、とりあえず自分のサーバーの場合には、自分のサーバーからだけ外部にメールが出て行くという前提で、SPFの設定を行う

@       IN      TXT     "v=spf1 ip4:121.1.132.xx ~all"

参照:http://webos-goodies.jp/archives/51103006.html http://d.hatena.ne.jp/paz3/20100210/1265793004 http://cloudrop.jp/cloud/mail_by_google_apps

DNSSECへの対応

http://venus.gr.jp/opf-jp/opm15/jpopm15-08.pdf の31ページあたりからの方法で対応を進めていく。

秘密鍵と公開鍵のペアを作成する。

# dnssec-keygen -a RSASHA1 -b 2048 -n zone kensuke.jp

実行したら、ぜんぜん終了する気配なし。良く調べたら コマンドが/dev/randomを使用しているが、randomはとても遅いみたいで時間がここでかかっている模様。 なので、下記のコマンドで実行するのが良いみたい。

# dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -n zone kensuke.jp

次に、KSKなるkeyペアを作成する。

# dnssec-keygen -r /dev/urandom -f KSK -a RSASHA1 -b 2048 -n zone kensuke.jp

作成された2つの公開鍵をゾーンファイルに追加する。

# cat Kkensuke.jp.+005+*key >> /etc/bind/db.kensuke.ext

追記後に、SOAもカウントアップしておくこと。

ゾーンファイルに署名をする。

# dnssec-signzone -o kensuke.jp /etc/bind/db.kensuke.ext

実行したディレクトリに dsset-kensuke.jp.というファイルができるので、これを上位のDNSに登録してもらう

あとはdnssecを利用するようにDNSを変更して、動作確認がまだ。

http://yebo-blog.blogspot.com/2007/01/dnssec-3.html

参照:http://internet.watch.impress.co.jp/docs/event/janog26/20100714_380523.html

これがいいかも、http://news.softpedia.com/news/How-to-Host-Your-Own-Domain-With-Bind9-on-Ubuntu-49585.shtml


トップ   一覧 単語検索   最終更新のRSS
Last-modified: 2010-12-23 (木) 16:05:01 (2739d)