ウェブサイトだけでなく、iPhone内のアプリに勝手に表示される広告はうるさいですよね。AdGuard Homeを使用すれば簡単に解決できます。Raspberry Piにインストールして、家のルーターのデフォルトDNSサーバーをAdGuard Homeに設定するのが1つの方法ですが、外出先では広告のブロックが効かなくなります。
外でも広告のない生活を送りたいので、VPSにAdGuard Homeをインストールして設定してみました。
AdGuard Homeをインストール
AdGuard Homeのインストールは難しくありません。具体的な手順については、公式ドキュメントを参照してください。
https://github.com/AdguardTeam/AdGuardHome/wiki/VPS
Dockerを使えるVPSであればさらに便利でしょう。
https://github.com/AdguardTeam/AdGuardHome/wiki/Docker
TLS/SSL証明書をインストール
個人的に費用を抑えるためにLet’s Encryptを使っています。手順はこちらです。
CertBotをインストール
sudo snap install --classic certbot
証明書を生成
sudo certbot certonly --manual --preferred-challenges=dns --preferred-chain="ISRG Root X1"
証明書をAdGuard Homeへ登録
AdGuard Homeの管理画面である「Settings」→「Encryption Settings」にアクセスし、TLS/SSLなどの設定を有効にし、同時にplain DNSをオフにします。
-
有効にする
- Enable Encryption (HTTPS, DNS-over-HTTPS, and DNS-over-TLS)
- Server name(AdGuard Homeサーバーのドメイン)
- Redirect to HTTPS automatically
- DNS-over-TLS port(853へ)
-
無効にする
- Enable plain DNS
- CertBotで生成された証明書の登録
- Set a certificates file pathを選んで、
/etc/letsencrypt/live/[AdGuard Homeサーバーのドメイン]/fullchain.pem
に設定 - Set a private key fileを選んで、
/etc/letsencrypt/live/[AdGuard Homeサーバーのドメイン]/privkey.pem
に設定
- Set a certificates file pathを選んで、
問題なかったら、Certificate chain is valid
とThis is a valid ECDSA private key
が表示されます。
VPS上のAdGuard Homeの管理画面にHTTPSでアクセスできるようになりました。また、DNS-over-HTTPSとDNS-over-TLSも利用できるようになりました。
DNSサーバーのポート解放
DNS-over-HTTPS
を使用する場合はポート443
を、DNS-over-TLS
を使用する場合はポート853
を開放してください。
AdGuard Homeの管理画面へのアクセスを制限するため、443ポートではなく853ポートのみ
を解放しました。
iPhoneの設定
Androidとは異なり、iPhoneではWiFiスポット以外のプライベートDNSサーバーを簡単に設定できません。代わりに、OSSの「DNSecure」をダウンロードして設定してみましょう。
DNSecureをiPhoneにインストール
ソースコードは:https://github.com/kkk669/DNSecure ダウンロードリンクは:Download DNSecure on APP Store
DNS-over-TLSサーバーの追加
DNSecureにAdGuard Homeサーバーを追加します。
- Name: AdGuardTLS
- Servers: AdGuard HomeサーバーのIPアドレス
- Server Name: AdGuard Homeサーバーのドメイン
その他の設定
DNSecureの手順に従って、「一般」中のVPNに「DNSecure」を選んだら完了となります。
完了
ブラウザだけでなく、アプリ内の広告もブロックされているはずです。AdGuard Homeの管理画面にアクセスし、ブロックされたログを確認してみましょう。
その後、DNSのブロックリストに気に入らないサイトをすべてブロックするために追加しましょう。
※日本専用のブロックリスト:フィルターリスト