いまさら CentOS8 で 内向きDNS(unbound)を建てる
自宅のネットワーク環境で BIND 建てているけどお手軽に「内向きDNS, キャッシュサーバ」ということで unbound を導入してみました。今更感が凄いですね~実際は自分の備忘録ですw
内向きDNS(DNSキャッシュサーバにunbound)を建てる
unbound だけでなく折角なので dig, nslookup もインストールしておきます。
設定内容ですが色々な方のサイトを見ると unbound.conf
を直接変更する方法がとられていますが unbound.conf(5) を見ると、 "include:ディレクティブを使ってファイルを取り込むことができます…(以下略)" とのことですので個別設定ファイルは /etc/unbound/conf.d
の下に作成するようにします。
まずは unbound のインストール。 bind-utils
も指定しているのは dig, nslookup コマンドを使用できるようにするため。
# dnf install unbound bind-utils
unbound 全体の設定 ※unboundサーバを 192.168.11.111
とします。
server:
interface: 0.0.0.0
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
access-control: 0.0.0.0/0 refuse
access-control: 127.0.0.0/8 allow
access-control: 192.168.11.0/24 allow
hide-version: yes
hide-identity: yes
logfile: "/var/log/unbound.log"
use-syslog: no
log-time-ascii: yes
forward-zone:
name: "."
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
この段階で unbound-checkconf
を実行し定義ファイルに誤りが無いことを確認する。
サーバ証明書が無い!と下記のエラーが表示される場合は unbound-control-setup
コマンドで証明書を作成し再度 unbound-checkconf
を実行してエラーが発生していないことを確認する。
# unbound-checkconf
/etc/unbound/unbound_server.key: No such file or directory
[1585546626] unbound-checkconf[8958:0] fatal error: server-key-file: "/etc/unbound/unbound_server.key" does not exist
あ。log ですが logfile: "/var/log/unbound.log"
としているのでファイルを作っておきます。
# touch /var/log/unbound.log
# chmod 666 /var/log/unbound.log
もちろんローテーションしておかないとパンクしちゃうので設定しときます。
・Unboundで内向きDNSを建てる
ローカルの正引き,逆引きの設定
/etc/unbound/conf.d
の下に作成します。 unbound
を再起動します。
server:
local-data: "nas. IN A 192.168.11.138"
local-data-ptr: "192.168.11.138 nas."
resolv.conf の nameserver は 127.0.0.1
を指定する。
nameserver 127.0.0.1
DNSを指定して 正引き,逆引き ができるか確認する。
$ nslookup nas 192.168.11.111 ※unboundを設定したIPアドレス
$ nslookup 192.168.11.138 192.168.11.111 ※unboundを設定したIPアドレス
同一ネットワーク内の他のマシンからも同様のコマンドで nslookup
できることを確認する。
time outエラーが発生する場合は、port:53 が空いてないので穴あけする。
# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --reload
# firewall-cmd --list-all
よし、よさげに設定できた!
参考にさせて頂いたサイト様
・構築事例:unboundによるDNSキャッシュサーバ
・Unboundで内向きDNSを建てる
・Unboundを使ってみよう
Discussion