この記事では OpenWrt の Adblock に関する設定を記載しています。既に OpenWrt を用いたインターネット接続は以下の記事にて完了しています。 cube309b.hatenablog.com
- Adblock に求める要件
- OpenWrt における Adblock の実装方法
- Adblock の設定方法
- Adblock の運用方法
- 設定のための参考サイト
- OpenWrt の Adblock 設定を終えて
Adblock に求める要件
やりたいこと
広告フィルタです。説明は・・・不要ですね。インターネットを閲覧している際に発生する広告をブロックしたい。
OpenWrt における Adblock の実装方法
OpenWrt では追加のモジュールを導入して設定をすることで、Adblock を構成できます。
Adblock の設定方法
方式概要
Adblock を設定する際に必要なのは以下の 1 つのファイルとなります。
Adblock 及び関連モジュール
- [システム]-[ソフトウェア] フィルター に adblock と入力し、インストール を押します。
※ 一度 OS を再起動してしまうとパッケージリストの取り直しが必要なので、その場合は「リストを更新..」を実施してください。 - 依存関係の確認が行われるので インストール を押します。
- パッケージが読み込まれるので、閉じる を押します。
- 1-3 を繰り返します。パッケージ名は luci-app-adblock です。
- 1-3 を繰り返します。パッケージ名は luci-i18n-adblock-ja です。
- 1-3 を繰り返します。パッケージ名は tcpdump-mini です。このモジュールは直接広告ブロックに使われるものではないですが、意図せずブロックしてしまったドメインを解除するホワイトリスト運用の際に必要になります。
- ログアウトすると、画面上部に [サービス]-[Adblock] が出現します。
/etc/adblock/adblock.sources.tofu.gz の記述
SSH で OpenWrt に接続し、以下のコマンドを実行します。基になる /etc/adblock/adblock.sources.gz ファイルがモジュールのアップデートで上書き消去されるため、コピーして解凍してから使います。
cp /etc/adblock/adblock.sources.gz /etc/adblock/adblock.sources.tofu.gz gunzip /etc/adblock/adblock.sources.tofu.gz
vi エディタなどで /etc/adblock/adblock.sources.tofu ファイルに以下を追記します。
"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": "S", "focus": "ads_analysis", "descurl": "https://github.com/tofukko/filter" },
行 コメント rule サンプルの日本語フィルタのルールに合わせてみました size 行数が 7000 未満でドメイン数はさらに少ないので S にしました ※ ※ サイズに関しては、本記事最下部のリンクより確認可能です。
以下のコマンドを実行します。圧縮して /etc/adblock/adblock.sources.tofu.gz にしています。
gzip /etc/adblock/adblock.sources.tofu
Adblock 設定
SSH で OpenWrt に接続し、以下のコマンドを実行します。カスタムファイルを読み込む設定にしています。
uci set adblock.global.adb_srcarc="/etc/adblock/adblock.sources.tofu.gz" uci commit adblock
[サービス]-[Adblock]-[設定]-[ブロックリスト提供元] ソースで tohu を追加選択し、保存&適用を押します。
同じく [サービス]-[Adblock] 再起動を押します。status が enabled になっていることを確認します。
Adblock の運用方法
ホワイトリスト運用
広告ブロックを設定すると意図せず動作しないサイトが発生することになります。そんな時はいずれのドメインがブロックされたのかを確認し、ホワイトリストに設定する運用が必要になります。
OS を再起動すると Adblock が動かない?
サービス起動に時間がかかる関係なのか、OS を再起動すると広告ブロックが動きません。起動後に手動でリロードなりサービス再起動なりをすれば動くのですが。。。きれいなやり方ではないのですが、Try&Error で自動起動に成功する秒数を計測して rc.local の中でサービスをリロードすることにしました。
[システム]-[スタートアップ]-[ローカルスタートアップ] 以下を設定し、保存を押します。
設定のための参考サイト
設定に当たっては、以下の情報を参考にしました。
OpenWrt の Adblock 設定を終えて
こうして OpenWrt を使って豆腐フィルタでの広告ブロックが可能になりました。
Note |
---|
・ 当ブログは個人主催であり、ブログ中のすべての情報は個人的な観点となります。 ・ 情報については正確な内容となるよう努めますが、完全性や正確性、有用性、安全性、最新性について一切保証できかねます。 |