Unboundは、BSDライセンスの下で無料で配布される、再帰的で検証可能な非常に安全なDNSキャッシングサーバーです。 UnboundはDNS-over-TLSとDNS-over-HTTPSをサポートし、クライアントが接続を暗号化できるようにすることでオンラインプライバシーを強化します。ネットワーク構成に応じて、UnboundはIPV4とIPV6の両方をサポートできます。 LinuxディストリビューションでのUnboundのインストールと構成は、非常に単純で簡単です。 Unboundパッケージは、CentOS、Ubuntu、Fedoraなどの最新のOSで利用できます。独自のドメインを使用してアプリケーションやWebサイトを内部で提供している企業は、バインドされていないものをDNSサーバーとして利用できます。この記事では、アンバウンドをインストールして構成する方法を学習します Ubuntu20.04のサーバー。
インストール
Ubuntu20.04へのUnbound名前解決サーバーのインストールは非常にシンプルで簡単です。次のコマンドを実行してパッケージをインストールします
$ sudo apt install unbound -y
出力:
また、次のコマンドを実行して、DNSサーバーの構成を確認するために使用する追加のパッケージをインストールします
$ sudo apt install bind-utils net-tools -y
インストールが完了したら、次のコマンドを使用して構成ファイルの内容を確認できます。
$ cat /etc/unbound/unbound.conf
出力:
出力は、unbound.conf.dディレクトリからすべての.confファイルがロードされることを示しています。
ディレクトリ/etc/unbound/unbound.conf.dの下に新しい構成ファイルを作成しましょう ディレクトリ。この例では、 unbound_test.confを作成しました ファイル。あなたはあなた自身の仮定を持つことができます。
テキストエディタを使用してファイルを開き、次のサンプル構成を追加します。それに応じてパラメータを変更できます。
$ sudo nano /etc/unbound/unbound.conf.d/unbound_test.conf
server: port: 53 verbosity: 0 num-threads: 2 outgoing-range: 512 num-queries-per-thread: 1024 msg-cache-size: 32m interface: 127.0.0.1 interface: 192.168.5.5 rrset-cache-size: 64m cache-max-ttl: 86400 infra-host-ttl: 60 infra-lame-ttl: 120 outgoing-interface: 192.168.0.2 access-control: 127.0.0.0/8 allow access-control: 192.168.5.0/24 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
Now create a log file and assign permission to write logs $ sudo touch /var/log/unbound.log
$ sudo chown unbound:unbound /var/log/unbound.log
Unboundサービスを再起動し、構成をロードします
$ sudo service unbound restart
次のコマンドを使用して、サービスを有効にします
$ sudo service unbound enable
次のコマンドを使用して、バインドされていないサービスが実行されているかどうかを確認します。
$ sudo service unbound status
出力:
次のコマンドを実行して、バインドされていないポートがリッスンしていることを確認します
$ sudo netstat -anlpt | grep LIST
出力:
出力は、Unboundサービスが要求を受け入れるためにポート53でリッスンしていることを示しています。
構成ファイルの説明:
ポート :アンバウンドのリスニングポート
非表示バージョン :バインドされていないバージョンを表示しない
use-syslog :syslogにログを書き込むかどうかを指定します
ユーザー名 :アンバウンドが実行されるユーザー
冗長性 :0〜4の範囲のログレベルと4はデバッグログレベルです
インターフェース :バインドされていないリクエストがリッスンされるインターフェース
送信インターフェース :インターネットが通過するインターフェース
num-threads :スレッド数、同数のプロセッサコアを指定することをお勧めします
ファイアウォールでDNSポートを開きます。
構成ファイルを作成したら、DNSポートを開いて、ローカルLANクライアントがUnboundキャッシュ専用DNSサーバーに接続できるようにする必要があります。
$ sudo ufw allow from any to any port 53 proto tcp
$ sudo ufw allow from any to any port 53 proto udp
ファイアウォールルールを確認するには、次のコマンドを実行します
$ sudo ufw status
出力:
これで、新しいUnboundDNSサーバーをテストする最後のポイントに到達しました。テストには、 digを使用できます 以前にインストールされたパッケージbind-utilsに付属するコマンド 。実際のDNSサーバーでいくつかのDNSクエリを実行します。この例では、テストのためにkernel.orgにクエリを実行しました。あなたはあなた自身の仮定を持つことができます。
$ dig kernel.org @localhost
出力:
最初のクエリでの応答時間は4ミリ秒です。 Unbound DNSサーバーを構成したので、クエリはキャッシュされます。 DNSキャッシュを確認するには、同じドメイン名で次のクエリを実行します。
$ dig kernel.org @localhost
これで、クエリ時間が0ミリ秒であることがわかります。
LANクライアントからUnboundDNSサーバーの構成をテストする場合は、UnboundDNSサーバーのIPを指すDNS応答を照会します。 (私の場合、Unbound DNSサーバーのIPは192.168.178.130です)
$ dig kernel.org @192.168.178.130
最適化
Unboundのデフォルト構成は、限られたユーザーには問題なく機能しますが、サービスを提供するユーザーが多数いる場合は、特定の最適化を行う必要があります。高いパフォーマンスを得るために実装できる最適化オプションを次に示します。
num-threads: システムに同数のCPUコアを配置します。たとえば、それぞれ2コアの2つのCPUに値4を配置します。
再利用:はい Linuxでは、これはUDPパフォーマンスの向上に役立ちます
発信範囲 :コア数に応じて、可能な限り大きな値を設定できます。
so-sndbuf: この値は、ビジー状態のサーバーの場合、4mまたは8mのより大きな値に設定できます。
詳細については、
から参照できます。https://nlnetlabs.nl/documentation/unbound/howto-optimise/
結論
この記事では、UbuntuにUnbound名前解決サーバーをインストールして基本構成で構成する方法について説明しました。 Unboundサーバーの構成を確認するために、digコマンドを使用して特定のテストが実行されました。また、アンバウンドサーバーのIPを使用してローカルLANクライアントからDNS応答をクエリする方法についても学びました。フィードバックや提案をいただければ幸いです。