centos7にnsd構築してみた

nsd

DNSの権威サーバ実装.BINDが脆弱性祭りになりがちで大変なので試しに移行してみた記録.ところどころ抜けてるかもは思い出したりしたら追記する.

前提

設定するドメインhoge.example.com IPは 1.2.3.4 とする

インストール

ざっと調べた感じCentOS7ではnsdのパッケージがないっぽい?ので自力でビルドしていい感じに動かすこととする.

まず,https://www.nlnetlabs.nl/projects/nsd/ ここからnsdのソースを落としてきてビルドする.

# cd /usr/local/src
# wget "https://www.nlnetlabs.nl/downloads/nsd/nsd-4.1.13.tar.gz"
# tar zxvf nsd-4.1.13.tar.gz
# cd nsd-4.1.13
# ./configure --prefix=/usr/local
# make -j4
# make install

ところが今調べるとyumにあった.少し前までなかった気がする.とりあえず今回はソースからビルド

設定ファイルを書く

remote-control:
  control-enable: yes

server:
  ip-address: "1.2.3.4"
  ip4-only: yes
  hide-version: yes
  database: "/etc/nsd/var/db/nsd/nsd.db"
  logfile: "/var/log/nsd.log"
  pidfile: "/etc/nsd/var/run/nsd.pid"
  chroot: "/etc/nsd"
  difffile: "/etc/nsd/var/db/nsd/ixfr.db"
  xfrdfile: "/etc/nsd/var/db/nsd/xfrd.state"
  zonelistfile: "/etc/nsd/var/db/nsd/zone.list"
  xfrdir: "/etc/nsd/tmp/"
  zonesdir: "/etc/nsd/zones"

zone:
  name: "hoge.example.com"
  zonefile: "hoge.example.com.zone"

zonesdirで指定したディレクトリにゾーン情報を書いていく

ゾーン情報

@ IN SOA ns.hoge.example.com. root.hoge.example.com. (
        2016113001 ; Serial 有効な開始日
        3600       ; Refresh
        900        ; Retry
        3600000    ; Expire
        3600 )     ; Minimum

IN NS ns.hoge.example.com.

@ IN A 1.2.3.4
fuga IN A 2.3.4.5
// ここにレコードを突っ込んでいく
NS IN A 1.2.3.4

nsd-controlによる制御

まず,nsd-control-setupをしてSSLキーを生成する.

できたら,

# nsd-control start

で起動できるはず.

どうも起動できてなければ,nsdを直接起動してみてエラーを見ると良い.

今後

元気が出たらDNSキャッシュサーバ実装のunboundも試す.

参考

NSD 4 – 日本Unboundユーザー会

qiita.com

セカンダリDNSをNSDにしてみた | Aimless