DNS またはドメインネームシステム 、私たちが知っているように、ユーザーフレンドリーなドメインをコンピューターフレンドリーなIPアドレスに変換するために使用されるインターネットサービスです。ドメイン名をIPアドレスに変換できるだけでなく、逆変換、つまりIPアドレスからドメイン名への変換も実行できます。このチュートリアルでは、 BIND9 を実装して、プライベートDNSサーバーをセットアップする方法を学習します。 Ubuntu/Debianシステムで。
BINDまたはBIND9は、DNSのオープンソース実装であり、ほとんどすべてのLinuxディストリビューションで利用できます。 BINDはBerkeleyInternet Name Domainの略です &これにより、インターネット上でDNS情報を公開できるだけでなく、ユーザーのDNSクエリを解決することもできます。 BINDは、インターネット上で群を抜いて最も使用されているDNSソフトウェアです。このチュートリアルでは、以下を使用します:
- バインドサーバーIP(Ubuntu / Debian)=192.168.0.40
- ドメイン名=linuxtechi.local
- プライベートネットワーク=192.168.0.0/24
それでは、BIND9のパッケージへのインストールからチュートリアルを始めましょう…。
Debian / UbuntuシステムへのBind9のインストール:
BIND 9および関連ツールをインストールするには、「bind9bind9utilsbind9-docdnsutils」をインストールする必要があります。ターミナルを開き、次のコマンドを実行します。
[email protected]:~$ sudo apt-get install bind9 bind9utils bind9-doc dnsutils
Debian / Ubuntuシステムでのバインド9の構成:
すべてのパッケージがインストールされたら、構成部分に移動します。 BINDのすべての構成ファイルは、フォルダー「/ etc/bind」にあります。
bindの重要な構成ファイルの1つは、「 /etc/bind/named.conf.options」です。 「、このファイルから、次のパラメータを設定できます:
- プライベートネットワークからDNSへのクエリを許可する(名前が示すように、プライベートネットワークからのシステムのみがDNSサーバーに名前からIPへの変換をクエリできます。その逆も可能です)
- 再帰クエリを許可する
- DNSポートを指定します(53)
- フォワーダー(ローカルDNSサーバーがクエリを解決できない場合、DNSクエリはフォワーダーに転送されます)
プライベートネットワークの設定に従って、次のパラメータを指定しました:
[email protected]:~$ sudo vi /etc/bind/named.conf.options options { directory "/var/cache/bind"; auth-nxdomain no; # conform to RFC1035 // listen-on-v6 { any; }; listen-on port 53 { localhost; 192.168.0.0/24; }; allow-query { localhost; 192.168.0.0/24; }; forwarders { 8.8.8.8; }; recursion yes; };
次の重要な構成ファイルは「/etc/bind/named.conf.local」です。 「このファイルでは、ドメインのゾーンファイルを定義し、ファイルを編集して次のエントリを追加します。
[email protected]:~$ cd /etc/bind [email protected]:~$ sudo vi named.conf.local zone "linuxtechi.local" { type master; file "/etc/bind/forward.linuxtechi.local"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/reverse.linuxtechi.local"; };
ファイルを保存して終了します。ここでは、順方向ルックアップゾーンファイルと逆引き参照ゾーンファイルの場所について説明しました。次に、前述の順方向および逆方向のゾーンファイルを作成します。
まず、前方参照ゾーンファイルを作成します。サンプルゾーンファイル(db.local)は、「 / etc/bindフォルダー」に既に存在します。 ‘、サンプルゾーンファイルを使用してコピーできます。
[email protected]:/etc/bind$ sudo cp db.local forward.linuxtechi.local [email protected]:/etc/bind$ sudo vi forward.linuxtechi.local $TTL 604800 @ IN SOA primary.linuxtechi.local. root.primary.linuxtechi.local. ( 6 ; Serial 604820 ; Refresh 86600 ; Retry 2419600 ; Expire 604600 ) ; Negative Cache TTL ;Name Server Information @ IN NS primary.linuxtechi.local. ;IP address of Your Domain Name Server(DNS) primary IN A 192.168.0.40 ;Mail Server MX (Mail exchanger) Record linuxtechi.local. IN MX 10 mail.linuxtechi.local. ;A Record for Host names www IN A 192.168.0.50 mail IN A 192.168.0.60 ;CNAME Record ftp IN CNAME www.linuxtechi.local.
前方参照ファイルは次のようになります。
ここでは、DNSサーバーに関する情報を追加し、いくつかのサーバーのAレコード、メールサーバーのレコードとCNAMEレコードも追加しました。 ftpサーバー用。ネットワークに合わせてこのファイルを編集してください。
次に、同じ場所に逆引き参照ゾーンファイルを作成します。サンプルの逆引き参照ゾーンファイルは「 / etc / bind」にあります。 ‘フォルダ。
[email protected]:/etc/bind$ sudo cp db.127 reverse.linuxtechi.local [email protected]:~$ sudo vi /etc/bind/reverse.linuxtechi.local $TTL 604800 @ IN SOA linuxtechi.local. root.linuxtechi.local. ( 21 ; Serial 604820 ; Refresh 864500 ; Retry 2419270 ; Expire 604880 ) ; Negative Cache TTL ;Your Name Server Info @ IN NS primary.linuxtechi.local. primary IN A 192.168.0.40 ;Reverse Lookup for Your DNS Server 40 IN PTR primary.linuxtechi.local. ;PTR Record IP address to HostName 50 IN PTR www.linuxtechi.local. 60 IN PTR mail.linuxtechi.local.
逆引きゾーンルックアップファイルは次のようになります。
ファイルを保存して終了します。これで、BINDサービスを再起動して、加えられた変更を実装するだけです。
[email protected]:~$ sudo systemctl restart bind9 [email protected]:~$ sudo systemctl enable bind9
注:- バインドサーバーでOSファイアウォールが実行されている場合は、以下のコマンドを実行して53ポートを許可します
[email protected]:~$ sudo ufw allow 53 Rule added Rule added (v6) [email protected]:~$
bind9構成とゾーンファイルの構文の検証
bind 9構成ファイル(named.conf.local)の構文を相互検証する場合。コマンド「named-checkconf」を使用します 「、例を以下に示します:
[email protected]:~$ sudo named-checkconf /etc/bind/named.conf.local [email protected]:~$
バインド構成ファイルに構文エラーがない場合は、エラーを表示せずにシェルに戻る必要があります。
順方向および逆引きのゾーンファイルの構文を相互検証するには、コマンド「 named-checkzone」を使用します。 「、例を以下に示します:
[email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/forward.linuxtechi.local zone linuxtechi.local/IN: loaded serial 6 OK [email protected]:~$ [email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/reverse.linuxtechi.local zone linuxtechi.local/IN: loaded serial 21 OK [email protected]:~$
dig&nslookupを使用したDNSサーバーのテスト
BIND 9 DNSサーバーをテストするために、別のUbuntuマシンを使用し、そのDNSを変更してDNSサーバーを指定します。 DNSサーバーを変更するには、「 /etc/resol.conf」を開きます ‘&次のDNSエントリを作成します
[email protected]:~$ sudo vi /etc/resolv.conf search linuxtechi.local nameserver 192.168.0.40
ファイルを保存して終了します。これで、サーバーを指すDNSを使用してクライアントの準備が整いました。次に、「 dig」というCLIツールを使用します。 ‘コマンド。DNSとその関連情報を取得するために使用されます。ターミナルから次のコマンドを実行します
[email protected]:~$ dig primary.linuxtechi.local
&コマンドから次の出力を取得する必要があります
この出力は、DNSが正常に機能していることを示しています。
逆引きクエリ(PTR)を実行しましょう:
[email protected]:~$ dig -x 192.168.0.40
コマンドの出力は次のようになります。
また、「 nslookup」を実行することもできます ‘DNSサーバーに対してコマンドを実行して、digコマンドの出力を確認します。
[email protected]:~$ nslookup primary.linuxtechi.local
&次の出力が生成されるはずです
注:- digコマンドの実行中に「コマンドが見つかりません」というエラーが発生した場合は、digコマンドが「dnsutils」パッケージの一部であるため、「dnsutils」パッケージをインストールする必要があります。
[email protected]:~$ sudo apt-get install dnsutils -y
サーバーが正常に機能しているので、要件に応じて適切なレコードを作成することにより、メールサーバー、ftpサーバー、Webサーバーなどの他のサーバーをDNSサーバー構成ファイルに追加できます。また、このチュートリアルではローカルDNSサーバーのみをセットアップしました。パブリックDNSをセットアップする必要がある場合は、パブリックDNSサーバーをセットアップする必要があります。
これで、BIND9を使用してUbuntu/DebianにDNSサーバーをインストールおよび構成する方法に関するチュートリアルを終了します。貴重なフィードバック/クエリをお送りください。すべてに対応させていただきます。
また読む : Debian/UbuntuにWebminをインストールして設定する方法