Adguard HomeでVPSに広告ブロックDNSを立てました

VPSにAdguard Homeをインストールして、広告ブロックできるDNSサーバを作る話です。
DHCPサーバ設定でこのDNSサーバを指定すれば、ネットに繋ぐだけで自動的にドメインベースで広告ブロックされます、動作も高速なため、非常に快適です。(cosmetic filterは使えないのでブラウザには別途広告ブロックを設定したほうが良いです。)
ただ公開DNSサーバはセキュリティの問題が大きいので、玄人さんに協力してもらう必要がありそうです。私自身これを書くのに1ヶ月間お勉強しましたが、まだ不完全と思っています。

VPSサービスの選び方

DNSはレスポンスタイムが重要ですので、日本のサーバを利用するのが良いかと思います。今回は、VULTRの$3.50/monthのプランを使いました。(東京/IPv4/1CPU/512MB memory/500GB bandwith/Debian 9 x64) こちらから登録すると最初のデポジットで払った金額の2倍チャージしてもらえますので、実質半額で利用できます。
他に、Conoha さくらのVPSなどもコストパフォーマンスが良さそうです。

インストール方法

下記を参考にしてください。
VPS · AdguardTeam/AdGuardHome Wiki · GitHub
https://qiita.com/huru555/items/b9fe790c0ea49e48993e

セキュリティについて

意図しない公開DNSサーバ(オープンリゾルバ)は推奨されていません。オープンリゾルバはDDoS攻撃の踏み台として利用されてしまうリスクがあるので注意が必要です。私を含め一般ユーザが公開DNSサーバを立てるのはやめておいた方が良いと思います。
下記のサーバですが、ipsetとiptablesを利用し携帯電話ネットワーク以外からはアクセス出来ないようにしています。さらにhashlimitやtcで速度制限をかけています。その他基本的なセキュリティの設定をしたつもりです。
これらの勉強、設定に多くの時間がかかりました。踏み台になる可能性は低いと思いますがこれでも対策は不十分と考えていますので、下記サーバは突然非公開にするかもしれません。

試験的にサーバ公開してみます。

104.238.151.127 (モバイルルーター用の広告ブロックDNSサーバ)

携帯電話ネットワークからのみアクセス可能です。ip範囲がわかっているdocomo, softbank, au, uq, ymobile, mineo, iijmioを許可しています。それ以外のMVNOは非対応です。
想定しているのは、モバイルルータのDNSに設定する事です。
スマホにこのDNSを設定した場合、モバイル回線では動作しますが、スマホをwifi接続すると名前解決できなくなります。

DNSを指定できるモバイルルータについて

Speed Wi-Fi NEXT W04/W05, FS030W, 303ZT/304ZT/305ZTなどがDNSサーバを指定できます。
プライマリDNSに上記のアドレス、セカンダリDNSには、Adguard DNSを指定するのはどうでしょうか(176.103.130.130 もしくは176.103.130.131)。日本向けには最適化されていませんが、広告ブロック公開DNSサーバーで最も安定して動作しているかと思います。

おすすめモバイル通信

上記のルータのどれかにsofbank法人回線の再販業者(fuji wifiやw/wifiのデータsim)を入れるのがおすすめです。MNO回線ですので高速ですし、50-100GB/月が約3000円/月で利用できます。

unboundによる広告ブロックDNSサーバ

理想は、アクセスを日本国内IPからに限定した、unboundを使用した高性能な公開DNSサーバー(280blocker-domainで広告ブロック)と考えています。ただ現在の私の技術力では、パフォーマンスが良く、セキュリティに十分な配慮したDNSサーバを公開するのは難しそうです。
DNSブロッキングで無駄な広告表示を減らそう - Speaker Deck
とも ちゃ日記(Tomo cha) - 元大学生のOL日記-
家庭内 DNS リゾルバで広告をブロックする | Unknown Unko

無料の公開DNSサーバを立てるためであれば、280blockerのリストは使っていただいて結構です。