返回首页
当前位置: 主页 > 路由器设置 >

翻墙路由器的原理与实现(12)

时间:2016-02-01 13:38点击:

在路由器上运行的时候要把WAN的防火墙规则改为接受INPUT,否则进入的UDP包会因为没有对应的出去的UDP包而被过滤掉。这是单向代理的一个缺陷,需要在墙上开洞。把防火墙整个打开是一种开洞的极端方式。后面专门讨论单向代理的时候会有更多关于防火墙凿洞的讨论。

第二个运行的条件是服务器所在的网络没有对IP SPROOFING做过滤。服务器实际上使用了和GFW发错误答案一样的技术,就是伪造SRC地址。通过把SRC地址填成客户端所在的IP地址,使得DNS查询的结果不需要经过代理服务器中装直接到达客户端。

翻墙路由器的原理与实现

通过丢弃错误答案反DNS劫持

使用iptables过滤

前两种方式都是针对GFW的重建这一步。因为GFW没有在日常的时候监听所有UDP端口以及监听TCP流量,所以非标准端口或者TCP的DNS查询可以被放行。选择性丢包则针对的是GFW的应对措施。既然GFW发错误的答案回来,只要我们不认它给的答案,等正确的答案来就是了。有两篇相关文档

使用ipfilter过滤GFW滴DNS污染

AntiDNSPoisoning (作者有更新: https://github.com/hackgfw/openwrt-gfw)

改写成python脚本是这样的(https://gist.github.com/4530465),实现来自于AntiDNSPoisoning:

import sys  

import subprocess      

   

# source %E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BC%93%E5%AD%98%E6%B1%A1%E6%9F%93  

WRONG_ANSWERS = {  

    '4.36.66.178',  

    '8.7.198.45',  

    '37.61.54.158',  

    '46.82.174.68',  

    '59.24.3.173',  

    '64.33.88.161',  

    '64.33.99.47',  

    '64.66.163.251',  

    '65.104.202.252',  

    '65.160.219.113',  

    '66.45.252.237',  

    '72.14.205.99',  

    '72.14.205.104',  

    '78.16.49.15',  

    '93.46.8.89',  

    '128.121.126.139',  

    '159.106.121.75',  

    '169.132.13.103',  

    '192.67.198.6',  

    '202.106.1.2',  

    '202.181.7.85',  

    '203.161.230.171',  

    '207.12.88.98',  

    '208.56.31.43',  

    '209.36.73.33',  

    '209.145.54.50',  

    '209.220.30.174',  

    '211.94.66.147',  

    '213.169.251.35',  

    '216.221.188.182',  

    '216.234.179.13'  

}      

   

rules = ['-p udp --sport 53 -m u32 --u32 "4 & 00x1FFF = 0 && 0 >> 22 & 0x3C @ 8 & 0x80000x8000 = 0x8000 && 0 >> 22 & 0x3C @ 14 = 0" -j DROP']  

for wrong_answer in WRONG_ANSWERS:  

    hex_ip = ' '.join(['%02x' % int(s) for s in wrong_answer.split('.')])  

    rules.append('-p udp --sport 53 -m string --algo bm --hex-string "|%s|" --from 60 --to 180  -j DROP' % hex_ip)      

   

try:  

    for rule in rules:  

        print(rule)  

------分隔线----------------------------
推荐内容