1
devqin 2016-05-15 23:32:41 +08:00
运营商的劫持什么的最恶心。
|
2
McContax 2016-05-15 23:34:05 +08:00 via Android
不错,有干货,我插一脚,混个脸熟
|
3
Oi0Ydz26h9NkGCIz 2016-05-15 23:37:14 +08:00 via iPhone
滋磁
希望能早日见到作品。 |
4
turan12 2016-05-15 23:48:07 +08:00
这个厉害。前排观望楼主!
|
5
addidda 2016-05-15 23:50:05 +08:00 via Android
仰望高端玩家
|
6
Sumire 2016-05-15 23:55:39 +08:00 via Android
病魔还没战胜校长!
|
7
adrianzhang 2016-05-15 23:58:51 +08:00
功能看上去是对付大局域网内各种恶心,还无法对付局域网边缘的恶心。不过还是一个很有趣的项目,报名参与开发。
|
8
yxc 2016-05-16 00:01:33 +08:00 1
firefox 装个 https everwhere 就搞掂了
|
9
ilikekindle 2016-05-16 00:01:42 +08:00 via Android
支持
|
10
liyvhg 2016-05-16 00:11:15 +08:00 via Android
强烈支持,混个脸熟
|
11
ZRS 2016-05-16 00:18:30 +08:00
支持 已 Star
|
12
raysonx OP @adrianzhang 局域网边缘比较复杂,不是过滤就能完全解决的。
之前被联通的 HTTP 劫持恶心坏了,向工信部投诉了无数次都不给解决。 后来不得不用 iptables 的 string 模块过滤联通伪造的 http302 重定向。考虑到 string 模块过滤会有误杀,效率也比较低,下一步尝试手写一个匹配 http 302 的模块。不过 http 有连接信息,还得研究一下 netfilter 的 conntrack 机制。 目前已经完成 dns 过滤模块理论上过滤局域网边缘伪造的 dns 的也是可行的,不过效果仅相当于改 hosts 表,不是这个项目的主要目的。 @yxc 主要是想放在路由器上跑哈哈,强迫症发作! |
13
ivyswen 2016-05-16 00:39:48 +08:00 via Smartisan T1
已 star ,明天编译一个试试。
|
14
sky170 2016-05-16 01:21:43 +08:00
已 star
|
15
adrianzhang 2016-05-16 01:27:29 +08:00
@raysonx 明天晚些时候 GH 上联系你。
|
16
Biwood 2016-05-16 01:30:23 +08:00 via Android
真能做到么,我愿意捐钱, DNS 劫持太烦人了
|
17
jasontse 2016-05-16 06:29:31 +08:00 via Android
不用这么麻烦, dnsmasq 有个参数叫 ignore-address 。
|
19
adrianzhang 2016-05-16 07:37:21 +08:00
@jasontse 开销不一样
|
20
jasontse 2016-05-16 08:39:35 +08:00 via iPad
@adrianzhang 这样的开销更大,每次过防火墙都要滤一遍, dnsmasq 从 upstream 取得结果之后可以 cached 。
|
21
shuiyingwuhen 2016-05-16 08:51:29 +08:00
混一个脸熟,现在我参与测试
|
22
lixingcong 2016-05-16 08:56:34 +08:00 via Android
dnsmasq 从 2.73 开始具备 dns 答复 ip 过滤功能
|
23
qq5745965425 2016-05-16 09:08:47 +08:00
支持 支持
|
24
rubyvector 2016-05-16 09:17:57 +08:00
支持,有技术,有想法,还实现了.赞一个
|
25
JackBlack2006 2016-05-16 09:37:12 +08:00
@lixingcong 愿闻其详?
|
26
raysonx OP |
27
dxwwym 2016-05-16 09:52:10 +08:00 via iPhone
今天青岛联通 Safari 访问贴吧时终于一睹小球真颜,
|
28
clino 2016-05-16 09:52:40 +08:00
原理是什么? 怎么识别运营商劫持的部分呢?
|
29
adrianzhang 2016-05-16 09:56:06 +08:00
@jasontse 如果有的设备不需要 dnsmasq ,防火墙过滤是最好的选择,开销低且各种设备都有。采用应用级的过滤好处是灵活容易,坏处就是开销大(不仅是网络开销,还有系统开销)以及要部署相关应用,适应性低。
|
31
raysonx OP @adrianzhang DNSmasq 实现的是把黑名单中的响应替换为 NXDOMAIN , OpenWrt 上默认跑的就是。这个防火墙模块和 DNSmasq 在功能上并不是重叠的。
|
33
commonhub 2016-05-16 10:03:29 +08:00
dnsmasq 里把 114so 这种污染的 ip 设为 bogus-nxdomain 就可以。
github 上面有个轮子了 https://github.com/felixonmars/dnsmasq-china-list/ 现在的解决方案是 dnsmasq 里部分墙网址指定 nameserver=/t66y.com/127.1#53535 ss-tunnel 给 8888 默认 dns 是 isp 给的,返回结果如果和 bogus-nxdomain 一样就直接扔了 |
34
raysonx OP @clino 具体规则是要人工干预的,不可能通过机器自动生成,因为各种劫持、污染的情况非常复杂,还要同时考虑性能和误杀率。
因为使用这种工具的人不可能是小白用户,所以不必做的过于傻瓜化。 目前的想法是提供一个客户端的工具协助用户调试新的规则。对于大规模存在的相似劫持,直接放在 GitHub 上维护。 |
35
onemoo 2016-05-16 10:05:19 +08:00
DNS 劫持还好说。最恶心的是 http 插入 iframe 广告,对付这个有什么好办法吗?
|
36
raysonx OP @onemoo 这种一般是用旁路设备伪造 HTTP 报文。下一步做的 httpfilter 的主要就是应对这种情况。
至于怎么做最好、最方便、最灵活,还要靠大家一起讨论想办法。 |
37
aivier 2016-05-16 10:09:06 +08:00
昨天遇到联通劫持 JS ,然后重定向到自己的服务器上,反代,插广告,而且还是黄网....
|
38
JackBlack2006 2016-05-16 10:12:22 +08:00
@aivier 直接向扫黄打非办公室举报:doge:
|
39
dreammes 2016-05-16 10:25:24 +08:00 via iPhone
强烈👍🏻支持
|
40
21grams 2016-05-16 10:25:53 +08:00
你们说的运营商劫持究竟指的是啥? 我一直用 114 的 dns 没发现有什么问题。
|
41
imn1 2016-05-16 10:37:10 +08:00
我现在桌面已经基本消除劫持了,但手机还是没有解决办法(对 android 不熟)
|
42
zrj766 2016-05-16 10:42:45 +08:00 via Android
先 star 再说
|
43
missdeer 2016-05-16 10:45:26 +08:00
说话,你们用过 pcap-dnsproxy 吗, winpcap/libpcap 直接抓包,然后丢掉抢答包
|
44
vh2h 2016-05-16 10:53:46 +08:00
支持楼主,利国利民
|
45
raysonx OP @jasontse @lixingcong 翻了下 dnsmasq 的文档,确实 2.73 版之后开始提供类似的功能了。
|
46
langjiyuan 2016-05-16 13:32:46 +08:00
火线支持,前两天的 http 劫持可是恶心坏了,现在访问个 b 站 还得挂代理。。
|
47
mwylaoma 2016-05-16 14:09:27 +08:00
请问 Mac 能否使用?@raysonx
|
48
avrillavigne 2016-05-16 14:38:49 +08:00
@21grams 常见 iframe 插广告,插不好网页都不能看了,高端的下载劫持到运营商内的服务器。
|
49
KCheshireCat 2016-05-16 14:41:09 +08:00
我建议可以去看下 iptables 的 u32 模块
移动这边的 DNS 抢答,http 抢答,302 劫持跳转,单向 RST,BT-DHT, 都是有一定包构造特征的 比如移动在抢答 DNS 的时候一定会带 dns.flags.authoritative 标志位, 但是又和正常的包不一样一定不带 dns.flags.authenticated 标志。 302 劫持也是,tcp 包会标记 ACK ,FIN , PSH.而通常 http 并不使用 PSH 且 FIN 也不和 PSH 同时使用 还有 http 抢答,抢答的报文是有分包的,但是每个包大小都不到 MTU,且 tcp 窗口实际值恒为 0xFFFF 再者 BT-DHT 干扰,抢答包里面协议版本是个没人使用的版本号了,所有抢答包还都是一样长,非常好过滤 我目前都是用 u32 模块进行匹配来 DROP 的,这种抓异常包构造的方法一向很有效 |
50
KCheshireCat 2016-05-16 14:44:53 +08:00
很多情况用现有模块就能做到,不用造个新轮子实现重复功能
我现在就在实验用 IP 头的 TTL 值来过滤抢答包,用的都是现有的模块, 不过为了应付服务器自身 ttl 差异,这个过滤效果还是有待提高 |
51
wpaygp 2016-05-16 15:52:22 +08:00
Star
|
52
raysonx OP @KCheshireCat 这些问题在做之前都考虑过,能用现有模块解决的当然不会上复杂的东西。 netfilter/iptables 本身在设计上就不擅长处理 5 层的数据,做模块是为了接下来实现一些比较难搞的复杂过滤。
|
53
Cpatrick 2016-05-16 18:17:02 +08:00
期待早日见到作品~
|
54
Balthild 2016-05-16 18:21:54 +08:00 via iPhone
已 Star
|
55
fengyunSmlie 2016-05-16 18:57:11 +08:00
不得不来支持一下!
|
57
muziling 2016-05-17 14:03:11 +08:00
@KCheshireCat u32 怎么弄,以前 tomato 用的时候,正常的 DNS 解析都要好几秒。
|
58
addidda 2016-05-19 00:48:32 +08:00 via Android
@imn1 dnscrypt/pdnsd/dnsmasq
配合 iptables 一起食用效果更佳(x)。。 |
59
Oucreate 2016-06-05 17:09:36 +08:00
|
60
only25133 2016-07-12 20:48:41 +08:00
时不时来赞一下~
|