请教有关 OpenWrt 防火墙规则的疑问

2023-01-15 16:24:11 +08:00
 lon91ong

家里老人用云视听极光看电视(长虹无法 root 的老机型),腾讯的广告真是丧心病狂,广告都是七八十秒起步,偶尔会有 500+的,各种理财课程的割韭菜广告,辣耳朵!

路由器刷的 OpenWrt ,广告插件用的是 DNSfilter ,搜了几个广告规则没啥效果,似乎云视听极光的广告尤其难搞。

通过路由器抓包分析,广告视频链接如下格式:

http://sv-video.play.t002.ottcn.com/playlist.m3u8?vids=w3715yeyz3p|w3728l84yj1&sdtfrom_list=v8256|v8256&speed=&dtype=1&defn=&platform=

将域名sv-video.play.t002.ottcn.com加入 DNSfilter 黑名单测试,没有效果! 进一步分析发现有这样的请求数据:

http://182.254.116.116/d?dn=sv-video.play.t002.ottcn.com&ttl=1

这是用 HTTP 请求代替了本地的 DNS 请求,发现还有类似的其它几个域名解析 HTTP 请求,是用来播放正常视频的域名 所以不能直接把 IP182.254.116.116加入黑名单了事

接着就想到用防火墙规则来搞,目标地址:182.254.116.116,关键字:sv-video.play 谷歌了一下,拼凑出了下面的规则:

iptables -A OUTPUT -d 182.254.116.116 -m string --string "sv-video.play" --algo bm -j DROP

reload 防火墙后测试,依旧没有效果

请大侠指点

附上 iptables --list 回显信息:

[root@OpenWrt:16:27 ~] # iptables --list
# Warning: iptables-legacy tables present, use iptables-legacy to see them
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             match-set blockip dst /* _DNSFILTER_RULE_ */
ACCEPT     all  --  anywhere             anywhere
...

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             match-set blockip dst /* _DNSFILTER_RULE_ */
DROP       all  --  anywhere             182.254.116.116      STRING match  "sv-video.play" ALGO name bm TO 65535
2205 次点击
所在节点    OpenWrt
11 条回复
yy915cn
2023-01-15 17:01:07 +08:00
一直用的 Adbyby Plus+,用了好多年了,不过要添加第三方规则,自带的好像很久没更新不行了,我用了小下面这几个,电视版爱优腾都没广告
https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt
https://gitee.com/xinggsf/Adblock-Rule/raw/master/mv.txt
https://gitee.com/halflife/list/raw/master/ad.txt
https://anti-ad.net/easylist.txt
XIU2
2023-01-15 17:01:26 +08:00
我对 iptables 了解不多,你把 -A OUTPUT 改成 -A INPUT 试试。
huangya
2023-01-15 17:24:40 +08:00
两点:
1. OUTPUT 肯定不是,因为这个包不是路由器本机发出来的。换成 FORWARD 看看。
2.你刷的这个版本看起来 iptables 不用了。用的是 nftables 。所以你添加的 iptables 是否有用,我还不十分肯定。你刷的是哪一个版本?
ryd994
2023-01-15 17:27:18 +08:00
用错 chain 了。应该加到 forward 里。output 是本机发出。你这个连接是从电视到公网,不是 input 或者 output 。
ETiV
2023-01-15 17:40:14 +08:00
多找几个 IP ,httpdns 为了高可用会有一个 IP 列表的

然后,有可能你播放的视频流,也走了 httpdns…如果屏蔽了你都看不了了怎么办…
lon91ong
2023-01-15 18:42:03 +08:00
@huangya 用的 OpenWrt 是[这个]( https://supes.top/?version=22.03&target=ramips%2Fmt7621&id=phicomm_k2p),分支: 22.03.3 内核: 5.10.161, **使用 Firewall4(nftables)**
lon91ong
2023-01-15 18:54:08 +08:00
@huangya 麻烦大佬帮忙翻译一下楼顶的 iptables 规则,我用 iptables-translate 翻译的规则不能用
lon91ong
2023-01-15 19:14:48 +08:00
@yy915cn 前两个乘风的我也试过,对云视听极光无效
第三个 halflife 的已经打不开了
第四个在 DnsFilter 中默认也是加载的,没有效果
看来还是插件的问题,回头试试 adbyby
qq6r
2023-01-15 19:28:52 +08:00
https 是加密的,iptables 没法解密,你的规则起不了作用
lon91ong
2023-01-15 19:34:52 +08:00
@qq6r 我刚补充了抓包数据截图,就是普通的 http 通信,没有加密
WhatTheBridgeSay
2023-01-15 19:58:24 +08:00
没意义了,老老实实开会员,你敢禁掉这个 httpDNS 腾讯电视版就敢给你报无网络连接

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX