😽

OpenWrt 22.03のadblockに豆腐フィルタを適用する

2023/01/26に公開

はじめに

あまり前置きはせずに、本記事を執筆時点で最新のOpenWrt 22.0.3.3のadblock 4.1.5に豆腐フィルタを適用する手順です。

豆腐フィルタの場所

現時点では作者の方はこちらでメンテを行っているようです。

https://github.com/tofukko/filter

実際のフィルタファイルは以下です。

https://raw.githubusercontent.com/tofukko/filter/master/Adblock_Plus_list.txt

commitのログを見ると、日々更新して頂いているようで、非常に心強いですね。

adblockのルール追加手順

公式ドキュメントを読みます。

https://github.com/openwrt/packages/tree/master/net/adblock/files

「Edit, add new adblock sources:」の章をみると以下の手順で行うらしいです。

  • /etc/adblock/adblock.sources.gzを解凍したものを別名(/etc/adblock/adblock-add-tofu.sources)で保存
  • 別名で保存したファイルに新しいエントリ(今回は豆腐フィルタ)を追加
  • jsonファイルを圧縮して、uciの設定adb_srcarc, adb_srcfileを変更

元の /etc/adblock/adblock.sources.gzを書き換えるとパッケージアップデート時に上書きされてしまうので、こうしましょうとの事です。

具体的な操作手順は以下の通りです。

cd /etc/adblock
zcat adblock.sources.gz > adblock-add-tofu.sources

ここで、viなどでadblock-add-tofu.sourcesを開き、1行目と2行目の間に以下のコードを追加します。

        "tofu": {
                "url": "https://raw.githubusercontent.com/tofukko/filter/master/Adblock_Plus_list.txt",
                "rule": "BEGIN{FS=\"[|^]\"}/^\\|\\|([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+\\^(\\$third-party)?$/{print tolower($3)}",
                "size": "XL",
                "focus": "Japanese ADS",
                "descurl": "https://github.com/tofukko/filter"
        },

こちらは以下の方の設定を参考にしました。Adblock_Plus_list.txtの本日時点のサイズは199KBでしたので、size=XLで登録します。

https://goozenlab.github.io/blog/2020/06/openwrt-japanese-filter-adblock/

続きの実行例です。

gzip adblock-add-tofu.sources
uci set adblock.global.adb_srcarc='/etc/adblock/adblock-add-tofu.sources.gz'
uci set adblock.global.adb_srcfile='/tmp/adb_sources-add-tofu.json'
uci commit adblock

「/etc/init.d/adblock list」コマンドでちゃんと追加されていますね。

root@OpenWrt:/etc/adblock# /etc/init.d/adblock list | head
::: Available adblock sources
:::
    Name                 Enabled   Size   Focus                Info URL
    -------------------------------------------------------------------
  + tofu                           XL     Japanese ADS         https://github.com/tofukko/filter
  + adaway                         S      mobile               https://github.com/AdAway/adaway.github.io
  + adguard                        L      general              https://adguard.com
  + adguard_tracking               S      tracking             https://github.com/AdguardTeam/cname-trackers
  + android_tracking               S      tracking             https://github.com/Perflyst/PiHoleBlocklist
  + andryou                        L      compilation          https://gitlab.com/andryou/block/-/blob/master/rea

luciからの豆腐設定

あとはluciの「ブロックリスト提供元」のソースから「tofu (XL, Japanese)」を選択して、adblockのリロードを行います。

img

ブロックドメイン数が本日時点では765個ありますね。こちらの状態でしばらく様子をみたいと考えます。

img

おわりに

新しめのOpenWrtやadblockに対応していなかったり、豆腐フィルタの配布元が以前のものである記事が多かったため、自分で整理した記録を公開しました。

参考になれば幸いです。

Discussion