4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Pi-hole】バックアップとリストア

Last updated at Posted at 2022-10-05

Pi-holeSBC(NanoPi NEO2)で動かせるようになったので、設定をバックアップしたい。

「"pi-hole" バックアップ」でググっても、Pi-hole での広告ブロックを讃称するだけだったり、インストール方法の記事ばかりだったので、自分のググラビリティとして。

Pi-hole とはローカル・ネットワーク向けの DNS サーバーの一種です。ドメイン名と IP アドレスの名前解決をする際の DNS キャッシュ機能とブロック機能を提供します。詳しくは TS; DR 参照。

TL; DR (今北産業)

  1. バックアップは、Pi-hole の GUI(管理画面)の [Settings] - [Teleporter] - [Backup] ボタンを押すとアーカイブのダウンロードが始まる。
    • 作成されるファイル: pi-hole-<pi-hole のホスト名>-teleporter_<YYYY-MM-DD_hh-mm-ss>.tar.gz
  2. リストアは、同じ画面の [Restore] にある File input でバックアップ・ファイルを指定して、リカバリしたい項目にチェックを入れて [Restore] ボタンを押す。
  3. バックアップのアーカイブ(.tar.gz)に含まれるファイル。
    1. whitelist.exact.json
    2. whitelist.regex.json
    3. blacklist.exact.json
    4. blacklist.regex.json
    5. adlist.json
    6. domain_audit.json
    7. group.json
    8. client.json
    9. domainlist_by_group.json
    10. adlist_by_group.json
    11. client_by_group.json
    12. setupVars.conf
    13. dhcp.leases
    14. custom.list
    15. pihole-FTL.conf
    16. etc/hosts
    17. dnsmasq.d/06-rfc6761.conf
    18. dnsmasq.d/01-pihole.conf

TS; DR (Pi-hole とは)

Pi-hole とは、Raspberry Pi などの SBC でも動かせる、ローカル・ネットワーク向けの DNS サーバーの一種です。ドメイン名と IP アドレスの名前解決をする際の、キャッシュ機能とブロック機能を提供します

ローカル DNS サーバーとして

ネットワーク内で Pi-hole を立ち上げると、クライアント側(ネットワーク内のデバイス側)で Pi-hole を DNS サーバーとして指定できるようになります。

具体的には、クライアント側のネットワーク設定で TCP/IP の DNS サーバーのアドレスを Pi-hole の IP に指定します。すると、クライアントは Pi-hole にドメイン名の名前解決をリクエストするようになります。Google の 8.8.8.8 や、Cloudflare の 1.1.1.1 を指定されたことがある方も多いのではないでしょうか。

また、ルーターの DHCP の設定で DNS も設定できるタイプであれば、クライアント側で設定しなくてもルーター側で設定された DNS が使われるようになります。

初回の名前解決自体は外部の DNS サーバーに問い合わせますが、それらをキャッシュする(外部への通信量が減る)ことで、ローカル・ネットワーク全体の速度向上が期待できます。

hosts サーバーや DHCP サーバーとして

Pi-hole の主な機能は DNS サーバーなのですが、hosts 機能と DHCP サーバー機能も持っています。

hosts 機能とは、簡易 DNS のことです
厳密には、ローカルに保存されているテキスト・ファイル(hosts ファイル)を参照することで外部に問い合わせずに名前解決するもので、どの PC にも実装されています。
例えば自身のマシンにアクセスする際、ホスト名に localhost を使うことがあると思いますが、PC 内の hosts ファイルに 127.0.0.1 localhost という割り当てがされているためです。つまり、hosts ファイルに 127.0.0.1 hoge.fuga という記載をしておくと http://hoge.fuga/127.0.0.1 にアクセスできるということになります。
そして Pi-hole の Local DNS 機能も hosts と同じ機能を提供するものです。

Pi-hole の Local DNS 機能を使うと、クライアントごとに hosts ファイルを設定しなくても同じ要領で名前解決できます。通常の hosts との違いは DNS だけでなく CNAME も指定できることです。

Pi-hole における CNAME はドメイン名(ホスト名)のエイリアス機能です。つまり hoge.com example.com と設定すると hoge.com のアクセスを example.com に転送させることができます。

注意点として、CNAMEhttp 接続の場合のみ正常に動作します。https 接続の転送はうまく動作しません。例えば bing.comgoogle.com に設定しても、SSL/TLS のドメイン証明書が一致しないため、不正なドメインとしてブラウザ側でエラーになります。

また、Pi-hole は DHCP サーバ(IP アドレスの自動割り当て機能)も備えています。

家のルーターの DHCP を外部 DHCP に設定できる場合は、MAC アドレスと IP アドレスの自動割り当てを Pi-hole でできます。ルーター側の静的アドレスの割り当て数が足りなかったり、GUI が使いづらい場合に便利です。

注意点として、同一ネットワーク内に複数 DHCP サーバーは立ち上げられません。IP 設定などのネットワーク設定に慣れていなかったり、DNS・NS・DHCP・NAT といった用語の違いがわからない場合は、Pi-hole を DHCP サーバーとして使うことはオススメしません。

ドメインブロッカーとして

しかし、Pi-hole の 1 番の特徴は、ドメインのブロック機能です。

Block list/Allow list(ブラックリスト、ホワイトリスト)方式で、ドメインの名前解決をさせるか否かを指定できます。

つまり、ブロックリストに記載されたドメインだった場合は、IP アドレスが 0.0.0.0 になるため、そのドメインでは外部サーバーにアクセスできなくなります。

The Firebog などの、有志によるブロック・リストを追加することで、有害と判断された数百万のドメインをブロックできます

ポルノサイトはもちろん、個人情報を抜いたりアクセス履歴をトレースするサイトだけでなく、既知のマルウェアやウィルスをダウンロードさせようとするサイトのドメイン名の名前解決をブロックします。

有志の中には、必要以上に慎重な人もいて Facebook や Amazon などのサイトすらも Block List(ブラックリスト)に入れられているので、必要にあわせて適宜 Allow List(ホワイトリスト)に追加するなどの工夫が必要です。

筆者も、いくら言ってもリンクを踏んじゃう年寄りがいるのでブロックリストを公開しています。参考になれば幸いです。

Pi-hole のメリットとデメリット

メリット

このことから広告ブロックに使われることが多いのですが、一番のメリットは、子供やジッちゃなどのネットリテラシーが低いユーザーがいる環境で抜群の効果があることです。

二番目のメリットは、ネットワーク内からの不審なアクセスやデバイスを発見できることです。筆者は、中華製のフォトフレームがモバイル・ユーザー向けのログ集計サイトに不明なパケットを送っているのを発見しました。どうやら安いぶん、アフィリエイトで稼いでいるタイプのようでした。

三番目のメリットは、ネットワークが若干軽くなることです。これは(ユーザーのトレース情報などを)、知らないところで外部送信しているパケットが送れなくなるためです。

デメリット

とは言え Pi-hole はセキュリティの銀の弾丸にはなりません。デメリットもあります。

まず、ルーターとしての機能はないため、IP 直打ちの場合は効果がありません。また、クライアント側で DNS サーバーを手動で 8.8.8.8 などに設定されると効果はありません。

一番のデメリットは、ある程度のネットワーク知識がないとトラブル・シューティングが難しいことです。

例えば、とあるサイトが認証やユーザー動向の追跡を別の外部サイトに依存しているものの、その外部サイトがブロックされている場合です。

特に、電子決済系のサイトで、「ついでに」ユーザーの動向も取っちゃっているサイトなどは、大抵のブロック・リストに含まれているからです(悪名高い Double Click に飛ばしてからログイン・ページに飛ばすサイトなどは顕著です)。

でもメリットの方が大きい

とは言え「n 分間 Pi-hole を停止させる」(ブロックしない)といった設定も Web UI から簡単にできます。

また、Web UI の Query-log タブを開いた右上にある Search で、自分のマシンの IP アドレスでフィルターすれば自分のマシンがどのサイトにリクエストしたのか確認できます(もちろんログさせない設定もできます)。

このログのページを開いた状態で、正常に動かないページにアクセスしたのち、更新すると、意外なページも一緒にリクエストされて(ブロックされて)いることに驚くでしょう。

Pi-Hole は名の通り Raspberry Pi でも動かせるので、子供や年寄りがいる家庭なら、自身のネットワークの勉強も含めて導入してみるのをオススメします。

児童が多い場所なら、思い切って全てをブロックしておき、リクエストの多いドメインを Allow List(ホワイトリスト)に適宜追加する、という運用もありだと思います。

動作確認環境

  • FriendlyARM NanoPi NEO 2
  • Armbian 22.08.1 (Bullseye with Linux 5.15.48-sunxi64)
  • Pi-hole v5.12.1
    • FTL v5.18
    • Web Interface v5.15
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?