GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu20.04でUnboundDNSリゾルバーを設定する方法

Unboundは、無料のオープンソースの再帰的で検証可能なDNSキャッシングサーバーです。 DNS-over-TLSとDNS-over-HTTPSを使用して、クライアント間の接続を暗号化します。 Bind9と比較して、Unboundは軽量で非常に高速です。キャッシュサーバーは、キャッシュデータベースを非バインドサーバーに保持することにより、Webサイトの読み込み時間を短縮するのに役立ちます。また、DNSSEC検証も可能であり、トラストアンカーとして機能します。

この投稿では、Ubuntu20.04でUnboundDNSResolverを設定する方法を紹介します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の新しいUbuntu20.04サーバー
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

ステップ2–必要な依存関係をインストールする

開始する前に、システムにいくつかの基本的なDNSツールをインストールする必要があります。次のコマンドを使用して、それらすべてをインストールできます。

apt-get install bind9-utils dnsutils net-tools -y

すべてのパッケージがインストールされたら、次のステップに進むことができます。

ステップ3–アンバウンドDNSのインストールと構成

apt-get install unbound -y

Unbound DNSをインストールした後、それを構成する必要があります。デフォルトでは、Unboundメイン構成ファイルは/etc/unbound/unbound.confにあります。ただし、別の構成ファイルを作成することをお勧めします:

nano /etc/unbound/unbound.conf.d/myunbound.conf

次の行を追加します:

server:
port: 53
verbosity: 0
num-threads: 2
outgoing-range: 512
num-queries-per-thread: 1024
msg-cache-size: 32m
interface: 0.0.0.0
rrset-cache-size: 64m
cache-max-ttl: 86400
infra-host-ttl: 60
infra-lame-ttl: 120
access-control: 127.0.0.0/8 allow
access-control: 0.0.0.0/0 allow
username: unbound
directory: "/etc/unbound"
logfile: "/var/log/unbound.log"
use-syslog: no
hide-version: yes
so-rcvbuf: 4m
so-sndbuf: 4m
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
remote-control:
control-enable: yes
control-port: 953
control-interface: 0.0.0.0

ファイルを保存して閉じてから、次のコマンドを使用して構成ファイルを検証します。

unbound-checkconf /etc/unbound/unbound.conf.d/myunbound.conf

次の出力が得られるはずです:

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

次に、Unboundのログファイルを作成し、適切な権限を設定します。

touch /var/log/unbound.log
chown unbound:unbound /var/log/unbound.log

ステップ4–UnboundDNSサービスを開始する

この時点で、UnboundDNSがインストールおよび構成されています。次に、Unboundサービスを再起動し、システムの再起動時に開始できるようにします。

systemctl restart unbound
systemctl enable unbound

次のコマンドを使用して、Unboundのステータスを確認することもできます。

systemctl status unbound

サンプル出力:

● unbound.service - Unbound DNS server
     Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 06:30:33 UTC; 7s ago
       Docs: man:unbound(8)
    Process: 2788 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS)
    Process: 2791 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS)
   Main PID: 2804 (unbound)
      Tasks: 2 (limit: 2353)
     Memory: 4.8M
     CGroup: /system.slice/unbound.service
             └─2804 /usr/sbin/unbound -d

Aug 15 06:30:32 ubuntu2004 systemd[1]: Starting Unbound DNS server...
Aug 15 06:30:33 ubuntu2004 package-helper[2796]: /var/lib/unbound/root.key has content
Aug 15 06:30:33 ubuntu2004 package-helper[2796]: success: the anchor is ok
Aug 15 06:30:33 ubuntu2004 systemd[1]: Started Unbound DNS server.

この時点で、Unboundサービスが開始され、ポート53でリッスンしています。次のコマンドを使用して確認できます。

ss -antpl | grep 53

サンプル出力:

LISTEN    0         256                0.0.0.0:53               0.0.0.0:*        users:(("unbound",pid=3407,fd=6))                                              
LISTEN    0         256                0.0.0.0:53               0.0.0.0:*        users:(("unbound",pid=3407,fd=4))                                              
LISTEN    0         4096         127.0.0.53%lo:53               0.0.0.0:*        users:(("systemd-resolve",pid=356,fd=13))                                      
LISTEN    0         256                0.0.0.0:953              0.0.0.0:*        users:(("unbound",pid=3407,fd=7))                                              

ステップ5–アンバウンドDNSのテスト

次に、digコマンドを使用し、いくつかのDNSクエリを実行して、UnboundDNSサーバーをテストする必要があります。

テストにはubuntu.comを使用します。

dig ubuntu.com @localhost

サンプル出力:

; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6037
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu.com.			IN	A

;; ANSWER SECTION:
ubuntu.com.		60	IN	A	91.189.88.181
ubuntu.com.		60	IN	A	91.189.88.180

;; Query time: 307 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Aug 15 06:32:18 UTC 2021
;; MSG SIZE  rcvd: 71

ご覧のとおり、クエリ時間は 307です。 最初のクエリのmsec。クエリがキャッシュされます。

次に、同じクエリをもう一度実行してみましょう:

dig ubuntu.com @localhost

サンプル出力:

; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37832
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu.com.			IN	A

;; ANSWER SECTION:
ubuntu.com.		49	IN	A	91.189.88.180
ubuntu.com.		49	IN	A	91.189.88.181

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Aug 15 06:33:36 UTC 2021
;; MSG SIZE  rcvd: 71

ご覧のとおり、クエリ時間は 0です。 msec。

クライアントマシンからUnboundDNSサーバーをテストすることもできます。この場合、クエリでUnboundDNSサーバーのIPを指定する必要があります。

dig ubuntu.com @69.87.221.220

サンプル出力:

; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> ubuntu.com @69.87.221.220
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 28051
;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; Query time: 365 msec
;; SERVER: 69.87.221.220#53(69.87.221.220)
;; WHEN: Sun Aug 15 12:04:37 IST 2021
;; MSG SIZE  rcvd: 12

ステップ6–アンバウンドのトラブルシューティング

Unbound DNSのステータスを確認する場合は、次のコマンドを実行します。

unbound-control status

サンプル出力:

version: 1.9.4
verbosity: 0
threads: 2
modules: 3 [ subnet validator iterator ]
uptime: 65 seconds
options: reuseport control(ssl)
unbound (pid 3407) is running...

DNSキャッシュをテキストファイルにバックアップする場合は、次のコマンドを実行します。

unbound-control dump_cache > cache.txt

次のコマンドを使用して、cache.txtファイルを確認できます。

cat cache.txt

サンプル出力:

START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

場合によっては、DNSサーバーがクエリに応答できないことがあります。この場合、次のコマンドを使用してDNSキャッシュをフラッシュできます。

unbound-control flush ubuntu.com

結論

上記のガイドでは、Ubuntu20.04にUnboundDNSキャッシングサーバーをインストールして使用する方法について説明しました。また、digコマンドを使用していくつかのテストを実行し、UnboundDNSにクエリを実行して応答を取得しました。今すぐAtlantic.NetのVPSで試してみてください!


Linux
  1. Ubuntu20.04でDnsmasqを使用してローカルDNSリゾルバーをセットアップする方法

  2. Ubuntu – Ubuntuで静的IPを設定する方法は?

  3. Ubuntu22.04にUnboundDNSリゾルバーをインストールする方法

  1. Ubuntu18.04でSSHキーを設定する方法

  2. network-manager を使用して Fedora で DNS リゾルバーを設定するには?

  3. Ubuntu で $LD_LIBRARY_PATH を設定するには?

  1. Ubuntu 20.04/18.04にRedisをインストールする方法

  2. Ubuntu20.04でDNSネームサーバーを設定する方法

  3. RaspberryPiをDNSサーバーとして設定する方法