インターネットを閲覧したり、モバイルアプリを使用したりするたびに、広告が大量に表示されてうんざりしていませんか?そんなあなたには、Pi-holeという素晴らしい解決策があります。これは基本的にスマートなDNSフィルターとして機能します。何より素晴らしいのは、自宅のすべてのデバイスに何もインストールする必要がないことです。このシステムはネットワークの中核部分で動作し、不要なコンテンツが画面に到達する前に傍受してブロックします。
このシステムを構築する上で、現時点で最も賢明な選択肢はDockerを使用することです。Pi-holeをコンテナ内に配置することで、コンピュータのオペレーティングシステムが煩雑になるのを防ぎ、アップデートを非常に簡単にし、 Raspberry Pi、古いサーバー、あるいはUbuntuやDebianを実行している仮想マシンなど、どのようなハードウェアであっても、サービスの競合を起こすことなく最大限に活用できます。
前提条件とサイト準備
詳しく見ていく前に、Pi-holeは非常に軽量であることを覚えておきましょう。スムーズに動作させるには、約512MBのRAMと2~4GBのディスク容量があれば十分です。オペレーティングシステムに関しては、Debian、Ubuntu、Fedora、Raspberry Pi OSなど、systemdまたはsysvinitを使用するディストリビューションで問題なく動作します。
重要なポイントはネットワークです。システムを安定させるには、Pi-holeに固定IPアドレスが必要です。サーバーを手動で設定するのが面倒な場合は、ルーターでIPアドレスを予約して、コンテナをホストするコンピューターに常に同じアドレスを割り当てるように設定できます。
Dockerを使用してPi-holeをデプロイする
最も簡単な設定方法は、docker-compose.ymlファイルを使用することです。この方法を使えば、すべての設定を一度に定義できます。コンテナイメージを更新しても設定やブラックリストが失われないように、ボリューム(/etc/pihole や /etc-dnsmasq.d など)をホスト上のローカルフォルダにマッピングすることが重要です。
設定ファイルでは、ポート番号に注意してください。ポート53はDNSの中核となるポートであり、空いている必要があります。コンテナが起動しない場合は、systemd-resolvedまたはdnsmasqがホスト上でそのポートを使用している可能性があります。その場合は、競合するサービスを無効にするか、トラフィックをリダイレクトするブリッジを設定する必要があります。
Pi-holeをDHCPサーバーとしても使用する場合は、 composeファイルのcap_addセクションにNET_ADMIN機能を追加することを忘れないでください。また、接続の問題を回避するために、できればホストネットワークモード(network_mode: host)を使用してください。
初期設定とアクセス管理
コマンドを実行すると docker-compose up -dシステムは稼働中です。コントロールパネルにアクセスするには、割り当てたポート(デフォルトでは80ですが、他のWebサーバーとの競合を避けるために8080または89に変更することもできます)を介してサーバーのIPアドレスに接続してください。環境変数にパスワードを設定していない場合は… ウェブパスワードシステムはランダムな値を生成します。その値は、コマンドを使用してログを確認することで見つけることができます。 docker logs pihole | grep random.
セキュリティ強化のため、パスワードは速やかに変更することをお勧めします。コンテナターミナルには、以下の方法でアクセスできます。 docker exec -it pihole /bin/bash そして、コマンドを実行します pihole -a -p 自分にとっては覚えやすく、他人にとっては覚えにくいパスワードを設定する。
アップストリームフィルタリングとDNS最適化
Pi-holeが認識できないアドレスに対して問い合わせ先を認識できるようにするには、アップストリームDNSサーバーを設定する必要があります。非常に信頼性の高い選択肢としてQuad9があります。DNS設定タブで、Quad9のフィルタリングされたサーバー(例:9.9.9.9)を選択するだけで済みます。これにより、ブラウジングのセキュリティとプライバシーがさらに強化されます。
Pi-holeの核となるのはブロックリストです。しっかりとしたリストを使いたい場合は、StevenBlack氏のリストを追加できます。SQLite3でエントリを削除したり、新しいURLを追加したりするなど、リストを変更した場合は、必ず「ツール」から「Gravityの更新」を実行してデータベースを更新し、変更を反映させるようにしてください。
高度なヒント:ローカルドメインと管理
自宅で複数のサービスを利用している場合は、 ローカルドメイン名 IPアドレスを記憶する必要がないようにするには、次のファイルを作成します。 local.list マウントされた Pi-hole ボリューム上で、IP アドレスとドメインの形式を定義します。次に、そのリストを参照する dnsmasq の設定ファイルを作成し、コンテナを再起動します。
ウェブサイトにアクセスせずにシステムを管理するには、ホストから実行できる非常に便利なコマンドがあります。たとえば、ドメインをブラックリストに追加するには、`pihole -b mydomain.com`を使用します。また、フィルタリングを一時的に10分間無効にするには、 `pihole disable 10m`を使用できます。これは、正当なウェブサイトが誤ってブロックされた場合に非常に便利です。
控えめなハードウェアとDockerの柔軟性を組み合わせ、ポート53が空いていることを確認し、ボリュームを適切に構成してデータを永続化することで、ホーム広告の制御は十分に可能です。ルーターのDNSを調整し、Gravityリストを最適化すれば、すべてのデバイスでよりクリーンで高速なネットワークを享受できます。
