unboundでDNSを構築する。
掲題の件、いままでbindでDNSを構築していたのだが「今時DNSはunboundだぜ!」という意見があったので立ててみた。
ただ、bindをunboundに変える最大のメリットであるDNSSECは設定していません。
あくまで検証用にお試して建ててみたということになります。
環境は CentOS 8.2.2004 となります。
とりあえずテスト用のAレコードを登録して応答する。
登録していない問い合わせはGoogleのDNS(8.8.8.8)に転送するところまでとなります。
unboundをインストールする。
これは特にひねりもなく、yum(dnf)でインストールするだけです。
[root@localhost ~]# yum install unbound (中略) ================================================================================ パッケージ Arch バージョン リポジトリー サイズ ================================================================================ インストール中: unbound x86_64 1.7.3-11.el8_2 AppStream 888 k 依存関係のインストール中: libevent x86_64 2.1.8-5.el8 BaseOS 253 k unbound-libs x86_64 1.7.3-11.el8_2 AppStream 499 k トランザクションの概要 ================================================================================ インストール 3 パッケージ ダウンロードサイズの合計: 1.6 M インストール済みのサイズ: 7.3 M これでよろしいですか? [y/N]: y (以下略)
unboundの設定を入れていく。
設定を入れる前に、初期設定を確認します。
デフォルトのコンフィグは /etc/unbound/unbound.conf になります。
[root@localhost]# cat /etc/unbound/unbound.conf | grep -v '^\s*#' | grep -v '^\s*$' server: verbosity: 1 statistics-interval: 0 (中略) include: /etc/unbound/local.d/*.conf ipsecmod-enabled: no ipsecmod-hook:/usr/libexec/ipsec/_unbound-hook python: (以下省略)
上記を見ると、/etc/unbound/local.d/ にある拡張子「.conf」のファイルをインクルードするようになっているので、サーバの追加設定は /etc/unboud/local.d に入れるようにします。
まずはサーバ設定を入れていきます。/etc/unboud/local.d にサーバ設定用のファイルとして server.conf を作成します。
server: # 自身が持つIPv4のIPアドレスすべてにサービスを結びつける。 interface: 0.0.0.0 # IPv4のみ使う do-ip4: yes do-ip6: no # UDP/TCP両方使う do-udp: yes do-tcp: yes # ローカルからの問い合わせを許可 access-control: 127.0.0.1/8 allow access-control: 192.168.0.0/16 allow # バージョンを知られないようにする hide-version: yes hide-identity: yes
次にレコード設定と外部参照設定用として/etc/unboud/local.d に localrecord.conf というファイルを作成します。
#server: local-zone: "test.local" transparent # 末尾のドットを忘れないように注意。 # <domain>. [TTL] IN <Type> <Value> local-data: "dns.test.local. 300 IN A 192.168.1.35" forward-zone: name: "." forward-addr: 8.8.8.8
尚、server.confとlocalrecord.confというファイル名は拡張子さえ合っていれば任意の名前に変えても問題ありません。