見出し画像

Pi-Holeを用いて自宅ネットワーク全体で広告ブロックする方法

このドキュメントは、Pi-Holeを使って自宅ネットワーク全体で広告をブロックする方法について説明しています。必要なものや手順などが記載されています。DNSシンクホールの仕組みについても簡易に説明されています。

必要なもの

  • 常時起動しているLinuxマシン

  • ルータ(無線LANルータがあるならそれで十分)

手順

Pi-Holeのインストール

Running Pi-Hole within a Docker Container

基本的にはこのページの流れに沿って手順を進めていけば問題なくインストールできます。英語ページですが平易な英語なのでGoogleなりDeepLなりで翻訳すれば全然問題なく理解できると思います。

ざっくりとした手順は以下の通りです。

  • Dockerをインストール

  • docker-composeをインストール

  • docker-compose.ymlファイルを作成

  • Pi-HoleのDockerイメージを取得し、docker-composeで起動

  • ブラウザでhttp://[pi.hole]/adminにアクセスしてセットアップを完了する

Ubuntu上で利用する際の注意ですが、以下の手順を踏まないときちんと動作しません(Update Gravityができない)でした。以下コマンドがそれぞれ何をやっているかについてはhttps://github.com/pi-hole/docker-pi-hole の “Installing on Ubuntu or Fedora” を参照してください。

  1. `sudo sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf`

  2. `sudo sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf'`

  3. `systemctl restart systemd-resolved`

Pi-Holeの設定

Pi-Holeのインストールが終わったら、https://dabun.net/md/pi-hole/#pi-hole-setting-blocklist を参照しつつ以下の手順を踏みます。

  1. 上位DNSサーバの設定(Googleでも良いしINSから提供されてるDNSでもいいけど、OpenDNSにしとくとOpenDNS側でアダルトサイトとか詐欺サイトを引っ掛けることができるので良い)

  2. Adlistの追加

  3. Update Gravity

  4. Pi-HoleをDNSサーバとして参照するように構成

    1. 単一PCであれば”Client DNS Setting for IPv4”に沿って設定すればよし

    2. ルータのDHCPサーバから家中の全機器にPi-Holeを参照するよう指示する場合は、お手持ちのルータの説明書を読みつつ”DHCPサーバ”の設定の中の”プライマリDNS”の値をPi-HoleのDNSサーバに置き換えればOK。必ずPi-Holeが正常に動作していることを確認してからやること。さもないと家中の全てのPC・スマホがネットに繋がらなくなるという重大インシデントに繋がる。

これで、広告ブロックが適用されているはずです。Pi-Holeの管理画面で刻一刻とブロック情報が見えていればOKです。

まとめ

ここまで、Pi-Holeを使って自宅ネットワーク全体で広告をブロックする方法について説明しました。Pi-Holeをネットワーク内に設置・設定することで、LAN内の全端末で広告をブロックすることができます。広告が配信される前にネットワークトラフィックをブロックするため、ネットワーク速度を向上させる効果も期待できます。

また特に文中では説明しませんでしたが、ブロック対象にアフィリエイトリンクの配信ドメインやフィッシングサイトのドメイン、その他アクセスすることが不適当と考えられるサイトのドメイン一覧をブラックリストに登録することで、それらの有害サイトへの意図しないアクセスも回避できる可能性があります。若干ハードルの高い内容ではありますが、それに見合ったメリットもありますので試してみてください。

余談

Pi-HoleはDNSシンクホールと呼ばれるものの一つになります。

インターネットを利用する際は、ドメイン名 (例えばnote.comなど)をIPアドレス(000.000.000.000 の形式の数値、インターネット上の場所情報)に置き換える仕組みを使っており、この仕組みを提供するサーバをDNSサーバと呼びます。

DNSシンクホールはDNSサーバのように動作しますが、既知の有害サイトのドメインについては0.0.0.0などの無効なIPアドレスを応答したり、応答を返さなかったりすることで有害サイトへのアクセスをブロックします。

設定は簡単ですが、端末側から個別にDNSシンクホール以外のDNSサーバを参照するような設定を上書きすることで簡単に回避できます。

DNSシンクホールを導入することで一般的なウェブブラウジングは快適になりますが、一方でアフィリエイトリンクをたくさん載せたまとめサイトをよく使う方や、ハ◯タスなどのポイ活サイトを多用する方にとっては、これらサイトが軒並み機能しなくなるのでフラストレーションが溜まるかもしれません。なのでネットワーク内にこれらを多用する方がいらっしゃる場合は導入時に何をブロック対象とするかよく精査いただき、ホワイトリストで対応するか特定端末だけはDNSシンクホールを参照しない設定とするかについて各自ご判断ください。

※ この記事はNotion AIの練習のためにNotion上で書いたものになります。

この記事が気に入ったらサポートをしてみませんか?