スマホ広告ブロッカーを構築してみた(Pi-hole+strongSwan VPN+ubuntu18.04+OCI)

スマホ閲覧中のバナー広告は年々狡猾に。あの手この手で誤タップさせようとしてきて鬱陶しいと常々思っていたところ、DNSベースの広告ブロッカーがあると小耳に挟んだので自分用に作ってみた。

構成を決めるまで

プロダクト名が分からなかったので、「DNS+広告ブロック」で情報収集した結果、「Pi-hole」というプロダクトを発見。さらに関連サイトを見て回り、スマホからPi-hole稼働サーバにVPN接続し、VPN接続のDNS設定により広告ブロックの効果を享受する、という方向で構築を進めることにした。

自宅LAN内の仮想環境かラズパイ上でPi-holeを稼働させることも検討したが、あくまでメインの目的はスマホ用であり、外出先からの利用が中心。外部から自宅LAN向けの通信要件は増やしたくなかったので、クラウド上にPi-holeサーバを構築することにした。

クラウドAWSかAzureしか触ったことがなかったが、先日ニュースで見かけたOracle Cloudの「Always Free」を思い出し、折角なのでOracle Cloud上での環境構築にチャレンジすることにした。

無償で使えるVMは大したスペックではないが、Pi-holeはもともとラズパイ向けに作られた軽量なプロダクト。「Always Free」なOacle Cloudを使い、完全無料で自分用の広告ブロッカーを構築することを目指す。

構築の過程

全体像・前提

f:id:ttkw-y:20191209222845p:plain
システム構成図

  • 主な対象スマホ(自分用)はSIMフリーSH-M08(Android9)
  • 家に転がっているiPad miniでも使いたい。
  • クラウド内のネットワークは、自宅LANのアドレス帯(192.168.160.0/24)と重複しないように割り振る。

クラウド環境を準備する

Oracle Cloudにサインアップし、仮想サーバを構築できるように、基本的なネットワーク環境を構築する。

misc-notes.hatenablog.jp

仮想サーバを構築する

Oracle Cloud上に、Pi-holeの実行環境となるLinuxサーバ(ubuntu 18.04)を構築し、OSの基本的な設定を行う。

misc-notes.hatenablog.jp

手順が長くなったので、前後編に分割。後編では、OSの基本的な設定を行う。

misc-notes.hatenablog.jp

VPNを設定する

Oracle Cloud上のLinuxサーバ(ubuntu18.04)に、スマホ等から接続するためのVPN環境(StrongSwanを利用)を構築する。

(執筆中)

Pi-holeを導入する

Oracle Cloud上のLinuxサーバ(ubuntu18.04)に、DNSベースの広告ブロッカーPi-holeを導入する。

(執筆中)

いよいよスマホから接続

Oralce Cloud上に構築したPi-holeを利用できるよう、スマホ上でのVPN接続設定を行う。

(執筆中)

参考サイト

広告 消すべし 慈悲は無い - 広告ブロックDNSサーバ「Pi-hole」を使う - 駄文にゅうす

VPS+VPN+Pi-holeで広告ブロックする - Qiita

Oracle Cloudを期限なく無料で使える「Always Free」発表 1GBのVM2つ、Autonomous DB2つなど提供 - ITmedia NEWS