2020年12月12日土曜日

unboundでIPv6の名前解決を無効化する

随分と以前の話になるがunboundでDNSサーバを構築して利用しているが、いまさらながら気づいてしまったのだが、名前解決の問い合わせを行った際に、IPv4だけでなくIPv6のアドレスの回答をしていることがわかった。
c:\>nslookup account.myqnapcloud.com
サーバー:  UnKnown
Address:  192.168.33.23

権限のない回答:
名前:    qcloud-pr-frontend-1025300009.us-east-1.elb.amazonaws.com
Addresses:  2600:1f18:2a9:a903:10b5:2064:b47:8b1f
          2600:1f18:2a9:a900:bd08:38b3:b8e3:799c
          2600:1f18:2a9:a988:9731:a088:80fe:e041
          2600:1f18:2a9:a904:21ba:a95d:1eec:2321
          2600:1f18:2a9:a901:8740:8c0e:f6b2:5099
          2600:1f18:2a9:a902:eac3:af38:6b91:6e89
          107.21.203.67
          54.175.45.228
          34.195.68.203
          34.192.70.234
          34.192.15.39
          100.24.165.157
Aliases:  account.myqnapcloud.com
これ自体は正常な動作となるのだが、以下の通り実際はIPv6のアドレスによる接続は失敗している。
[root@localhost ~]# curl -v https://www.myqnapcloud.com/
* About to connect() to www.myqnapcloud.com port 443 (#0)
*   Trying 2600:1f18:2a9:a903:10b5:2064:b47:8b1f...
* 接続を拒否されました
*   Trying 2600:1f18:2a9:a900:bd08:38b3:b8e3:799c...
* 接続を拒否されました
*   Trying 2600:1f18:2a9:a901:8740:8c0e:f6b2:5099...
* 接続を拒否されました
*   Trying 2600:1f18:2a9:a904:21ba:a95d:1eec:2321...
* 接続を拒否されました
*   Trying 2600:1f18:2a9:a988:9731:a088:80fe:e041...
* 接続を拒否されました
*   Trying 2600:1f18:2a9:a902:eac3:af38:6b91:6e89...
* 接続を拒否されました
*   Trying 34.195.68.203...
* Connected to www.myqnapcloud.com (34.195.68.203) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*       subject: CN=myqnapcloud.com
*       start date: 12月 03 00:00:00 2019 GMT
*       expire date:  1月 03 12:00:00 2021 GMT
*       common name: myqnapcloud.com
*       issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.myqnapcloud.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 03 Jan 2020 12:55:10 GMT
上記の通りIPv6のアドレスでは接続が拒否されており、IPv6のアドレスを名前解決できても何もうれしくないため、回答からIPv6のアドレスを削除し無効化することにした。

IPv6名前解決無効化手順

unboundの場合は、unbound.confにprivate-address: ::/0を追記することで対処することができる。
# vi /etc/unbound/unbound.conf
private-address: ::/0   ←★追記
private-addressの設定の詳細は、以下のURLのマニュアルを参照してほしい。本設定を行うと、IPv6のすべてのアドレス(::/0)がプライベートアドレスと認識されることから、unboundにおける名前解決の対象外となる。そのため、DNS名前解決時にIPv6の回答があったとしてもIPv6の回答は削除され、結果的にIPv4のみが回答として残ることになる。
IPv4やIPv6のアドレスかクラスレスのサブネットを与えます。これらはあなたのプライベートネットワークのアドレスであり、パブリックなインターネットの名前を返すことを許可しません。そのようアドレスがあればDNSの回答から削除されます。

無効化後の名前解決状況

nslookupで確認すると、以下の通りIPv4のアドレスのみ回答として表示される。
c:\>nslookup account.myqnapcloud.com
サーバー:  UnKnown
Address:  192.168.33.23

権限のない回答:
名前:    qcloud-pr-frontend-1025300009.us-east-1.elb.amazonaws.com
Addresses:  34.192.70.234
          34.192.15.39
          34.195.68.203
          100.24.165.157
          54.175.45.228
          107.21.203.67
Aliases:  account.myqnapcloud.com
先ほどはIPv6のアドレスでは接続が拒否されていたが、当然IPv4のアドレスのみとなったことから、一発で接続できるようになった。
[root@localhost ~]# curl -v https://www.myqnapcloud.com/
* About to connect() to www.myqnapcloud.com port 443 (#0)
*   Trying 107.21.203.67...
* Connected to www.myqnapcloud.com (107.21.203.67) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*       subject: CN=myqnapcloud.com
*       start date: 12月 03 00:00:00 2019 GMT
*       expire date:  1月 03 12:00:00 2021 GMT
*       common name: myqnapcloud.com
*       issuer: CN=Amazon,OU=Server CA 1B,O=Amazon,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.myqnapcloud.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 03 Jan 2020 12:56:22 GMT
以上でunboundにおけるIPv6の名前解決を無効化することができた。

0 件のコメント:

コメントを投稿

人気の投稿