おうちのキャッシュDNSサーバをDoTでパブリックDNSサーバと接続

どこのご家庭にもあるキャッシュDNSサーバ。おそらくパブリックDNSサーバとの接続は普通のUDPポート53のやつでGoogleの8.8.8.8とかCloudflareの1.1.1.1とかQuad9の9.9.9.9などが多いかと思われるが、今回はDNS over TLSで接続する。メモを書くまでもなくとても簡単。

使用するDNSサーバは例によってUnbound。

既にある設定が以下のようなものだとする。

/usr/local/etc/unbound/unbound.conf (FreeBSDのports/pkgの配置)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
server:
	verbosity: 1
	interface: ::0
	interface: 0.0.0.0
	access-control: 0.0.0.0/0               refuse
	access-control: ::0/0                   refuse
	access-control: 127.0.0.0/8             allow
	access-control: ::1                     allow
	access-control: 192.168.0.0/24          allow
	access-control: 200d:xxxx:xxxx::/64     allow

forward-zone:
	name: "."

	#CloudFlare
	forward-addr: 2606:4700:4700::1111
	forward-addr: 2606:4700:4700::1001
	forward-addr: 1.1.1.1
	forward-addr: 1.0.0.1

上半分はそのまま、下半分のforward-zone (問い合わせを行うドメイン、今回はインターネットだけ)を変更する。

forward-zoneの name="." は不特定のドメインのこと。つまりインターネット側に問い合わせなければならないドメインについてのセクションを示す。

1
2
3
4
5
6
7
8
9
forward-zone:
	name: "."
	forward-tls-upstream: yes  #DoT

	#CloudFlare DoT 
	forward-addr: 2606:4700:4700::1111@853
	forward-addr: 2606:4700:4700::1001@853
	forward-addr: 1.1.1.1@853
	forward-addr: 1.0.0.1@853

forward-addrの@xxxはポート番号。普通のDNSであればポート番号は53で、@53となるがこれは普通は省略する。今回はDNS over TLSなのでポート853を使う、なので@853を追加する。それだけではTLSで通信されない(だけでなく名前解決ができなくなる)ので3行目の forward-tls-upstream: yes を忘れない。

Unboundを再起動する。(FreeBSDの場合)

# service unbound restart

他のパブリックDNSサーバを使う

3つだけ挙げる

Google (dns.google)
forward-addr: 2001:4860:4860::8888@853
forward-addr: 2001:4860:4860::8844@853
forward-addr: 8.8.8.8@853
forward-addr: 8.8.4.4@853

Quad9 (dns.quad9.net) このDNSは不正ドメインのブロッキングを売りにしているので注意
forward-addr: 2620:fe::9@853
forward-addr: 2620:fe::fe@853
forward-addr: 9.9.9.9@853
forward-addr: 149.112.112.112@853

IIJ (public.dns.iij.jp)
forward-addr: 2001:300::5@853
forward-addr: 2001:300::6@853
forward-addr: 103.2.57.5@853
forward-addr: 103.2.57.6@853

IIJのパブリックDNSサービス。プロバイダがIIJ以外の人でも利用できる。「DoT、DoHの技術検証のために提供されるβサービスです」とのことなのでDoTを試したいならちょうど良い???
上のIPアドレスは2019年5月26日14:30時点のもの。これ以外があるのか変更があるのかは不明。DoTでは普通ならホスト名を登録するのだが、UnboundではIPアドレス+ポートを登録するので書いたけど、この情報についての責任は持ちません。
このDNSサービスは児童ポルノ対策のためのDNSブロッキングが行われていて今年7月以降に導入予定の「マルウェア対策のためのDNSフィルタリング」は(現在は)行われていないとのことだが、詳しいことは不明。
児ポは置いといて、現状マルウエア以外のブロッキングがどうなっているのかも情報がない。
検閲(覗き見)がイヤでDoT, DoHを使いたいという人と「DNSブロッキング状況がよくわからないサービス」(検閲有り)というのが全くのアンマッチなので、DoT, DoH用は「全くDNSブロッキングをしない」「全体の名前解決件数以外の利用情報を取得しない」を宣言してサービスを提供した方が良いんじゃないかしら。