ドメイン名サーバー(DNS)はインターネットインフラの重要な構成要素であり、DNSサーバーを構築することは難しい場合があります。しかし、BINDを使用すれば、短時間でBIND DNSサーバーを作成できます。BINDは、その柔軟性と高可用性サポートにより、管理者の間で優れた評判を持っています。
この記事では、安全なBIND DNSサーバーをインストールして構成し、サブドメインが正しいIPアドレスに解決されることを確認する方法について説明します。
続けて、簡単にDNSサーバーを作成してください!
前提条件
このチュートリアルは実演形式です。手順に従うには、以下が必要です。
- A Linux server – This example uses the Ubuntu 20.04 server.
- A non-root user with root privileges or root/administrator user.
- A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.
BINDパッケージのインストール
デフォルトのUbuntuリポジトリはBINDパッケージを提供していますが、システムにはインストールされていません。BINDをメインDNSサーバーまたは権威のみとしてインストールできます。BINDには、マスタースレーブインストールサポート、DNSSECサポート、および組み込みのアクセス制御リスト(ACL)などの強力な機能があります。
BIND DNSを開始するには、まずaptパッケージマネージャーを使用してマシンにBINDパッケージをインストールする必要があります。
1. ターミナルを開き、サーバーにログインしてください。
2. 次に、以下のapt update
コマンドを実行して、リポジトリのパッケージインデックスを更新してリフレッシュします。このコマンドにより、最新バージョンのパッケージがインストールされることが保証されます。

3. 更新が完了したら、以下のapt install
コマンドを実行して、Ubuntuサーバー用のBINDパッケージをインストールします。
bind9-utils および bind9-dnsutils パッケージには、BINDのための追加のコマンドラインツールが含まれています。これらのパッケージは、BIND DNSサーバーのテストと管理に役立ちます。

4. 最後に、以下のsystemctl
コマンドを実行して、BINDサービスを確認します。
BINDパッケージには、サービス named が付属しており、BINDパッケージのインストール中に自動的に起動および有効化されます。
これで、BIND named サービスが 有効 で アクティブ(実行中)の状態であることが確認できます。この時点で、BINDサービスはシステムの起動時に自動的に実行されます。

BIND DNSサーバーの構成
あなたは今、UbuntuサーバーにBINDパッケージをインストールしましたので、Ubuntuサーバー上のBINDインストールを設定する時が来ました。どうやるか?BINDおよびnamed
サービスの構成を編集することで。
BINDのすべての構成は、/etc/bind/ディレクトリで利用可能で、named
サービスの構成は/etc/default/namedにあります。
1. 好きなエディタを使用して/etc/default/named構成を編集し、以下に示すようにOPTIONS
行に-4
オプションを追加します。このオプションはnamed
サービスをIPv4のみで実行します。
行った変更を保存してファイルを閉じてください。

2. 次に、/etc/bind/named.conf.optionsファイルを編集し、directory "/var/cache/bind";
行の下に以下の構成を追加します。
この構成では、BINDサービスをサーバーのlocalhostおよび公開IPアドレス(172.16.1.10)のデフォルトUDPポート53で実行するように設定されています。同時に、Cloudflare DNS 1.1.1.1をフォワーダーとして使用して、どのホストからでもBIND DNSサーバーへのクエリを許可します。
最後に、以下のコマンドを実行してBINDの構成を確認します。

If there’s no output, the BIND configurations are correct without any error.

DNSゾーンの設定
この時点で、BIND DNSサーバーの基本設定が完了しています。ドメインに対するDNSサーバーを作成し、アプリケーション用の他のサブドメインを追加する準備が整いました。これを行うには、新しいDNSゾーンの構成を定義して作成する必要があります。
このチュートリアルでは、新しいネームサーバー(ns1.atadomain.io)とサブドメイン(www.atadomain.io、mail.atadomain.io、vault.atadomain.io)を作成します。
1. 好みのエディタを使用して/etc/bind/named.conf.localファイルを編集し、次の構成を追加します。
この構成は、atadomain.ioドメイン名のフォワードゾーン(/etc/bind/zones/forward.atadomain.io)およびリバースゾーン(/etc/bind/zones/reverse.atadomain.io)を定義しています。
変更を保存してファイルを閉じます。

2. 次に、以下のコマンドを実行して新しいディレクトリ(/etc/bind/zones
)を作成します。
3. 各コマンドを実行して、デフォルトのフォワードおよびリバースゾーン構成を/etc/bind/zones
ディレクトリにコピーします。

4. 今度は、好みのエディタを使用して前方ゾーンの構成(/etc/bind/zones/forward.atadomain.io)を編集し、以下の構成を入力してください。
フォワードゾーンの構成は、ドメイン名とサーバーのIPアドレスを定義する場所です。この構成により、ドメイン名がサーバーの正しいIPアドレスに変換されます。
以下の構成では、次の名前サーバーとサブドメインが作成されます:
ns1.atadomain.io
– ドメインのメインネームサーバーで、IPアドレスは172.16.1.10
です。
atadomain.io
ドメインのMXレコードは、mail.atadomain.io
によって処理されます。MXレコードはメールサーバーに使用されます。
- アプリケーション用のサブドメイン:
www.atadomain.io
、mail.atadomain.io
、およびvault.atadomain.io
。
変更を保存してファイルを閉じます。

5. フォワードゾーンと同様に、逆ゾーン構成ファイル(/etc/bind/zones/reverse.atadomain.io)を編集し、次の構成を入力します。
逆ゾーンは、サーバーのIPアドレスをドメイン名に変換します。逆ゾーンまたはPTRレコードは、メールサーバーなどのサービスにとって重要です。これはメールサーバーの評判に影響します。
PTRレコードは、IPアドレスの最後のブロックを使用します。例えば、サーバーのIPアドレス172.16.1.10に対するPTRレコードは数字10を使用します。
この構成では、次のドメイン用の逆ゾーンまたはPTRレコードが作成されます:
- 名前サーバー
ns1.atadomain.io
と逆ゾーンまたはPTRレコード172.16.1.10
。
- ドメイン
mail.atadomain.io
のPTRレコードは、サーバーのIPアドレス172.16.1.20
に設定されます。
ファイルを保存して閉じてください。

6. 次のコマンドを実行して、BINDの設定をチェックおよび検証します。
設定が正しい場合、以下のような出力が表示されます。

7. 最後に、以下のsystemctl
コマンドを実行して、named
サービスを再起動して検証します。これにより、named
サービスに新しい変更が適用されます。
以下では、namedサービスの状態がアクティブ(実行中)であることが示されています。

UFWファイアウォールでDNSポートを開く
この時点で、BIND DNSサーバーのインストールが完了しました。しかし、まだDNSサーバーを保護する必要があります。UFWファイアウォールを設定し、クライアントがBIND DNSサーバーにクエリを行うためにDNSポートを開きます。これにより、クライアントがBIND DNSサーバーにクエリを行うことが可能になります。
セキュリティ上の理由から、UbuntuサーバーでUFWファイアウォールを実行および有効化することを推奨します。
1. 下記のufw
コマンドを実行して、UFWファイアウォールで利用可能なアプリケーションを確認します。
1. UFWアプリケーションリスト以下にBind9が表示されるはずです。

2. 以下のコマンドを実行して、Bind9
をUFWファイアウォールにallow
する。

3. 最後に、以下のコマンドを実行して、UFWファイアウォールで有効なルールを確認します。
スクリーンショットのように、リストにはBind9アプリケーションが表示されるはずです。

BIND DNSサーバーのインストールを確認する
BIND DNSのインストールとUFWファイアウォールの構成が完了しました。しかし、DNSサーバーのインストールを確認するにはどうすればよいでしょうか? dig
コマンドが役立ちます。
DigはDNSサーバーのトラブルシューティングに使用されるコマンドラインユーティリティです。 dig
は指定されたドメイン名のDNS検索を実行し、対象のドメイン名に対する詳細な回答を表示します。 Ubuntuシステムでは、dig
はbind9-dnsutil
パッケージの一部です。
BIND DNSサーバーのインストールを確認するには、以下の手順に従います。
1. 各dig
コマンドを実行して、サブドメインwww.atadomain.io
、mail.atadomain.io
、およびvault.atadomain.io
を確認します。
もしDNSサーバーのインストールが成功しているなら、各サブドメインはforward.atadomain.ioの設定に基づいて正しいIPアドレスに解決されるでしょう。
以下は、サブドメインwww.atadomain.ioがサーバーIPアドレス172.16.1.10に解決された出力です。

以下は、サブドメインmail.atadomain.ioがサーバーIPアドレス172.16.1.20に解決されたものです。

そして、以下はサブドメインvault.atadomain.ioがサーバーIPアドレス172.16.1.50に解決されたものです。

2. 次に、以下のdig
コマンドを実行して、atadomain.ioドメインのMXレコードを確認してください。
atadomain.ioドメインがMXレコードmail.atadomain.ioを持っているはずです。

3. 最後に、次のコマンドを実行して、サーバーIPアドレス172.16.1.10および172.16.1.20のPTRレコードまたはリバースゾーンを確認してください。
BINDのインストールが成功している場合、各IPアドレスはreverse.atadomain.ioの構成に基づいてドメイン名に解決されるはずです。
以下で確認できますが、サーバーIPアドレス172.16.1.10はドメイン名ns1.atadomain.ioに解決されています。

以下で確認できるように、サーバーIPアドレス172.16.1.20はドメイン名mail.atadomain.ioに解決されています。

結論
このチュートリアルを通じて、Ubuntuサーバー上で安全なBIND DNSサーバーを作成および設定する方法を学びました。また、ドメインを追加し、dig
コマンドを実行してDNSサーバーを確認するためのフォワードゾーンとリバースゾーンも作成しました。
では、どのようにしてBIND DNSサーバーを環境に実装できますか?おそらく権威サーバーとしてBINDを実装する方法?それともマスター・スレーブ BINDインストールで高可用性を設定する方法はありますか?