Sunday, May 22, 2016

各种翻墙工具的个人浅见

前言

以前曾有一段日子旅居深圳,对GFW的理解和使用各种工具翻墙算是有点经验,
虽然多年前已回到墙外,但偶尔也须要进入匪区,故此还是保持了解各种工具,
就曾经搭建过或使用过的说说


目前还有效的工具

1) shadowsocks

   这个还是现在最热门的工具,暂时来说没听到大面积阵亡

   优点


   多平台,服务器可部署到由路由器到任何系统,版本众多,轻盈的
shadowsocks-libev
   可在64M/0 vswapLinux VPS运行,而不会跑不动。客户端也是多平台,路由器,

   计算机到移动装置,几乎涵盖所有系统,可以说是
install once, Fuck GFW everywhere
  
    缺点


    因为只使用预定密钥作为客户端和服务器的唯一辨别身份方式,有可能会遇上中间人

    攻击,客户端连上是伪造的目标服务器,在服务器方面的缺点更明显,因为只用预定

    密钥,于是错误的密码或加密方式服务器照样响应客户端的请求,只是不连接到目标

    网站,有无聊者用字典穷举密码,而不是拒绝联机,日志上就出现很多ERROR,我的最

    高万多个错误,共二百多个来自CNIP试着联机,shadowsocks-libev可以开启一次性

    认证,但很多客户端不支持,例如iOSSurge,A.Big.T都没有,变成无法使用这一方式

    ,如果写个脚本纪录日志的错误次数,达到某一数目调动iptables封锁,又会误伤填错

   密码的用户,或者是分配到被封的IP而连不上服务器。


    多用户无法简易控制用户访问的端口,一个人或三数好友使用时问题不大,但用户有

    一定数目时,如果有不良用户通过代理hack其他服务器的sshd,或者滥发邮件,端口扫

   描等等行为,有可能是收到VPS供货商投诉或封权才知道,要防止可能要设置复杂的

   iptables规则作限制,另外限制连接数也要用上iptables,例如要限制14701端口的连

   接数,你得输入,例如32

  
   iptables -A INPUT -p tcp –syn –dport 14701  \
   -m connlimit –connlimit-above 32 -j REJECT –reject-with tcp-reset

   这是shadowsocks-libev官网的举例,由于shadowsocks一端口一用户方式,

   如果有20个端口要输入20次或写脚本自动化,相当麻烦,也不是一般用

   户处理得了。


   结论


   还是推荐为首选搭建的工具,原因还是那个,轻盈,有效,多平台,不论低端VPS

   高端VPS都可部署,应对无聊人士穷举密码方式是设置16位以上字符长度的密码,不

   要理会就成,用命令随机产生比较难以破解的密码,例如
:

    head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18

   每一端口配上不同密码


2) HTTPS/SSL 代理


   这个方式存在很久,暂时仍然有效


   优点


   通常以stunnel作为加密隧道,后端可自由配搭不同的代理,只要支持CONNECT方式

   的都行,我就搭建过配合squid3,3proxytinyproxy,这些后端已很成熟,能控制用户访

   问的端口,或是服务器接受的连接数,也可设置用户认证方式,计算机上无须使用客户

   端,现在大多数browser支持HTTPS代理,在一些限制严格的公司内,如不能下载安装

   软件,控制用户访问的网站,端口,可以购买商业用的SSL证书,设置用户认证,把

   代理设置在443端口,公司不能封这端口,只须在browser设置代理就能突破公司封锁,

   而且网管不知你去了那里。


   这个方式也是多平台,路由器刷了第三方韧体,例如Asuswrt-Merlin,又能扩展
entware
   环境,就可搭建服务器在路由器,使用的资源也不多,也可以设置stunnel为客户端连

   接服务器。移动设备也有支持,iosSurgeA.Big.T都有支援http with tls ,安卓也有

   tls-tunnelapp,只是不太好用。


  缺点


  部署麻烦,如果使用IP + 自签名证书,须要自己gen,同时要把证书导入browser或系统

  ,非常麻烦,而且据说GFW能分辨证书,会按照类型封杀服务器,据说现在还包括免费

   的有效证书,例如Letsencrypt ,通常商业不会用这些,不能混迹其中,危险性便

   增加了。

   另外有说SSL握手特征明显,GFW容易察觉,shadowsocks的作者
clowwindy
   就不建议使用SSL翻墙,
按我看原文
 
   个人浅见以数据安全和防止中间人攻击就高于shadowsocks,对于穷举密码的无聊人仕

   直接拒绝连接,有效得多,而且有网友使用还没见到大量被封。


   搭建成本高昂,为了比较难被封锁,除了VPS的费用,还要购买域名和证书,这无疑比

   较其他方式使费较多,使用域名连接一旦遇到DNS污染,还得修改hosts文件把域名指向

   IP抵御,如果封的是服务器IP,全部投资报销。


  结论


  我还是推荐搭建作为辅助工具,原因是少数用户使用我搭建的SSL代理至今还没有连接

  不上的报告,这些有用Letsencrypt证书或自签名证书,如果条件许可,请购买商业用的

  SSL证书配合域名搭建,可以混迹其中使GFW不会乱封,openvpn之所以失效就是特征

  明显,公司不会以这个协议的VPN作为数据安全信道,于是便大面积失效。使用这类

  SSL代理最好是三两好友算了,我经常怀疑GFW会根据加密连接数目主动检测是否翻墙

 ,为了长久翻墙,不要超过三个用户,最好自己私用。


  另外前端可改为较新的nghttp2 点我
 点我 据说速度惊人,但我未搭建过。

3) Cisco IPSec VPN

    目前算是很流行的VPN,暂时有效


    优点


    StrongSwan搭建服务器,多平台,由路由器到各种*nix系统都可搭建,客户端也是

    涵括各种系统,移动系统2大主流还原生支持,使用共享密钥配合用户认证,连客户

    端都不用安装,而且稳定性高,兼容性好,使用方便加设置容易,数据安全性高。这

    VPN协议为商业公司使用的方案之一,混迹其中可使GFW不敢乱封,当然在共匪开

    大会时会有严重干扰。


    缺点


    全局代理,不能分流,访问匪区网站时等如绕了地球一圈,多用户的时候难以防范不

    良用户,例如作为BT代理,hack其他服务器等等,如要限制有可能要设置复杂的规则

    ,限制用户访问的端口和下载的文件。


   搭建麻烦,单是那一堆iptables规则足够麻烦,使用固定端口,点我看官方论坛讨论

   这被封锁机会大增,现在是GFW无法检测关键词,而且是商业上公司常用VPN,才

   得以不死,据说GFWIT狗已着手研究检测IPSec VPN协议,以求检测到流量特征和

   关键词。


   小弟第一次搭建时看了多篇中英文教学,搞了两天才搭好,后来发现有人写了一键

   安装脚本,第二个服务器干脆用人家的脚本好了,免头痛 点我取得脚本


   结论


   一般我会在服务器搭建2种工具,shadowsocks-libev是主力,如果是用穷鬼级
NAT VPS
   ,就配上自签名证书+IPSSL代理,因为搭建不了IPSec,端口不能改,独立IP的正常

   VPS,则选择IPSec VPN 作为第二工具,以ss-libevIPSec配搭,使用资源不多,一枚

   openvz 128M/128 vswap vps已经足够有余,在iOS下会随时遇到奇怪的
shadowsocks
   客户端问题,这时较稳定的IPSec便会派上用场,对于使用iPhone的朋友,分享给他们

   使用,客户端不须要付款,不必下载,对于女性朋友,0技术更是恩物,只要截一张

   设置的图,她们就会使用。故此我是推荐搭建的选择方案之一。


4) Cisco AnyConnect VPN

    iOS装置上,未有shadowsocks客户端出现前,几乎是ifans的标配工具,目前还是有

    效,未闻有大面积阵亡案例。


    优点


    ocserv搭建,非常稳定,无论客户端还是服务器,可以分流,在iDevice下载了
Cisco
    Anyconnect 客户端,可以使用证书连接,也可以用户认证连接,或是两者相加,不同

    IPSec,端口可以自定,可用域名+有效SSL证书搭建,商业上公司常用VPN协议,据

    说是Cisco力推的VPN协议,混迹其中,GFW不敢乱封,我自己搭建了一枚,用域名加

    Letsencrypt证书,以用户认证登录连接,端口设在443,客户端也是多平台,由路由器

    vpnc客户端到任何主流系统都能使用


    缺点


    搭建困难,须有一定技术,这也是花了我不少时间搭建的货色(技术不好的原因),幸

    好有好人写好了一键安装脚本,如果不想头痛 点我免头痛
 ,第一次搭建时我自己手动
    搭建,重灌系统后使用上面脚本搭建,并自行配上letsencrypt免费证书取代自签名

    证书。速度不是特别出众,感觉上部署在同一服务器上的shadowsocks比它还快速。


    结论


    这也是推荐的辅助工具,在一个服务器上除shadowsocks外可考虑部署,可因应不同情

    况使用,在一枚openvz vps 128M/128M vswap 运行它与shadowsocks

    debian 7 x86下绰绰有余,耗用资源不多


5) gfw.press大杀器


    最新出品的工具,号称除白名单外,再也不能破解的协议,开发者是推特赵国劣绅石

    斑鱼大爷 @chinashiyu
 ,其官网是http://gfw.press
,这是他的github代码仓库

    优点


    确实非常稳定,我搭建了一枚在cloudatcost,顺便测试自己的脚本,有5位推友帮忙

    测试,多天正常使用,直到服务器挂了前都没有受到任何干扰,有测试用户连续

    使用10小时没有断线一次。

    附上推友@FWT_T_O_O
源码分析,后端自由配搭,相当灵活。

    缺点


    Java编写的程序,对VPS有一定要求,少于512M/512M vswapopenvz vps最好

    不要尝试,跑不动的机会极高。文档不足不利第三方开发和搭建,

    计算机系统客户端
外,移动系统只有安卓客户端iOS用户暂时无缘。
    部署并不十分困难,由于它只是一条类似stunnel的加密隧道,搭建的麻烦在于

    后端代理,如果是debian base 用户,或者可以试试小弟编写的简陋脚本
安装

    结论


    如果shadowsocks失效的话,小弟首选转战这个,再配搭HTTPS/SSL代理或

    IPSec VPN在计算机上和iDevice使用,有较强劲VPS的朋友,

    甚么虚拟方式的VPS也可以试试搭建,如果有高手志愿者以Python/C/C++等等

    较少资源改写,相信会火起来。


6) V2Ray

    这也是较新的工具,也是新一代配上混淆流量,躲避GFW流量特征检测,并且兼容

    shadowsocks协议的工具,部署它可除可使用V2Ray外,也可使用shadowsocks而无须

    另外安装 手册在这里
 v2ray project官方github代码仓库

    优点


    这个我部署了一个在低阶VPS上,后来因使用不常使用,且低阶VPS跑起来吃力,就

    把它删除了,搭建非常简单,在Linux VPS上以root执行以下命令就完事了


    bash <(curl -L -s http://ift.tt/1PkwI8B)

    配置文件类似shadowsocks,如果有搭建ss服务器的朋友,很容易就会配置服务器文件,

    算是无痛转移,这个在搭建后测试期间相当稳定,也没有受到任何干扰或失灵。


    缺点


    gfw.press一样,对于VPS要求较高,由于以golang编写,官方建议一人使用VPS最少

    128M RAM,更多用户如此类推,2 vcoreVPS较能发挥速度优势,客户端暂时只有电

    脑系统,在移动装置只能使用兼容的
shadowsocks

    结论


    同样,如果shadowsocks失效,这也是我会转战的目标,配搭其他的工具,在计算机和移

    动装置使用,计算机上主力使用,移动装置使用IPSec,AnyConnectHTTPS/SSL代理,

    果网友的VPS够强劲,建议搭建一枚,即可使用v2rayshadowsocks两件工具,

    计算机和移动装置都可使用


7) lightsword

    nodejs编写的代理,客户端支持计算机和iOSiOS客户端售8元港币,

    官方github代码仓库


    优点

  
    小弟在一枚256/512 vswap openvz vps搭建过,并购买了iOS客户端测试,抱歉,完全

    没有发现有任何优势,大概是shadowsocknodejs改写版本,客户端并不兼容
SS

    缺点


    nodejs编写的程序,和Java一样,RAM Eater ,低阶VPS相当不利,功能上没有

    出彩的特点,用于混淆流量的加密只支持aes-128/192/256-cfb , 而没有较轻量的

    chacha20rc4-md5, 安卓没有客户端,iOS客户端售价便宜,

    本来是针对当时iosss客户端Surge,后者达到天价的$99美元,但随着

    shadowrocket,A.Big.T只售8元港币,这个优势也没有了,ios客户端到我删除之前,

    就只支持全局代理。

    服务器方面,以python shadowsock连系统70个连接只用3X RAM左右,但lightsword

    同一VPS相同条件下,已经使用80M以上内存,而且还不断增加,其实以前也是有

    shadowsocks nodejs版本,后来clowwindy停止开发,原因
 nodejs官方解释
    服务器没有UDP转发,没有一次性认证,没有轻巧的加密方式,官方文文件不全,配置

    描述文件在我删除服务器前没看见,我是把命令行参数写到脚本使用,唯一是搭建不

    难,官方有一键安装脚本,自行搭建只要安装了nodejs,以npm即可安装。

  
    结论


    在没有大改变之前,不建议搭建或使用。


8) shadowsocks-R

    号称根据shadowsocks弱点加以「改良」的版本,支持计算机客户端和部份移动装置,

    这是官方github代码仓库


    优点


    没有使用或搭建,说不出来


    缺点


    移动装置客户端支持不多,其他同上


    结论


    本人不会作出推荐或者不推荐的个人建议,作为用家未来也不会部署服务器或使用,

    如果网友有兴趣,自行往官网看手册文档,这里给出shadowsocksshadowsocks-R

    网络事件和安装脚本

    关于ShadowsocksRShadowsocks的安全性

    ShadowSocks协议的弱点分析和改进 #38

    GPL协议的违反 #28

    ShadowsocksR一键安装脚本

最后,这里并没涵盖所有工具,这些意见非常主观,而小弟也非IT人,只是普通用家
的个人体会,错误和偏见是绝对的,不须要用来参考,当作是笑话阅读最好,然后给
出「哦」一个字就可以了。

:)

原文:http://ift.tt/1WLziKY




via 细节的力量 http://ift.tt/1TDFToa

No comments:

Post a Comment