| 
  
   サイズ: 3480 
  
  コメント:  
 | 
  
   サイズ: 6457 
  
  コメント:  
 | 
| 削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 | 
| 行 1: | 行 1: | 
| = bindによるDNSアップデートサーバー = | = BIND9によるダイナミックDNSサーバーの運用 = | 
| 行 38: | 行 38: | 
| {{{ #!diff  | 
{{{#!diff | 
| 行 75: | 行 74: | 
| == /usr/local/etc/namedb/TSIGキー名.key == 下記コマンドを実行してTSIGキーを発行する。 {{{ tsig-keygen -a hmac-sha256 TSIGキー名. > /usr/local/etc/namedb/TSIGキー名.key chown bind:wheel /usr/local/etc/namedb/TSIGキー名.key chmod 0400 /usr/local/etc/namedb/TSIGキー名.key }}} == /usr/local/etc/namedb/named.conf == {{{#!diff --- /usr/local/etc/namedb/named.conf.orig 2018-09-13 22:46:26.048986000 +0900 +++ /usr/local/etc/namedb/named.conf 2018-09-26 14:33:08.706240000 +0900 @@ -383,3 +383,11 @@ }; }; */ + +include "/usr/local/etc/namedb/TSIGキー名.key"; + +zone "example.jp" { + type master; + file "/usr/local/etc/namedb/dynamic/example.jp"; + allow-update { !{ !IPv4アドレス; !IPv6アドレス; any; }; key "TSIGキー名."; }; +}; }}} == /usr/local/etc/namedb/dynamic/example.jp == {{{ $TTL 300 @ IN SOA ns.example.jp. domain.example.jp. ( 2018001401 ; serial 7200 ; refresh (2 hours) 900 ; retry (15 minutes) 2419200 ; expire (4 weeks) 86400 ; minimum (1 day) ) IN NS ns ns IN A IPv4アドレス IN AAAA IPv6アドレス }}} * ここでは参考として SOA と NS レコードのみ設定するものとする。 * また本ファイル作成後、オーナーとパーミッションを以下の通り設定すること。 {{{ chown bind:wheel /usr/local/etc/namedb/dynamic/example.jp chmod 0644 /usr/local/etc/namedb/dynamic/example.jp }}} = 動作検証 = * ダイナミックDNSクライアント側に「/usr/local/etc/namedb/TSIGキー名.key」ファイルをコピーする。 * その際オーナー・パーミッション設定に留意すること。 * クライアントは「allow-update」で指定した「IPv4アドレス」ないしは「IPv6アドレス」であることを確認する。 * つまり「allow-update」は指定したIPアドレス以外のダイナミックDNS更新は許可しないことに注意。 * 以下のコマンドにより検証を行う(インタラクティブモードでの検証)。 {{{ # /usr/local/bin/nsupdate -k tsig.key > server ダイナミックDNSサーバーのIPアドレス > update add test.example.jp. 5 TXT "hello, world." > send > quit }}} * この時正常に動作すれば「send」後には何もメッセージは表示されない。 * 許可IPアドレス設定(allow-update)にミスがあれば「update failed: REFUSED」が表示される。 = よくある質問とその答え = == Q.==  | 
|
| 行 77: | 行 148: | 
| * [[https://kb.isc.org/docs/aa-00723|Using Access Control Lists (ACLs) with both addresses and keys]] | 
BIND9によるダイナミックDNSサーバーの運用
目次
目次
検証環境
- 以下のソフトウェアの利用を前提に検証を実施した。いずれも最新のリリースということで確認しているが、ある程度古い環境でも問題無いと思われる。 
- OS: FreeBSD 11.2-R
 - DNSコンテンツサーバー: BIND 9.13.2
 
 - 上記以外の環境では、以下の点に相違が発生する。必要に応じて読み替えたし。 
- インストール方法
 - インストールされるディレクトリ
 
 - 逆に以下の点は参考にできる。 
- 設定パラメータとその意味
 - 運用事例
 
 
検証作業内容
- DNSコンテンツサーバーでは「example.jp」ゾーンを運用する。
 - 本サーバーでは外部(自身を含む)からのダイナミックアップデート要求に対し、「exmaple.jp」ゾーンに対してレコードの追加・変更・削除を実施する。
 
DNSコンテンツサーバーの基本設定
DNSサーバーは ports/dns/bind913 をインストールする。
- ここでは特にカスタムする要素は無いので、デフォルトのままとする。
 - 説明のためここでは、稼働に必要な最低限の設定を実施する。
 
/etc/rc.conf
以下の設定を追加する。
named_enable="YES" named_chrootdir="/var/named" altlog_proglist="named"
※altlog_proglist が既に設定済みの場合、 namedを追加する。
/usr/local/etc/namedb/named.conf
   1 --- /usr/local/etc/namedb/named.conf.sample     2018-09-13 22:12:15.847935000 +0900
   2 +++ /usr/local/etc/namedb/named.conf    2018-09-13 22:46:26.048986000 +0900
   3 @@ -16,15 +16,20 @@
   4         dump-file       "/var/dump/named_dump.db";
   5         statistics-file "/var/stats/named.stats";
   6 
   7 +       recursion       no;
   8 +       allow-query       { any; };
   9 +       allow-recursion   { none; };
  10 +       allow-query-cache { none; };
  11 +
  12  // If named is being used only as a local resolver, this is a safe default.
  13  // For named to be accessible to the network, comment this option, specify
  14  // the proper IP address, or delete this option.
  15 -       listen-on       { 127.0.0.1; };
  16 +       listen-on       { any; };
  17 
  18  // If you have IPv6 enabled on this system, uncomment this option for
  19  // use as a local resolver.  To give access to the network, specify
  20  // an IPv6 address, or the keyword "any".
  21 -//     listen-on-v6    { ::1; };
  22 +       listen-on-v6    { any; };
  23 
  24  // These zones are already covered by the empty zones listed below.
  25  // If you remove the related empty zones below, comment these lines out.
- 本設定は以下の設定を行うものとする。 
- IPv4/IPv6問わず、全てのクエリを受け付ける。
 - 再帰問い合わせには答えないものとする。
 - よって本設定が行われているゾーン情報のみクエリに対して答える(ルートゾーンを含む)。
 
 - ログ出力設定、アクセス制御は本説明では実施しない。
 
ゾーンの定義
/usr/local/etc/namedb/TSIGキー名.key
下記コマンドを実行してTSIGキーを発行する。
tsig-keygen -a hmac-sha256 TSIGキー名. > /usr/local/etc/namedb/TSIGキー名.key chown bind:wheel /usr/local/etc/namedb/TSIGキー名.key chmod 0400 /usr/local/etc/namedb/TSIGキー名.key
/usr/local/etc/namedb/named.conf
   1 --- /usr/local/etc/namedb/named.conf.orig       2018-09-13 22:46:26.048986000 +0900
   2 +++ /usr/local/etc/namedb/named.conf    2018-09-26 14:33:08.706240000 +0900
   3 @@ -383,3 +383,11 @@
   4         };
   5  };
   6  */
   7 +
   8 +include "/usr/local/etc/namedb/TSIGキー名.key";
   9 +
  10 +zone "example.jp" {
  11 +    type master;
  12 +    file "/usr/local/etc/namedb/dynamic/example.jp";
  13 +    allow-update { !{ !IPv4アドレス; !IPv6アドレス; any; }; key "TSIGキー名."; };
  14 +};
  15 
/usr/local/etc/namedb/dynamic/example.jp
$TTL    300
@       IN SOA ns.example.jp. domain.example.jp. (
                2018001401 ; serial
                7200       ; refresh (2 hours)
                900        ; retry (15 minutes)
                2419200    ; expire (4 weeks)
                86400      ; minimum (1 day)
                )
        IN NS   ns
ns      IN A    IPv4アドレス
        IN AAAA IPv6アドレス- ここでは参考として SOA と NS レコードのみ設定するものとする。
 - また本ファイル作成後、オーナーとパーミッションを以下の通り設定すること。
 
chown bind:wheel /usr/local/etc/namedb/dynamic/example.jp chmod 0644 /usr/local/etc/namedb/dynamic/example.jp
動作検証
- ダイナミックDNSクライアント側に「/usr/local/etc/namedb/TSIGキー名.key」ファイルをコピーする。
 - その際オーナー・パーミッション設定に留意すること。
 - クライアントは「allow-update」で指定した「IPv4アドレス」ないしは「IPv6アドレス」であることを確認する。
 - つまり「allow-update」は指定したIPアドレス以外のダイナミックDNS更新は許可しないことに注意。
 - 以下のコマンドにより検証を行う(インタラクティブモードでの検証)。
 
# /usr/local/bin/nsupdate -k tsig.key > server ダイナミックDNSサーバーのIPアドレス > update add test.example.jp. 5 TXT "hello, world." > send > quit
- この時正常に動作すれば「send」後には何もメッセージは表示されない。
 - 許可IPアドレス設定(allow-update)にミスがあれば「update failed: REFUSED」が表示される。
 
よくある質問とその答え
== Q.==
