はじめに
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