中学生になった息子がスマホを欲しがるのでNextDNSでプライベートDNSを導入する

こんにちは。Kaneyasuです。
今年から中学生になった息子がスマホを欲しがるようになってきました。
スマホを持たせるかどうかは、同じ年頃の子供を持つ親御さんに共通する悩みだと思います。
友達とのコミュニケーション手段としてスマホを持つことは必要だと思いますが、私は思春期に欲望をコントロールできなかった経験があるので、不安です。（悪いことはしてませんよ。）  
なので、NextDNSを導入して、プライベートDNSを構築し、フィルタリングを行うことにしました。

## 注意事項

本記事で述べている内容は、私の持っているデバイスが限られているため、Android スマホのみで検証しています。
iOS端末での検証は行っていません。

## NextDNSとは

NextDNSは、プライベートDNSサービスで、広告ブロックやトラッキング防止、フィルタリングなどの機能を提供しています。
スマホやPC、ルーターなど、様々なデバイスで利用可能です。設定も簡単で、Web上でアカウントを作成し、DNS サーバーのアドレスを指定するだけで利用開始できます。

https://my.nextdns.io/

NextDNSの提供するDNS サーバーは、Android スマホのプライベートDNSとして利用できます。

## Android スマホのプライベートDNSとは

プライベートDNSとは、Android 9以降のスマホで利用できる機能です。
Android 9以降のスマホでは、プライベートDNSを設定することができます。

https://www.android.com/intl/ja_jp/articles/402/

>Android スマホのプライベート DNS モードとは、暗号化された通信で DNS サーバーへの問い合わせを行うようにする設定です。プライベート DNS モードが有効になっている場合は、ドメインに関する問い合わせが漏洩することなく、プライバシーを保てます。そのため、デフォルトでは、暗号化通信が可能であれば自動で利用する [自動] の設定になっています。

Android スマホで、「設定」→「ネットワークとインターネット」→「プライベートDNS」と進むと、プライベートDNSの設定画面が表示されます。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/81f958a4-b543-4e4e-9c06-f0687ab39721.png">

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/23fa4245-405a-4048-a066-a0cc7202a2ff.png">

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/2cbb1965-e73e-40f0-9470-c4fcbd02b1a0.png">

Android 9以降のスマホでプライベートDNSに設定できるのは、DNS over TLS（DoT） に対応したDNS サーバーです。

https://developers.google.com/speed/public-dns/docs/using?hl=ja#android

> Android 9 は「プライベート DNS」をサポートしていますDNS-over-TLS を使用してセキュリティを提供します。

ネットで調べると、新しいAndroidならばDNS over HTTPS（DoH） にも対応しているようにも見受けられましたが、我が家のデバイスがそんなに新しいものではないのでそこまでは検証できませんでした。
機会があれば、DNS over HTTPS（DoH） にも対応したDNS サーバーを検証してみたいと思います。

## NextDNSのDNS over TLS（DoT） 

NextDNSは、DNS over TLS（DoT） に対応しています。
私はPro版を使用していますが、Free版でもDNS over TLS（DoT） を利用できます。

アカウントを作成して、ログインすると自身の契約しているDNS サーバーの情報が表示されます。
セットアップのページのエンドポイントで、DNS over TLS（DoT） のエンドポイントが表示されます。

![NextDNSのページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/96659212-d6a0-4316-8669-9fe60f378816.png)

そして、その下のセットアップガイドでAndroidを選択すると、Android スマホのプライベートDNSの設定方法が表示されます。
これに従って設定を行います。

![NextDNSのセットアップガイド](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/66f25aab-0a8d-4473-97dd-aa9cbea189fd.png)

Android スマホの「設定」→「ネットワークとインターネット」→「プライベートDNS」と進み、「プライベートDNSプロバイダーのホスト名」にNextDNSのエンドポイントを入力します。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/2cbb1965-e73e-40f0-9470-c4fcbd02b1a0.png">

以上でスマホ側の設定は完了です。

## NextDNSのフィルタリング設定

NextDNSのペアレンタルコントロールで、サービスやカテゴリーごとにフィルタリングを設定できます。
例えば、YouTubeをブロックしたい場合、アプリでもブラウザでもYouTubeをブロックすることができます。

![NextDNSのペアレンタルコントロール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/a00a665c-0a53-46e3-9454-288f99cc4884.png)

ペアレンタルコントロールにないサービスは、ログと拒否リストを活用することで、ブロックすることができます。
NextDNSのDoTを設定したスマホで操作すると、NextDNSのログにアクセスしたドメインが記録されます。
この中からブロックしたいサービスのドメインを見つけて、拒否リストに追加すれば、ブロックすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/e99a5ab1-0882-4a5e-aa31-a73a0185d429.png)

これで、不要だと思うサービスをブロックすることができます。

## プライベートDNSの設定を解除されたらどうするのか？

NextDNSのDoTによるプライベートDNSの運用は、今の所大変便利だと感じています。
ところで、子供がプライベートDNSの設定を解除されたらどうしたらいいのでしょうか？

私の考えとしては、子供が自力でプライベートDNSの設定を解除できたら、それはそれでいいかなと思っています。
プライベートDNSの設定まで辿り着くのはなかなかだと思います。
（たどり着くとしたら、不純な動機だろうなと思いますが）
解除されたら解除されたで、今度は自宅のルーターでなんとかするとかしてみます。
親と子の知恵比べみたいなのも子供にとって必要かなと思っています。