Re:シルの日々の戯言。

散財が生き甲斐になりかけている、デジタルガジェット大好き自称黄色いネズミの戯言。

広告ブロックDNSサーバのPi-holeを試験的に入れてみた

在宅勤務だからと割と私用をやりたい放題やっている気がしなくは無いのですが、その割には戯言日記の更新本数が過去最低レベルなのは何でだろう?*1
ちなみに、どうやら異動までは在宅勤務になりそうなので、もう少しの間は時間のある過ごし方となりそうです。

閑話休題、2020年に入ってからですが、広告ブロックツールに大変興味を持っています。特に手元で余っているRaspberry PiDNSサーバとして動作するタイプの広告ブロックツールであるPi-holeに大変興味を惹かれています。

以前から駄文にゅうすさんで紹介されていたツールで、近頃のビビッドアーミーの広告のあまりの酷さ*2から職場PCにADBlockerを導入したら思った以上に快適だったので、自宅環境下でも広告ブロッカーの導入を考えていました。
dabun.net

コロナ騒ぎでテレワークとなった上、実は異動直前で元々割り振られた作業が少ないこともあり、時間に余裕がある今のうちに少し触れていこう・・・と思った次第です。

アソシエイト貼ってる身分で広告ブロックするのか?

この戯言日記ではAmazonさんのアソシエイトを貼っているため、自分は広告を貼っ付けているのに人様の広告は(駄文にゅうすさんのタイトルを借用して)「広告消すべし、慈悲は無い!」とブロックするのか?」とツッコミと言うか、道義上は広告を消すべき立場では無いのは重々承知している・・・つもりです。
・・・が、ビビッドアーミーの広告があまりに見苦しすぎるので「慈悲は無い」と切り捨てます。正直、ビビッドアーミーの広告が酷くなければ広告ブロッカーを導入する必要は無い・・・とまでは言いませんが*3ビビッドアーミーは(自らえっちぃ要素を求めていない状況下で)汎用的に不健全でPTA大激怒な広告を打ちまくっているので個人的には特に目立って印象が悪く、また個別に広告をブロックする方法が無いようなので、広告ブロッカーで根絶させる方向としました。

ちなみに、紹介・・・と言うか手順丸投げでPi-holeを導入してもAmazonアソシエイトはブロックされないようなので、ある程度はWeb運営者に優しい広告ブロックに仕上がっている・・・ようです。・・・まぁやり方次第では(Amazonアソシエイトも)ブロック可能とは思いますが、あまりに酷い広告で無ければ中の人のやる気のためにも多少の慈悲はお願いしたい所存です・・・。

導入でハマった点

Pi-holeの導入は、基本的には駄文にゅうすさんの記事をよく読めばなんとかなりますし、Raspberry Pi使うならば特に苦労することはありません・・・が、変なところでハマった部分がいくつかあったので戯言として残すこととします。

  • 使い古したmicroSDは辞めとけ。
    • 手元に2枚ほど余っているmicroSDがありましたが、いつ購入したのか覚えていないレベルだったこともあり、壊れてました。*4
      • イメージファイル書き込もうとしたら書き込めず、読み取り専用でしか認識されず・・・が1枚目。
      • イメージファイルを書き込んでRaspberry Piで起動させて初回の再起動時に書き込みが不能になり、以降動かず読み取り専用でしか認識せず・・・が2枚目。
    • 結局泣きながら秋葉原あきばおーで買ってきた・・・ので、少なくともいつ買ったのか覚えてないようなmicroSDは使い回さない方が無難。

  • rootパスワードをデフォルトから変えておかないと導入失敗する?
    • 前提条件としてOSアップデートで最新化・IPアドレス固定化・rootパスワード変更の3つがあるのですが、rootパスワード変えずにPi-holeを導入したらDNS周りの設定変更中にコケた上、中途半端にDNS周りの設定を変更したらしくマトモに動かなくなった。
      • 直せなくは無いと思うけど、まだ導入直後なのでイメージ焼き直しで対応した。
    • イメージ焼き直して、rootのパスワード変更してリトライしたら上手く行ったので、多分前提条件満たしてないとコケる・・・と判断した。*5
  • SSH経由で作業している場合、「V(チェックマーク)」が「?」と表示されて「ん???」となる。
    • 多分Raspberry Pi上のコンソールで表示させると「V」と表示される項目がTeraTerm経由でコンソール表示でやっていると「?」と表示されて、「参考サイトと表示が違う!!!11」と一人勝手にパニクりました。*6
    • まぁ、アレですね。これは粋がってSSH経由で操作せず、素直にRaspberry Pi上のコンソールでやれってことですね・・・。

ルーター側の設定

クライアント側でDNSサーバを直接指定しても良いのですが、DHCP経由でIPアドレスをばら撒いている環境下なのでルーター側からDNSサーバをばら撒いてくれるようにします。そうすることで自宅以外のネットワークに接続した場合の手間が無くなります。*7

そんな訳で、手持ちのYAMAHA RTX1200に以下のコマンドをぶち込みました。

ヤマハ ギガアクセスVPNルーター RTX1200

ヤマハ ギガアクセスVPNルーター RTX1200

  • 発売日: 2008/10/30
  • メディア: Personal Computers

dns server xxx.xxx.xxx.xxx(Raspberry Piに設定した固定IPアドレス)
dns notice order dhcp server me

前者はDNSサーバの指定で、Pi-holeを突っ込んだRaspberry Pi固定IPアドレスを設定します。
後者はDNSサーバの優先度設定で、DHCP経由で配信されるIPアドレスについてdns serverで指定したDNSサーバを優先DNSルーター自身をセカンダリとして設定する・・・と言う意味らしい。若干自信無い・・・けど、YAMAHAのリファレンス見る限りそんな感じですし、実際問題機能しているっぽいので暫定設定としてはこれでヨシとしましょう。
http://www.rtpro.yamaha.co.jp/RT/manual/vrx/dns/dns_notice_order.html

この設定を打ち込んだ以降、DNSサーバとしてPi-holeをインストールしたRaspberry Piを経由するようになり、実際に広告ブロッカーとして機能し始めます。

どのくらい効くか

早速動かしていますが、割と効果絶大な気がします。
ログを取り始めて一晩運用した状態では、約3割くらいは不必要な通信と判断されてブロックされている状況です。・・・試験的にBlocklist追加・削除したりしているので若干怪しい部分はありますが、アクセスするWebサイト次第では半分くらいはブロックされてると表示されるので、かなりの割合を広告配信にトラフィックを食われてしまっているようです・・・。
f:id:sylvester:20200324100524j:plain

当初の目的であり、ビビッドアーミーの不快な広告は消えてくれました。・・・他の広告も消えてスッキリした一方、広告で収益を出している多くのサイトからすれば大問題だよなぁ・・・と思ったり思わなかったり・・・。

ちなみに、デフォルト(駄文にゅうすさん記事)のブロックリスト適用状態では少なくともAmazonアソシエイトのリンクには影響無さそうなので、個人的には勝手に一安心しています。*8

一方、ア*バBlogさんやにゅ*あき*どっ*こむさんなどのエロ広告多めのサイト*9ではあまり効果は無いようで、エロ広告満載は変わらずでした。

Blocklistを追加したり、Blacklistに追加すれば行けなくは無いかも知れませんが、非常に多くのBlocklistが含まれるとあるデータを利用したところYahoo! Japanの表示に(広告以外にもCSS辺りも全部拒絶されているのが原因か)支障をきたしたので、とりあえずは駄文にゅうすさんトコに掲載されているBlocklistに抑えておくことをオススメします。・・・別にYahoo! Japanなんて絶対見ねーよ!って人は、「Internet's #1 domain blocklist」でぐぐるのです!*10

ちなみに、えっちぃサイトでの効果を確認するべく突撃してみましたが、怪しげは広告は除去出来ていましたので当初も目標以上の成果は得られました。・・・いや、普段からえっちぃサイトを熱心に見ることはしてませんよ!本当ですよ!!!11

Pi-hole導入の副作用

広告ブロックを導入して、何らかの副作用が出ていないか確認するべくWebサイトやスマホアプリをポチポチしてみましたが、現時点で私の利用する環境下では問題は発生していないようです。

通常のWeb閲覧観点では、本来広告が表示されていたであろう部分が空白になることはありますが、(徹底的なBlocklistを読み込ませない限りは)表示に支障をきたすような問題は出ていません。
DNSサーバでブロックしている関係上、自宅内の環境下であればスマホタブレットアプリも広告が表示されているであろう項目が空白として表示されるので、利用者目線では今の所問題となる挙動は見受けられません。*11

ただし、まだ試験運用中なので何らかの問題が発生するかも知れません。戯言日記のネタにするかどうかは別として、もしPi-holeを導入した場合、当分の間は頻繁に利用するWebサイトやアプリの挙動に注意を払う必要があります。

接続元IPアドレスルーターアドレスとして認識される?

ルーター側でDNSサーバを指定している・・・と言うか、DHCP経由でDNSサーバも配布するような設定を仕込んだつもりですが、Pi-hole Dashboardに表示されるClients(接続元のIPアドレス)が正しく認識されていないっぽい雰囲気ががが・・・。

私の自宅内環境では一部のPC(ゲーミングNUCやHyper-Vサーバ、VPN経由で侵入した際の踏み台サーバ替わりのクライアントの3台)は固定IPアドレスにしている都合上、DNSサーバも手動設定しているので正しく認識されていますが、他のDHCP経由でIPアドレスを受ける端末(含むスマホタブレット)は、再起動してもルーターIPアドレスDNSサーバとして認識しているっぽい雰囲気。・・・これ、正しくDNSサーバ情報が割り振られず、一旦ルーターを経由してPi-holeに問い合わせを投げて、外に出てるっぽい雰囲気?

一応ルーター自体はDNSサーバとしてPi-holeを認識しているので個人環境下では問題は無いのですが・・・、・・・うーん、これはテレワークの空き時間帯をYAMAHAルーターのコマンドリファレンス辺りとのにらめっこに使うことになりそう・・・かな?*12

このまま本格導入か、ハード変えるか

今のところは不快な広告は大体排除されつつも、コンテンツの閲覧に支障はないのでいい感じです。
DNSサーバとして動作しているのでPCやスマホ側で余計なアプリや設定を加える必要もなく、一律設定が適用されるので(導入時の手間は別として)運用に入ってしまえば手間はありません。・・・まぁPi-holeのBlocklistや(Pi-holeを動かしている)Raspbian自体の定期的なアップデートは必要ですが、少なくとも一般家庭で使う程度ならばRaspberry Piでも性能面で不便はありません。企業などの大規模ベースになると(Raspberry Piでは)リソース不足が懸念されますが、少なくとも無駄にガジェットが多い(PC/スマホ/タブレットで思いつくだけで10台オーバーの)*13シルベさん宅では問題はありません。

このまま試験的に入れたPi-holeを本格導入としてしまっても構わないですし、思い切ってRaspberry Pi 4買ってきて性能面で底上げさせても良いですし、少し悩ましい部分です。

今の使い方ならば旧モデル(3B+)でも事足りますが、何やら新モデル(4B)のRAM2GBがお値打ち価格らしいのでPi-holeのために*14買っちゃってもいいかなぁ・・・と思い始めたりしたりしなかったり。まぁ、気が向いたら・・・と言うか、コロナ騒ぎが落ち着いて外出することが可能になる頃合いにまた考えるとしましょ・・・。

*1:そりゃ大掃除に近いレベルで掃除してたり、洗濯を通常以上に頑張ったりしてるからねぇ・・・。仕事の合間に家事が出来るって素敵。

*2:最近は抑え気味になっている気がしなくはないが、依然とアダルト広告同然なので積極的にブロックする所存です。

*3:チョットえっちぃ広告は他にもありますし、本当にえっちぃサイトとか見ると酷い広告の出し方をする事例も数多くありますが、所構わず出現するビビッドアーミーは「広告、消すべし、慈悲は無い。イヤーッ!」であります。

*4:64GBのmicroSDを別用途で使ってて、そのカードはそのまま使いたいので別途手持ちで余ってる32GBのmicroSDを転用しようとしたら・・・。つーか、2枚とも駄目だったとは・・・。

*5:細かい原因調査は今回はパスします・・・。個人のお遊び環境で、仕事で本格的に導入する訳では無いですし・・・。

*6:文字化けと言うか、記号を表示出来ずに?に置換されただけかと・・・。

*7:クライアントのDNSサーバを切り替えるツールも存在するようですが、私は基本的に面倒臭がりなのと、(様々な人々で利用実績があったとしても)変なツールは入れたくないので、ツール入れて解消を目論むことは毛嫌いしています。

*8:いえ、たまに人様のアソシエイトリンク経由で漫画買ったりしているので・・・。

*9:ただ単に昔から巡回しているサイトさんで、エロ広告多いなぁ・・・と思ってるだけで、他意はありません。

*10:このBlocklist使うとア*バBlogさんのエロ広告は滅殺出来ます・・・が、にゅ*あき*どっ*こむさんのエロ広告は除去出来ません。見るとえっちぃ広告画像を自サーバ上に格納しているみたいです。

*11:主にFeedlyでフィード情報を閲覧しつつ、SmartNewsGunosyのニュースアプリでニュース確認、テレワーク中の昼休みの時間帯にニコニコ漫画アプリで漫画何かも見ましたが、問題なく広告以外の部分は表示されています。

*12:少しログベースで調べてみるとAndroidスマートフォンはちゃんと受けたDNSサーバ(Pi-holeサーバ)を使っているっぽいので、我が家でメインのApple製品(macOS/iOS/iPad OS)の仕様なのか、私のツメが甘いだけなのか・・・。

*13:但し同時利用はどんなに頑張ったとしても2~3台(PC/スマホ/タブレット)で、目につくガジェット全て同じタイミングで通信と言うのはありません。

*14:せっかく買うなら4Bの4GBモデル・・・と思いつつ、結構良いお値段だったので躊躇している件について。