2026年7月26日日曜日

OpenWrtでDNSブロックを設定してみた。

 OpenWrtでもDD-WRTで使用してたDNSブロックのスクリプトが使いたかったので設定してみた。Softwareからインストールしてもいいんだけど何を使えばいいのかわからなかったのでとりあえず。WRC-X3200GST3に設定してみた。

DD-WRTで使用していたスクリプトはjffsに入れておいてtmpにコピーしてcronで実行していたので、同じ用にStartupスクリプトに入れてtmpにコピーしてcronで動かすようにしてみた。まずはStartupの設定。

#adblock
cat <<'EOF' > /tmp/adblock.sh
#!/bin/sh
logger WAN up script executing
if test -s /tmp/hosts0
then
        rm /tmp/hosts0
fi

logger Downloading http://www.mvps.org/winhelp2002/hosts.txt
(wget -qO- https://winhelp2002.mvps.org/hosts.txt |
    sed '2,$s/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
wget -qO- https://280blocker.net/files/280blocker_domain_$(date +"%Y%m").txt |
    sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
#wget -qO- https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardDNS.txt |
#    sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
#    grep -v localhost ;
#wget -qO- https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt | 
#          grep "^||" | grep -v "*" | sed 's/||/127.0.0.1 /g'| tr -d '^';
wget -qO- https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardMobileAds.txt |
    sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
#wget -qO- https://raw.githubusercontent.com/multiverse2011/adawaylist-jp/master/hosts |
#    sed 's/127.0.0.1/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
#    grep -v localhost ;
wget -qO- https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt |
    sed 's/^/127.0.0.1 /g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
wget -qO- https://warui.intaa.net/adhosts/hosts.txt |
    sed 's/0.0.0.0/127.0.0.1/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
echo 127.0.0.1 v-img-ad.interactive-circle.jp ;
echo 127.0.0.1 extrk4.mira-dsp.com ;
echo 127.0.0.1 ve.adingo.jp ;
echo 127.0.0.1 cu-ad.tbs.co.jp;
echo 192.168.1.1 buffalo.setup;
echo 192.168.1.1 web.setting ) | tr ' ' '\t' |
    tr -s '\t' | tr -d '\015' | sed '/^$/d' | sort -u >/tmp/hosts0
sed '/vortex.data.microsoft.com/d' /tmp/hosts0 -i
sed '/imasdk.googleapis.com/d' /tmp/hosts0 -i
sed '/tags.tiqcdn.com/d' /tmp/hosts0 -i
/etc/init.d/dnsmasq restart
EOF

chmod +x /tmp/adblock.sh
/tmp/adblock.sh

WRC-X3200GST3の方はOSがそれ用じゃないのでLEDの設定とかあるけどそれと一緒にStartupに突っ込んでみた。DD-WRT用から変更したのはcurlからwgetにしたりとかdnsmascの設定とかかな。

お次はdnsmasqの設定とcronの設定をsshから。

uci add_list dhcp.@dnsmasq[0].addnhosts='/tmp/hosts0'
uci commit dhcp
echo "0 4 * * * /etc/adblock.sh" >> /etc/crontabs/root

これで後はルーターを再起動してやれば自動でtmpに作成されてAM4時にフィルタが更新されるようになるはず…

ちなみにWAN側のDNSはカスタム設定にしておいた。

0 件のコメント:

コメントを投稿