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

Debian 10 /Debian9でDNSサーバーを設定する方法

ドメインネームシステム(略してDNS)は、ドメイン名をIPアドレスに、またはその逆に解決するために使用されるインターネットサービスです。

BIND(Berkeley Internet Name Domain)は、名前からIPへの変換機能を提供します。

この投稿は、Debian 10 /Debian9でDNSサーバーを構成するのに役立ちます。

環境

ドメイン名:itzgeek.local
ns1.itzgeek.local 192.168.0.10 マスターDNSサーバー

前提条件

リポジトリインデックスを更新します。

sudo apt-get update

DNSサーバーに静的IPアドレスがあることを確認してください。

読む :Debianで静的IPアドレスを設定する方法

DNSサーバーのインストール

DebianのDNSサーバーのパッケージ名はbind9であり、ベースリポジトリで利用できます。 aptコマンドを使用してbind9パッケージをインストールできます。

sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils

DNSサーバーの構成

/ etc / bind /は、bind9の構成ディレクトリであり、構成ファイルとゾーンルックアップファイルを保持します。グローバル構成ファイルは/etc/bind/named.confです。

ゾーンの作成

まず、ドメインのフォワードゾーンを作成しましょう。

ローカルDNSゾーンのグローバル構成ファイルを使用するのではなく、/ etc / bind/named.conf.localファイルを使用できます。

sudo nano /etc/bind/named.conf.local

フォワードゾーン

以下は、named.conf.localファイル内のitzgeek.localドメインのフォワードゾーンエントリです。

zone "itzgeek.local" IN { //Domain name

     type master; //Primary DNS

     file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file

     allow-update { none; }; // Since this is the primary DNS, it should be none.

};

逆引きゾーン

以下は、named.conf.localファイルの逆引きゾーン用です。

zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file

     allow-update { none; }; //Since this is the primary DNS, it should be none.

};

ゾーンルックアップファイルの作成

ゾーンが作成されたら、先に進んで、順方向ゾーンと逆引きゾーンのゾーンデータファイルを作成できます。

フォワードゾーン

サンプルエントリを、/ etc/bindディレクトリの下の転送ゾーンのforward.itzgeek.local.dbというゾーンファイルにコピーします。

ゾーンファイルにタイプを記録します

SOA –権限の開始
NS –ネームサーバー
A –レコード
MX –メール交換
CN –標準名前

ドメイン名はドット(。)で終わる必要があります。

sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db

ゾーンを編集します。

sudo nano /etc/bind/forward.itzgeek.local.db

以下に示すようにコンテンツを更新します。

ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns1.itzgeek.local. root.itzgeek.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
; Commentout below three lines
;@      IN      NS      localhost.
;@      IN      A       127.0.0.1
;@      IN      AAAA    ::1

;Name Server Information

@       IN      NS      ns1.itzgeek.local.

;IP address of Name Server

ns1     IN      A       192.168.0.10

;Mail Exchanger

itzgeek.local.   IN     MX   10   mail.itzgeek.local.

;A – Record HostName To Ip Address

www     IN       A      192.168.0.100
mail    IN       A      192.168.0.150

;CNAME record

ftp     IN      CNAME   www.itgeek.local.

逆引きゾーン

サンプルエントリを/etc/ bindディレクトリの下の逆引きゾーンのreverse.itzgeek.local.dbというゾーンファイルにコピーし、上記の順方向ゾーンレコードの逆引きポインタを作成します。

PTR –ポインタ
SOA –権限の開始

sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db

リバースゾーンファイルを編集します。

sudo nano /etc/bind/reverse.itzgeek.local.db

以下に示すようにコンテンツを更新します。

ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     itzgeek.local. root.itzgeek.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
; Commentout below two lines

;@      IN      NS      localhost.
;1.0.0  IN      PTR     localhost.

;Name Server Information

@       IN      NS     ns1.itzgeek.local.

;Reverse lookup for Name Server

10      IN      PTR    ns1.itzgeek.local.

;PTR Record IP address to HostName

100     IN      PTR    www.itzgeek.local.
150     IN      PTR    mail.itzgeek.local.

BIND構成構文の確認

named-checkconfコマンドを使用して、named.conf*ファイルの構文にエラーがないか確認します。

sudo named-checkconf

エラーがない場合、コマンドはシェルに戻ります。

また、named-checkzoneを使用して、ゾーンファイルの構文エラーを確認できます。

フォワードゾーン

sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db

出力:

zone itzgeek.local/IN: loaded serial 2
OK

逆引きゾーン

sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db

出力:

zone 0.168.192.in-addr.arpa/IN: loaded serial 2
OK

バインドサービスを再開します。

sudo systemctl restart bind9

bind9サービスのステータスを確認してください。

sudo systemctl status bind9

DNSを確認する

任意のクライアントマシンに移動し、新しいDNSサーバーのIPアドレスを/etc/resolv.confファイルに追加します。

sudo nano /etc/resolv.conf

以下のように入力してください。

nameserver 192.168.0.10

または

以下のチュートリアルを読んで、LinuxでDNSサーバーのIPを設定してください。

読む: CentOS/FedoraでDNSIPアドレスを設定する方法

読む: Ubuntu / DebianでDNSIPアドレスを設定する方法– ifupdown

読む: Ubuntu 18.04でDNSIPアドレスを設定する方法– Netplan

nslookupまたはdigコマンドを使用して、DNSサーバーを確認できます。

digコマンドを使用して、前方参照を確認します。

dig www.itzgeek.local

コマンドが見つからない場合は、Red Hat派生物にbind-utilsをインストールするか、Debian派生物パッケージにdnsutilsをインストールしてください。

出力:

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41979
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good)
;; QUESTION SECTION:
;www.itzgeek.local.             IN      A

;; ANSWER SECTION:
www.itzgeek.local.      604800  IN      A       192.168.0.100

;; AUTHORITY SECTION:
itzgeek.local.          604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 1 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:37:45 UTC 2020
;; MSG SIZE  rcvd: 124

正引きで確認されたwww.itzgeek.localに対するDNSサーバーの回答は192.168.0.100です。

digコマンドで逆引き参照を確認します。

dig -x 192.168.0.100

出力:

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good)
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 604800 IN   PTR     www.itzgeek.local.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 0 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:40:00 UTC 2020
;; MSG SIZE  rcvd: 148

逆引き参照192.168.0.100に対するDNSサーバーの回答は、www.itzgeek.localです。

この結果は、順方向と逆方向の両方のゾーンルックアップが正常に機能していることを確認しています。

結論

それで全部です。これで、Debian 10 / Debian9にDNSサーバーが正常にインストールされました。次の記事では、Debian 10 /Debian9にスレーブDNSサーバーを構成します。


Debian
  1. Debian10にOpenVPNサーバーをインストールして設定する方法

  2. Debian9にSimpleDNS(BIND)サーバーをインストールして設定する方法

  3. Debian9でCSFを使用してファイアウォールを構成する方法

  1. Debian 9StretchLinuxでFTPサーバーを構成する方法

  2. Debian 9StretchLinuxでSambaサーバー共有を設定する方法

  3. Debian10でDockerを使用してダイナミックDNSサーバーをデプロイする方法

  1. Debian9にVNCをインストールして設定する方法

  2. Debian 10でMySQL(MariaDB)マスタースレーブレプリケーションを構成する方法

  3. Ubuntu / DebianにDNSサーバー(バインド9)をインストールして構成する方法