【RaspberryPi】LAN内全部広告ブロックできるPi-holeを構築する

2024年04月21日
 
2024年04月21日

みなさんこんにちは、ゆーろんです。
今回はLAN全体を広告ブロックできるDNSサーバであるPi-holeをRaspberrypi zero 2 Wを用いて構築してみましたので、その手順を紹介したいと思います。

これによりサイトに表示されるバナー広告などが表示されなくなることが見込めます。
なお残念ながらYoutubeの広告はアルゴリズムが特殊なため広告ブロックはそのままではされません。
とは言っても通常のサイトは快適に見れるようになるのでLAN自体で広告ブロックをするのはよい選択だと思います。
クライアントのブラウザに個別に広告ブロックの拡張機能を入れる必要もなくなります。

今回の記事では主に構築方法と簡単な設定方法を紹介していきたいと思います。

構築環境

筆者の構築では以下機材を用意しました。

  • Raspberry Pi zero 2 W
  • microSD Card 16GB以上
  • USBtype-b LAN コネクタ
  • Raspberry Pi zero 2 wケース
  • 電源ケーブル

USBtype-b LAN コネクタ を用意した理由は有線経由でLANに接続するためです。
WIFI経由でも接続できますが有線の方が安定しやすいと言えます。

Pi-holeのインストール

Pi-holeは、Raspberry Pi OS liteに追加でインストールする形になります。
Lite版はGUIがありませんので、基本的はコマンド操作になります。
他のPCからSSHで遠隔接続すると楽に操作できます。

プロフィール画像

ぺんろん

Raspberry Pi OS liteに設定するユーザ名は「Pihole」以外にしてね~。
さもないと競合しちゃうよ!

Raspberry Pi ImagerでRaspberry Pi OS liteをmicroSDカードに書き込んで起動する形になります。
筆者の場合設定は以下のようにしました。

microSDカードにOSをインストールできたら、Raspberry Pi zero 2 wにセットしてLANに接続します。
このとき、インストールした際の設定でIPアドレスを固定化しておくと接続が楽です。
固定化を忘れた場合はWEBからルータ設定に入ってクライアントリストを確認すると良いでしょう。

PowerShellやTeraTermなどでSSH接続します。

ssh <ユーザ名>@<IPアドレス>

接続を終えたら以下コマンドでOSやソフトウェアの更新を行います。

sudo apt update && sudo apt full-upgrade

そしたら次のコマンドでPi-Holeをインストールします。

curl -sSL https://install.pi-hole.net | bash

質問が出ますのでcontinueやYESなど選択して進めてください。
アップストリームDNSプロバイダをリストから選ぶ設定が出た場合は8.8.8.8や8.8.4.4を選択するのが無難です。
これはGoogleの有名なパブリックDNSサーバのIPアドレスです。

インストールが終わると、CUI上にWEB UIのパスワードとIPアドレスが表示されるのでメモしておきます。

Pi-hole – Network-wide Ad Blocking

DNSの指定

Pi-HoleのDNSを利用するための設定は主に2つあります。
1つ目はクライアントのDNSサーバに直接Pi-Holeのアドレスを設定する方法。
2つ目はルータのLANのDNSサーバにPi-Holeのアドレスを設定する方法です。

お好きな方で設定するといいと思います。
筆者は個別設定が大変なので後者で設定を行いました。

WEB GUIの設定

WEB GUIにログインすると以下のように表示されます。
なお画像はすでに数字が表示されていますが、初期状態だと0で表示されます。

設定上の注意点

DMZにPiHoleを設定している場合

DMZのネットワークにPi-Holeを設定している場合、そうでないネットワークからDNSのリクエストを受け取ってもデフォルトでは拒否するような設定になっています。

この場合、左メニューから「Setting」→「DNS」→「Interface settings」でBind only to interface eth0をONにする必要があります。これで内部LANからDMZに置いたPi-holeにDNSリクエストを送っても応答してくれるようになります。

ローカルDNSを設定する

ローカルDNSは自宅LANに設置したサーバをドメインでアクセスできるようにする仕組みです。
これによりIPアドレス直打ちではなく、ドメイン名(.local)でサーバにアクセスすることができます。

設定は左メニューから「Local DNS」→「DNS Records」から可能です。

よろしければシェアしてくださいね!
タグ: RaspberryPi

関連記事