Pi Holeで広告をブロックする方法

ノートパソコンを使っている人の写真.

Pi-Holeは、ネットワーク上の任意のデバイスで広告を遮断するネットワーク全体の広告ブロッカーです。数千の広告配信ドメインのリストをターゲットにし、そのコンテンツをブラックホールに送信して視界から取り除きます。追加のソフトウェアなしで、ネットワークに接続されている任意のデバイスで機能します。モバイルデバイスのアプリでも動作し、帯域幅の使用を減らし、パフォーマンスを向上させます。このチュートリアルでは、LinuxマシンでPi Holeを実行する方法を示します。

目次

  • Pi-Holeとは?
  • Pi-Holeのインストール
  • Pi-Holeの更新
  • カスタムDHCPサーバーの設定
  • Pi-Holeでのカスタムブロックリストの作成
  • よくある質問

知っておくと良いこと: AdBlockとAdblock Plusの違いと、どちらを使用すべきかを確認してください。

Pi-Holeとは?

Pi-Holeは「インターネット広告のブラックホール」と自称しています。これは、すべてのアウトバウンドサーバーリクエストを内部ブロックリストに対して実行することで機能します。これを実現するには、Pi-HoleをDNSサーバーとして設定する必要があります。これにより、アドレス解決リクエストを処理し、要求された情報のIPアドレスを表示できるようになります。その結果、特定のアウトバウンドリクエストをIPアドレスに基づいて選択的にミュートすることができます。

Pi-Holeウェブサイトのヘッダーのスクリーンショット.

Pi-Holeがブロックリストに一致する接続リクエストを検出すると、そのリクエストが広告サーバーまたは宛先に到達するのをブロックします。ブロックリストには10,000以上のドメインがあり、リクエストがサーバーに到達するのを防ぎます。広告はダウンロードされないため、帯域幅が節約され、接続速度が向上します。

Pi-Holeは広告をブロックするだけでなく、ネットワークをさまざまなWebベースの攻撃ベクターから保護することもできます。このシステムには、Pi-Holeの操作を監視および監査するための堅牢なWebベースのポータルも含まれています。

さらに、これらすべてが無料でオープンソースです。オープンソースでないのは名前とロゴだけで、これは商標として登録されています。

Pi-Holeのインストール

Pi-HoleはほぼすべてのLinux対応デバイスで実行できますが、プログラムの開発者は以下のディストリビューションを公式にサポートしています:

  • Raspbian: Buster / Bullseye
  • Ubuntu: 20.04 / 22.04 / 22.10
  • Fedora: 36 / 37
  • Debian: 10 / 11
  • CentOS Stream: 8 / 9

以下の手順に従って、Ubuntu 22.10デスクトップマシンにPi-Holeをインストールします。

  1. ターミナルを開き、以下のコマンドを実行してソフトウェアをインストールします:
curl -sSL https://install.pi-hole.net |bash

Pi-Holeのインストールプロセスを示すターミナル.

注意: curlコマンドをbashにパイプしているため、少し不安になるかもしれませんが、これは危険です。ソフトウェアが悪意のあるものでないことを確認したい場合は、Pi-Holeのソースコードを確認してください。また、Pi-HoleのGithubリポジトリから手動でソフトウェアをインストールすることもできます。

  1. インストール後、ルーターの設定ページでPi-HoleをDNSサーバーとして設定します。

ルーターのDNS設定ページのスクリーンショット.

Pi-HoleのIPアドレス(例: 192.168.68.53)をネットワーク上の唯一のDNSサーバーとして設定します。他のDNSサーバーはゼロに設定してください。

新しく設定したDNSサーバーで、Pi-Holeの設定は完了です。これで、ネットワーク上の任意のデバイスで広告をブロックし始めます。Pi-Holeの設定を調整するには、ネットワーク上でhttp://pi.holeにアクセスしてください。

Pi-Holeのデフォルト画面のスクリーンショット.

ヒント: ネットワーク上のマシンがすぐにPi-Holeを使用しない場合があります。Linuxでこれを修正する方法を学ぶには、マシンのDNSキャッシュをフラッシュしてください。

Pi-Holeの更新

  1. Pi-Holeを更新する最初のステップは、マシンのコンソールにアクセスすることです。これを行うには、マシンの物理キーボードを使用するか、SSHを使用してログインします:
  1. 中に入ったら、次のコマンドを実行します:
pihole -up

Pi-Holeの更新プロセスを示すターミナル.

  1. 新しい設定とバイナリを適用するために、マシンを再起動します:
sudo reboot

カスタムDHCPサーバーの設定

Pi-HoleはネットワークのDNSサーバーとして機能するだけでなく、DHCPを使用してマシンにIPアドレスを割り当てることもできます。これは、ネットワークを使用できる新しいデバイスの数を制御したい場合に役立ちます。

  1. ルーターのDHCPサーバーを無効にします。これはDNSの設定と似ており、使用しているルーターによって手順が異なります。

ルーターのDHCPサーバーが無効になっているスクリーンショット.

  1. Pi-HoleのWeb設定ページに移動します。

Pi-Holeのダッシュボードのスクリーンショット.

  1. ページの左サイドバーで「設定」カテゴリをクリックします。

「設定」カテゴリにハイライトされたダッシュボードのスクリーンショット.

  1. DHCPタブをクリックします。

「DHCP」タブにハイライトされた「設定」ページのスクリーンショット.

  1. 「DHCPサーバーを有効にする」チェックボックスをクリックします。

「DHCPサーバー」チェックボックスにハイライトされた「DHCP」タブのスクリーンショット.

  1. 「IPv6サポートを有効にする(SLAAC + RA)」をクリックして、ローカルマシンにIPv6アドレスも割り当てます。

「IPv6サポート」にハイライトされた「高度なDHCP設定」のスクリーンショット.

  1. 「配布するIPアドレスの範囲」サブカテゴリの下の「To」テキストボックスを選択します。

「To」テキストボックスにハイライトされた「DHCP設定」のスクリーンショット.

  1. 「To」テキストボックスの内容を、DHCPが配布する最後のIPアドレスに置き換えます。私の場合、この値を「192.168.68.251」に設定すると、ネットワークを使用できるクライアントの数が50に制限されます。

新しい「To」値にハイライトされた「DHCP設定」のスクリーンショット.

ヒント: Pi-Hole以外にも、Edgeブラウザで広告をブロックできます。

Pi-Holeでのカスタムブロックリストの作成

Pi-Holeは、開発者によって管理されている中央のブロックリストを使用しています。このアプローチにより、プログラムは新しい悪意のあるドメインがオンラインになるとすぐにそれを迅速に含めることができます。また、カスタムブロックリストに独自のドメインを追加することもできます。

  1. Pi-HoleのWeb設定ページに移動します。

ダッシュボードのスクリーンショット.

  1. ページの左サイドバーで「ドメイン」カテゴリをクリックします。

「ドメイン」カテゴリにハイライトされたダッシュボードのスクリーンショット.

  1. 「ドメイン」テキストボックスを選択し、ブロックしたいドメインを入力します。

「ドメイン管理」ページのスクリーンショット.

  1. 「ブロックリストに追加」ボタンをクリックします。

「ブロックリストに追加」にハイライトされた「ドメイン管理」ページのスクリーンショット.

  1. これにより、アドレスがマシンの内部ブロックリストに追加されますが、アドレスに存在するサブドメインやサブディレクトリは含まれません。これは、ネットワークでサイト全体の読み込みをブロックしたい場合に問題になる可能性があります。これを修正するには、ドメインサブページで「正規表現フィルター」をクリックします。

「正規表現フィルター」タブにハイライトされた「ドメイン管理」ページのスクリーンショット.

  1. 「正規表現」テキストボックスをクリックします。

フィルターテキストボックスにハイライトされた「正規表現フィルター」ページのスクリーンショット.

  1. ドメインを正規表現形式で記述します。たとえば、次のテキスト行は「example.com」のすべてのサブドメインとバリエーションをブロックします。
^.+example.+\.[a-z]+$

例のドメインを使用した正規表現フィルターのスクリーンショット.

  1. 「ブロックリストに追加」をクリックしてカスタムリストを適用します。

「ブロックリストに追加」ボタンにハイライトされたスクリーンショット.

知っておくと良いこと: 正規表現はブロックリストを作成する方法以上のものです。正規表現の基本構文とその高度な機能をチートシートを使用して学んでください。

よくある質問

既存のPi Holeインストールを再構成することは可能ですか?

はい。これを行うには、Pi-Holeのマシンコンソールにログインし、pihole reconfigureを実行します。これにより、初期設定プロセスが再実行され、Pi-Holeのすべてのパッケージ、スクリプト、および依存関係が再インストールされます。

ウェブブラウザを使用せずにPi-Holeを確認することは可能ですか?

Pi-Holeの開発者はウェブブラウザでの動作を想定して設計しましたが、コンソールを使用して簡単な概要画面を印刷することもできます。次のコマンドを使用してPi-HoleのTUI画面を実行できます: pihole -c -e

ドメインがPi-Holeによってブロックされているかどうかを調べることは可能ですか?

はい。これを行うには、マシンのコンソールに入り、クエリサブコマンドを使用します。たとえば、pihole -q -exact -all malicious.example.comを実行すると、「malicious.example.com」のインスタンスを含むすべてのブロックリストが印刷されます。

画像クレジット: Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。