V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acess
V2EX  ›  问与答

ISP 可以用哪些手段检测到用户在使用路由器共享网络?用户可以规避吗?

  •  1
     
  •   acess · 2015-02-10 17:31:44 +08:00 · 11189 次点击
    这是一个创建于 3561 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:LZ大学生一枚,使用南京电信校园宽带
    尝试过这个,但是碰到TCP连接重置,甚至短时间封号等问题,暂时没有看到过警告网页:
    http://tieba.baidu.com/p/3300824382?pn=1
    怀疑电信有共享检测,但不确定
    所以现在来问一下众V友,用了路由可能会暴露什么特征。

    LZ能想到的:
    最明显的,经过路由,TTL-1,但这个可以用iptables改。
    以前还有人弄过iptables ipid模块
    这两个都对LZ无效
    应用层,现在web明文登录的不少,cookies,user agent貌似都可能被分析,但这个不太好规避,电信大概也不会去检测吧。
    还有可能暴露什么特征呢?用户又如何规避?
    LZ试过一次猎豹wifi,至少它对TTL有处理,拨号的机器和wifi客户端ping里的TTL都是一样的。
    第 1 条附言  ·  2015-02-12 18:28:44 +08:00
    有位朋友说,拿一台linux的机器让电信客服倒腾,居然拿到了免客户端的账号……好强大……

    LZ觉得这条路无望,只得转向技术方面……
    而且,就算免了客户端,电信仍然可以部署共享检测。
    电信搞客户端的目的就是不让共享,但封共享不止这一种手段。

    更重要的,LZ希望得知,在技术方面,用户能做到什么程度。

    现在已知的检测手段及应对方法:

    1.TTL,经过一个路由就-1
    应对办法:iptables改掉

    2.IPID,路由后每一个机器都会在数据上呈现一条上升的线
    应对方法:iptables IPID模块,改掉它(网上找到的IPID模块有两种模式,不知道应该用pace 1还是chaotic?也许是pace 1吧,这里我还没弄懂)

    3.MAC地址
    真的会检测这个么?NAT出去全是一个MAC地址啊。而且没听说用户不能换电脑啊……可能MAC地址上有制造商的信息吧。变化频繁可能也会被盯上。
    应对办法:克隆MAC地址。openwrt等linux系统的,用GNU macchanger

    4.TCP timestamp
    原理似乎是:每台机器的时钟都不一样,各有偏差,这反映到TCP timestamp中。(很奇怪,ccseven提供的PPT说还需要依靠统计规律?)
    应对方法:
    a.同步时间
    缺陷:android等系统可能对此支持不好,比如电信的CDMA会强制同步电信的时钟,移动会同步移动的时钟。可能的应对办法:使用软件同步,或者GPS同步
    b.在路由上丢掉timestamp(http://blog.csdn.net/dog250/article/details/18959401)
    缺陷:兼容性未知,可能丢掉了timestamp会成为新的特征。

    5.应用层的检测,如:
    a.HTTP user-agent(个人觉得不太靠谱,但ISP可能不惜误报也要部署)
    b.Windows Update(我去,这也行)
    c.MSN等IM登录的账号数(如果加密了协议就不行,估计不靠谱)
    d.HTTP session cookie(LZ不太懂这方面,但这个应该跟着HTTP明文传输了,而且绝大多数学生都会使用一些不加密的应用,比如QQ空间)
    其他更猥琐的手段……

    6.“主动探测”,如SNMP
    原理:貌似是相当于间谍软件,植入到NAT后面进行探测
    疑问:SNMP?上网的机器不支持怎么办?难道客户端里面有SNMP支持?

    其他:希望众V友补充修正!

    “万能”的应对方法:
    1.加密代理,如VPN
    原理:我全加密了,看你还检测个毛线
    缺陷:
    a.可能加密代理本身就是一种特征
    b.哪里去找VPN服务器?免费或公共VPN隐私存在隐患;租VPS国内很贵,国外也不算便宜,流量还要绕道回国,产生延迟、丢包、撞墙等问题;自设VPN比较麻烦,而且很多地方的ISP限制上行速度
    c.上面一条说了,延迟明显增大,可能会丢包,速度可能受限,打网游的不愿意用这个——也许可以设置只让部分流量,如TCP 80通过VPN传输来解决
    2.本地socks5代理
    原理:重新包装,消除不同机器协议栈暴露的特征(LZ外行,理解有误请纠正!)
    缺陷:
    a.需要应用支持——也许可以采用redsocks之类软件弥补
    b.不加密,对付不了应用层的检测
    疑点:据某百科对网络尖兵的描述,可以查出用户在私设代理!?

    其他:希望众V友补充修正!
    33 条回复    2018-10-31 18:13:55 +08:00
    my623
        1
    my623  
       2015-02-10 17:59:07 +08:00
    通过user-agent. 检测到两个不同的UA就会封锁 请搜索 网康科技
    weisoo
        2
    weisoo  
       2015-02-10 18:03:11 +08:00
    @my623 如果是这样的话,我一台电脑装多个浏览器也不行了?
    9hills
        3
    9hills  
       2015-02-10 18:03:46 +08:00
    在阿里云/青云等做个shadowsocks,然后全局shadowsocks好了。。流量特征全部抹平
    sandideas
        4
    sandideas  
       2015-02-10 18:05:56 +08:00 via Android
    用两个路由器可破。。
    ScotGu
        5
    ScotGu  
       2015-02-10 18:22:03 +08:00
    @sandideas +1 双路由的确挺好用,我在大学就这么干。
    my623
        6
    my623  
       2015-02-10 18:27:50 +08:00
    @weisoo 根据类型来的,比如说同时出现桌面浏览器和移动浏览器,同时出现两个不同品牌手机的浏览器。 校园网不安全,如果不缺钱,最好不要用。别折腾了,得不偿失。
    fchypzero
        7
    fchypzero  
       2015-02-10 18:54:46 +08:00
    @sandideas 没想通,怎么破法?求教。
    acess
        8
    acess  
    OP
       2015-02-10 18:58:01 +08:00
    @fchypzero 第一个路由拨上宽带,它的LAN口接第二个路由WAN口,第二个路由设置WAN口为DHCP,LAN口网段与第一个不同
    这样就经过了2层NAT
    很奇怪,这样真的有效么?
    acess
        9
    acess  
    OP
       2015-02-10 19:04:57 +08:00
    @9hills 这两个网费都好贵啊
    sandideas
        10
    sandideas  
       2015-02-10 19:07:32 +08:00
    @acess 可以试试。。
    ccseven
        11
    ccseven  
       2015-02-10 22:46:44 +08:00   ❤️ 1
    @acess 华为SIG非法共享接入监控解决方案20051223

    http://wenku.baidu.com/link?url=xU4GYye80AtlSIaU4BY5ixm5u2EC1-P4WhBYr87DoIgvS0TwyH62KIec8ZSuTw9Y01JXVvvXGQS0PO_kkIXzjKmlncAlw4h4n-EXQFpIYlG

    某市某运营商该项目就是华为SIG方案!不要问我怎么知道的 ( ̄▽ ̄)"
    ccseven
        12
    ccseven  
       2015-02-10 22:47:30 +08:00
    准确点说 整个省都是!
    weisoo
        13
    weisoo  
       2015-02-10 22:50:36 +08:00
    @my623 对网站开发者来说,同时开几个类型的浏览器很常见,那不要活了?
    extreme
        14
    extreme  
       2015-02-10 23:03:39 +08:00
    @sandideas 路由器连接上网了,算一个上网终端,第二个路由使用前一个路由器上网,算第二个上网终端。
    sandideas
        15
    sandideas  
       2015-02-11 00:15:42 +08:00
    @extreme 那你会不会用电脑连接路由器上网呢
    extreme
        16
    extreme  
       2015-02-11 00:34:20 +08:00
    @sandideas 你是不是没在自己的电脑上用过PPPOE?
    电信肯定是想你们都用Modem,然后唯一与Modem连接的主机再通过PPPOE上网。
    wohenyingyu01
        17
    wohenyingyu01  
       2015-02-11 00:52:51 +08:00
    以前我们学校是加密PPPOE的密码,即输入的密码与真实的密码不一致,要安装专用客户端才能解密拨号,于是路由器用不了,而且该客户端会禁用电脑上其他的网络适配器防止共享。于是一大堆算号器应欲而生,百度河南网通在线算号器有真相。
    acess
        18
    acess  
    OP
       2015-02-11 01:01:39 +08:00
    @ccseven 感谢分享,虽然资料看起来有点老
    这个PPT上说的传输层的检测有IPID和TCP时间戳,还有TTL(若理解有误请轻拍)
    IPID和TTL都能用iptables改,但是IPID要费点事(编译模块)
    TCP时间戳呢?有办法搞定这个么?

    另外这个PPT似乎反映出一点:被封是不定时的,情况可能在一周内都会有很大变化,取决于电信那边操作者的心情。(扑朔迷离,用起来提心吊胆,威慑效果也更好)

    另外,还有没有其他传输层可以做的检测?有没有办法规避?

    @my623 我觉得电信不会BT到查User Agent,至少不会作为主要手段。
    对于主要目标:多台电脑共享,检测结果又不准(也许大家都是一样的系统,一样的浏览器)
    可以查到你的手机平板也跟着上网了,但封这个没多大意思啊,归根到底就一个人在用,流量又不会多大。就算逼人用数据流量,也未必用的是电信的。
    但我记得有一次被封很像是被查User Agent了。只出现过一次,那时拿ChinaNet这个wifi热点来共享,身边人拿出手机连上使用,很快就连接被重置了。那次之后就没有这种现象了。

    要是分析流量到如此地步,也许只有在外面搭一个VPN,使用加密连接才能绕过了。
    acess
        19
    acess  
    OP
       2015-02-11 01:16:08 +08:00
    @wohenyingyu01 已经有人做了拨号器,帖子里说了,和算号器应该等效。
    根据网上的分析,和自己的使用感觉,这个客户端的制作还是蛮低劣的,应该不会有太复杂的东西。
    比如连上任何wifi,这个客户端都会提示你连了电信校园wifi,而且这时关掉客户端,wifi就会断线。
    www.f-young.cn也是这样,正常点进去下载客户端,会发现下载页面就是连接出错的警告页面(请卸载猎豹云云)
    但是网络明显受到人为干扰。照这样说,还是电信在通过分析流量来检测共享。
    sandideas
        20
    sandideas  
       2015-02-11 01:37:42 +08:00 via Android
    @extreme 用无线路由器A拨号,然后在无线路由器A的Lan口和另外一个无线路由器B的wan口接起来。所有电脑都通过一个无线路由器B上,无线路由器B接在拨号的无线路由器A上面。
    sandideas
        21
    sandideas  
       2015-02-11 01:38:30 +08:00 via Android
    好像检测的东西叫做网络尖兵。。楼主可以去了解下
    extreme
        22
    extreme  
       2015-02-11 01:48:09 +08:00
    @sandideas 算了,不浪费时间和你解释了,你是无法理解的。
    sandideas
        23
    sandideas  
       2015-02-11 02:08:51 +08:00 via Android
    @extreme 真奇怪你这人,我这种方法是我实打实试出来的。什么叫我无法理解。
    我在学校的时候用的是联通的网,可以用无线路由器拨号,但是如果两台电脑同时连一个无线路由器,就会提示多个用户使用。所以必须是一个无线路由器外面再套一个无线路由器,这样随便怎么连联通都检测不出来。
    不知道你扯那么多什么意思,你试过么。。
    好好说话,有谁是无法理解的。真的是。
    无线路由器就不能通过猫来拨号了?还是什么的?我电脑可以通过无线路由器来连接上网,路由器连接路由器就算第二个终端从而不能上网了?
    extreme
        24
    extreme  
       2015-02-11 02:13:41 +08:00
    @sandideas 那是因为你ISP限制的终端数不是一。
    extreme
        25
    extreme  
       2015-02-11 02:18:03 +08:00
    @sandideas 按照你说的,你ISP限制的终端数是二(为什么是二,恐怕是检测方法的原因),达到三就执行相应的措施。
    如果限制的是二,你这方法理论上根本不可行。
    extreme
        26
    extreme  
       2015-02-11 02:20:59 +08:00
    @extreme 居然打错字了:
    按照你说的,你ISP限制的终端数是二(为什么是二,恐怕是检测方法的原因),达到三就执行相应的措施。
    如果限制的是一,你这方法理论上根本不可行。
    acess
        27
    acess  
    OP
       2015-02-11 02:51:31 +08:00
    @extreme 这里讨论的是电信是如何得知这个终端数的,还有用户能采取什么方法规避
    一般路由NAT出去,就像是一台机在上网,除非抓包仔细分析
    如果两层路由都没有搞定流量的特征,那么两层NAT和一层NAT我觉得效果没啥区别,所以我怀疑双路由的效果(如果有效,我觉得可能是其中一个的固件有反制措施,掩盖了一些流量特征)
    另外ISP貌似也可能采取主动探测(SNMP之类),但这个我觉得就是利用埋设好的后门,这肯定需要电信强制用户使用自己的设备,比如校园无线盒子、光猫之类的。但这意义不大,因为可以在这个设备后面再接路由。
    acess
        28
    acess  
    OP
       2015-02-11 02:54:08 +08:00
    @sandideas 很奇怪,为什么一层会被封,两层就不会了,我很好奇联通是怎么检测的。
    acess
        29
    acess  
    OP
       2015-02-11 02:58:16 +08:00
    找到一个貌似是去掉TCP Timestamp的办法:
    http://blog.csdn.net/dog250/article/details/18959401
    看起来还得稍加折腾,和ipid一样需要编译模块
    但好处是编译一次应该就可以共享出来,大家一起用了。

    另外这样即使有效也不是长久之计——如果大家都有timestamp,就你没有,这也算特征吧。最好能伪造一个

    如果理解有误请轻喷。
    invite
        31
    invite  
       2015-02-11 09:25:06 +08:00
    @acess 如果检测IPID这些,那么你用一台电脑做代理当路由器使,这样不是检测不到了?
    sadpencil
        32
    sadpencil  
       2017-08-27 23:20:50 +08:00
    IPID 和 timestamp 确实是比较难防,但是,ISP 如果根据这种手段检测的话,会误伤虚拟机
    有了虚拟机这个借口,似乎就不用担心 NAT 封锁了
    Benson1212
        33
    Benson1212  
       2018-10-31 18:13:55 +08:00
    @my623 我们学校的就是网康科技的设备,有什么办法防封吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   895 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:00 · PVG 05:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.