3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【サーバ構築】UnboundにてDNSキャッシュサーバを作成する。

Last updated at Posted at 2022-12-22

bindにかなり多くの脆弱性がでているため、新しいソフトでDNSを構築していきたい。
今回は、DNSキャッシュサーバ用のunboundを持ちいてDNSキャッシュサーバを作成していく。

実行環境

OS:CentOs8Stream

fireWallの設定など、基本的なサーバの設定は済んでいるものとする。

unboundのインストール

以下のコマンドを実行する。

sudo yum install unbound

unboud-server.keyを作成しないと、 unbound-checkconf でエラーが表示されるため、これを作成する。 まずは以下コマンドで、存在するかどうか確認する。

sudo systemctl status unbound-keygen

以下のような表示になる。

sudo systemctl status unbound-keygen
------------------------------------------------------------
● unbound-keygen.service - Unbound Control Key And Certificate Generator
  Loaded: loaded (/usr/lib/systemd/system/unbound-keygen.service; disabled; vendor preset: disabled)
  Active: inactive (dead)

次のコマンドで、keyファイルを作成する。

sudo systemctl start unbound-keygen

この状態でもう一度確認すると、Activeになっているのが分かる。

sudo systemctl status unbound-keygen
結果
● unbound-keygen.service - Unbound Control Key And Certificate Generator
   Loaded: loaded (/usr/lib/systemd/system/unbound-keygen.service; disabled; vendor preset: disabled)
   Active: active (exited) since Tue 2021-09-14 14:29:54 JST; 6s ago

また、lsコマンドで、 unbound_server.key がある事も確認できる。

ls -l /etc/unbound/*.key

コンフィグの変更

/etc/unbound/unbound.conf を設定する。
デフォルトでは全てコメントアウトされている。必要な部分を追記したり、アンコメントしたりする。

  1. 以下の部分を検索し、設定を変更する。
    許可する範囲は、管理ネットワークを包括する範囲である、10.0.0.0/8 である
sudo vi /etc/unbound/unbound.conf

内容

------------------------------------------------------------
server:
interface: 0.0.0.0     ←すべてのアドレスからの問い合わせに回答(IPv4)
interface: ::0       ←すべてのアドレスからの問い合わせに回答(IPv6)
access-control: 0.0.0.0/0 refuse   ←デフォルト拒否(IPv4)
access-control: 127.0.0.0/8 allow  ←ループバックアドレスを許可(IPv4)
access-control: 192.168.160.0/24 allow ←問い合わせを許可するネットワーク
access-control: ::0/0 refuse     ←デフォルト拒否(IPv6)
access-control: ::1 allow       ←ループバックアドレスを許可(IPv6)
access-control: ::ffff:127.0.0.1 allow ←ループバックアドレスを許可(IPv6)

interface-automatic: yes(この場合、すぐ下にあるNoをコメントアウトすること。VIPなどを使うために、
複数のアドレスをDNSサーバのアドレスとして使用するときに使う。)
 ------------------------------------------------------------

変更したら:wqで保存する。

以下のコマンドで確認を行う。

sudo unbound-checkconf

問題なければ、以下のように出力が出る。

unbound-checkconf: no errors in /etc/unbound/unbound.conf

動作させる。
以下コマンドで、unboundの再起動と、自動起動の設定をする。

sudo systemctl restart unbound
sudo systemctl enable unbound

起動の確認を行う。 成功すれば、以下のような出力結果が出てくる。

unbound.service - Unbound recursive Domain Name Server
Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled)
  Active:
Main PID:
   Tasks:
  Memory:
  CGroup:
active (running) since Fri 2021-10-01 16:37:11 JST; 8s ago
5645 (unbound)
4 (limit: 10993)
20.5M
/system.slice/unbound.service
└─5645 /usr/sbin/unbound -d

自分自身のDNSの名前解決の設定(本来は、8.8.8.8など、信頼できるDNSサーバにすべきだが、あくまで動作確認のため行なっている。)/etc/resolv.confを編集する。

sudo vi /etc/resolv.conf

以下に変更

nameserver 127.0.0.1(8.8.8.8など、信頼できるDNSサーバ)
nameserver (他のDNSサーバなど)

nslookupコマンドで、自分自身(127.0.0.1)を参照しているか確認できる。
これで、今回作ったサーバが、ちゃんと名前解決ができるサーバである事を確認できる。

nslookup www.google.com

Serverの部分は127.0.0.1と出ること

Server: 127.0.0.1
Address: 127.0.0.1#53
 Non-authoritative answer:
 Name: www.google.com
 Address: 172.217.175.36
 Name: www.google.com
 Address: 2404:6800:4004:81f::2004

以上

参考サイト

https://tech-mmmm.blogspot.com/2017/03/centos-7unbounddns.html
https://blog.goo.ne.jp/a-storm/e/7e33c2195e2658ed9d45f27f005ad369

3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?