LoginSignup
1
3

More than 3 years have passed since last update.

いまさら CentOS8 で 内向きDNS(unbound)を建てる

Posted at

自宅のネットワーク環境で 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 とします。

/etc/unbound/conf.d/my_unbound.conf
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 を再起動します。

my_hosts.conf
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 を指定する。

/etc/resolv.conf
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を使ってみよう

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3