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

RHEL7LinuxでのアンバウンドキャッシュのみのDNSサーバーのセットアップ

はじめに

Unboundは、検証、再帰、およびキャッシュのDNSサーバーです。そうは言っても、Unbound DNSサーバーを権限のあるDNSサーバーとして使用することはできません。つまり、カスタムドメイン名レコードをホストするために使用することはできません。その結果、キャッシュのみまたは転送DNSサーバーを構築することが目標である場合は、Unboundが選択される可能性があります。これは、Unboundがそれを実行し、それをうまく実行するためです。

目的

目的は、Redhat7Linux上のUnboundキャッシュ専用DNSサーバーのインストールおよび構成ガイドをすばやく簡単に実行できるようにすることです。このガイドの最後に、ローカルエリアネットワーク上のすべてのクライアントからUnboundDNSサーバーを使用できるようになります。

要件

構成済みの標準RedHatリポジトリーを使用したRedhat7Linuxサーバーへの特権アクセス。

難易度

ミディアム

規約

  • –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
  • $ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

手順

アンバウンドおよびDNSツールのインストール

最初のステップでは、実際のUnbound DNSサーバーとDNSツールをインストールします。これらのツールは、最終的にDNSキャッシュのみのサーバー構成をテストするために使用されます。 Redhatリポジトリが正しく設定されていれば、次のlinuxコマンドを実行して両方をインストールできます。

# yum install unbound bind-utils

基本的な非バインド構成

次に、UnboundDNSキャッシング専用サーバーの基本構成を実行します。これは、Unboundの構成ファイル/etc/unbound/unbound.confを編集することによって行われます。 テキストエディタを使用するか、以下のsedを使用します コマンド。まず、お好みのテキストエディタを使用して、# interface: 0.0.0.0という行を見つけます。 先頭の#を削除してコメントを解除します サイン。または、以下のsedを使用してください コマンド:

# sed -i '/interface: 0.0.0.0$/s/#//' /etc/unbound/unbound.conf

上記の構成は、すべてのローカルネットワークインターフェイスでリッスンするようにUnboundDNSサーバーに指示します。次に、LANクライアントがUnboundのキャッシュを照会できるようにします。関連する行を見つけて、デフォルトのループバックIPアドレス127.0.0.0/8を変更します LANのネットワークアドレスへ。 10.0.0.0/24

FROM:
access-control: 127.0.0.0/8 allow
TO
access-control: 10.0.0.0/24 allow

上記はsedでも実行できます コマンド:

# sed -i 's/127.0.0.0\/8 allow/10.0.0.0\/24 allow/' /etc/unbound/unbound.conf

DNSSECサポートの設定

次に、DNSSECサポートを提供するためにRSAキーを生成するようにUnboundDNSサーバーに指示します。

# unbound-control-setup 
setup in directory /etc/unbound
generating unbound_server.key
Generating RSA private key, 1536 bit long modulus
.................++++
.........++++
e is 65537 (0x10001)
generating unbound_control.key
Generating RSA private key, 1536 bit long modulus
.........++++
..................................++++
e is 65537 (0x10001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=/CN=unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

残っているのは、Unboundの構成を確認することだけです:

# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

非バインドサーバーを有効にして起動します

この段階で、UnboundDNSサーバーを起動時に起動できるようにします。

# systemctl enable unbound
Created symlink from /etc/systemd/system/multi-user.target.wants/unbound.service to /usr/lib/systemd/system/unbound.service.

実際のサービスを開始します:

# service unbound start
Redirecting to /bin/systemctl start  unbound.service

ステータスを確認して、UnboundDNSサーバーが実行されていることを確認します。

[root@localhost unbound]# service unbound status
Redirecting to /bin/systemctl status  unbound.service
● unbound.service - Unbound recursive Domain Name Server
   Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-12-07 10:32:58 AEDT; 6s ago
  Process: 2355 ExecStartPre=/usr/sbin/unbound-anchor -a /var/lib/unbound/root.key -c /etc/unbound/icannbundle.pem (code=exited, status=0/SUCCESS)
  Process: 2353 ExecStartPre=/usr/sbin/unbound-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 2357 (unbound)
   CGroup: /system.slice/unbound.service
           └─2357 /usr/sbin/unbound -d

Dec 07 10:32:57 localhost.localdomain systemd[1]: Starting Unbound recursive Domain Name Server...
Dec 07 10:32:57 localhost.localdomain unbound-checkconf[2353]: unbound-checkconf: no errors in /etc/unbound/unbound.conf
Dec 07 10:32:58 localhost.localdomain systemd[1]: Started Unbound recursive Domain Name Server.
Dec 07 10:32:58 localhost.localdomain unbound[2357]: Dec 07 10:32:58 unbound[2357:0] warning: increased limit(open files) from 1024 to 8266
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 0: validator
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 1: iterator
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] info: start of service (unbound 1.4.20).

DNSファイアウォールポートを開く

ローカルLANクライアントが新しいUnboundキャッシュ専用DNSサーバーに接続できるようにするには、DNSポートを開く必要があります。

# firewall-cmd --permanent --add-service dns
success
# firewall-cmd --reload
success

これで、テストの準備が整いました。

テスト

最後に、新しいUnboundDNSキャッシュ専用サーバーの基本的なテストを実行できるようになりました。このために、digを使用します 以前にインストールされたbind-utilsの一部であるコマンド いくつかのDNSクエリを実行するためのパッケージ。まず、実際のDNSサーバーでDNSクエリを実行します。

# dig @localhost example.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53485
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
example.com.            86400   IN      A       93.184.216.34

;; Query time: 817 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 07 10:40:46 AEDT 2016
;; MSG SIZE  rcvd: 56

クエリ時間は817ミリ秒以上であることに注意してください。 DNSキャッシュ専用サーバーを構成したため、このクエリはキャッシュされるようになり、同じドメイン名の後続のDNSクエリ解決はかなり瞬時に行われます:

# dig @localhost example.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34443
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
example.com.            86272   IN      A       93.184.216.34

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 07 10:42:54 AEDT 2016
;; MSG SIZE  rcvd: 56

最後に、ローカルLANクライアントからUbound DNSサーバーの構成をテストするには、UnboundのIPアドレスを指定します。 10.1.1.45:

$ dig @10.1.1.45 example.com

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @10.1.1.45 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 50494
;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; Query time: 0 msec
;; SERVER: 10.1.1.45#53(10.1.1.45)
;; WHEN: Wed Dec 07 10:45:43 AEDT 2016
;; MSG SIZE  rcvd: 12

Linux
  1. RHEL 8 / CentOS8LinuxにDNSサーバーをインストールする方法

  2. UbuntuLinuxでのWebDAVサーバーのセットアップ

  3. LinuxでリバースプロキシとしてApacheTrafficServerを設定する

  1. CentOS 6 /RHEL6でのSysLogサーバーのセットアップ

  2. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  3. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  1. RockyLinux8でOpenVPNサーバーをセットアップする

  2. LinuxでパスワードなしのSSHを設定する方法

  3. Linux でリバース SSH トンネルをセットアップする方法