Blog

  • 用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(中)

    gfw-large
    在上一篇文章《用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(上)》里,简要的介绍了GFW对SSH协议封杀的方式以及Obfuscated-OpenSSH混淆握手(handshake)协议运作的机制和原理,现在我们就开始具体讲述如何在服务器端上进行安装部署:

    一、服务器端安装步骤

    (一) 更新系统并安装编译器和其他编译器

    shell

    apt-get update
    apt-get –y install gcc
    apt-get –y install build-essential
    apt-get –y install zlib1g-dev
    apt-get –y install libssl-dev
    

    (二)编译

    shell

    wget -O ofcssh.tar.gz https://github.com/brl/obfuscated-openssh/tarball/master #下载安装包
    tar zxvf ofcssh.tar.gz
    cd brl-obfuscated-openssh-ca93a2c
    ./configure
    make
    make install
    #如果没有错误发生,你将能看到:
    #SSH进程在    /usr/local/sbin/sshd
    #ssh客户端在  /usr/local/bin/ssh
    #配置文件放在 /usr/local/etc
    

    (三)配置

    安装和编译完成后,下面我们开始配置obfuscated ssh,首先要注意如下三点:

    1. 假设你将22端口作为SSH的默认端口
    2. 我们将在常规的SSH进程之后安装一个新的obfuscated SSH
    3. 我们将分配1234作为新的obfuscated ssh 进程的新端口

    shell

    mv /usr/local/sbin/sshd /usr/sbin/sshd_ofc
    cp /etc/ssh/sshd_config /etc/ssh/sshd_ofc_config       #新建一个SSH服务和配置文件
    sed -i "s/Port /#Port /g"  /etc/ssh/sshd_ofc_config    #端口22被常规SSH服务占用,所以端口选项不需要了,在前面加"#"
    sed -i "s/UsePAM /#UsePAM /g" /etc/ssh/sshd_ofc_config #因为obfuscated-openssh不支持UsePAM选项,所以也将其关掉
    echo "ObfuscatedPort 1234" >> /etc/ssh/sshd_ofc_config
    echo "ObfuscateKeyword yourkeyword" >> /etc/ssh/sshd_ofc_config
      #在配置文件中增加obfuscated ssh的端口和密钥设置
      #“1234”和“yourkeyword”都是可以自定义设置的
      #注意“ObfuscatedPort 1234”将监听VPS上所有的端口
      #如果你希望只监听一个固定的IP地址,你可以加上这个:
      #echo "ListenAddress x.x.x.x" >> /etc/ssh/sshd_ofc_config
      #(将 x.x.x.x 替换成你所需要的IP地址)
    

    (四)启动服务

    所有的都已经配置完毕,是不是很简单,下面让我们启动服务:

    shell

      /usr/sbin/sshd_ofc -f /etc/ssh/sshd_ofc_config
      #如果一切顺利,请运行“netstat -an”命令,你将会看到:
      #sshd_ofc服务正在使用1234端口
    

    好了,服务器端上的设置都已经完成,不过还没有结束,我们还要将它设置成自启动,系统每次重启后能够自动加载。

    (五)自启动服务

    shell

      echo "/usr/sbin/sshd_ofc -f /etc/ssh/sshd_ofc_config" > /etc/init.d/ssh_ofc
      chmod +x /etc/init.d/ssh_ofc
      ln -s /etc/init.d/ssh_ofc /etc/rcS.d/S42ssh_ofc
    

    上面就是在服务器上配置Obfuscated-OpenSSH的全部过程,而客户端的设置将在下一篇文章《用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(下)》中详细解释。E

     

  • 最稳定的翻墙组合chrome+SSH+Myentunnel+Swithchysharp

    chrome

    自从我在2010年写下第一篇重要的博文《写在BTchina被封以后》之后,就一直与GFW(Great Fire Wall 长城防火墙)玩着道高一尺魔高一丈的周旋把戏,并一直以能轻松跨越方校长(方滨兴)的作品红杏出墙而洋洋得意,同时并将自己的翻墙渠道和手段分享给周围需要的朋友,让更多的人能汲取墙后宽阔的世界的养分和资源作为自己的责任。

    一、道高一尺 魔高一丈

    但自2012年十八大召开以来,GFW大幅度升级,几种重要的翻墙手段均被屏蔽,无论是pptp,l2tp的vpn还是openvpn,甚至连ipv6的翻墙方法都被屏蔽掉。 我给朋友们在VPS上建的一个vpn服务器亦难逃劫难,此时我不得不开始寻找更新的以及更稳定的翻墙方法。 在这里,请我荣幸的再次问候一下方校长的母亲及其全家,你们养育了一个好孙子。

    二、SSH的优缺点

    通过尝试各种方法后居然发现自己最早使用的SSH代理是比较稳定的翻墙方法,可谓绕了一大圈之后又回到了起点,SSH代理虽然没有VPN翻墙的速度快,但它所具备几个优势却是无可比拟的:

    • SSH可以通过浏览器插件导入规则,将国内无需翻墙的网站分开浏览,只让那些被GFW屏蔽的网站通过代理访问,能有效的提高浏览的效率和质量;而VPN作为全局代理,如果要实现上述功能需要进行复杂的路由设置;
    • 不像openvpn或者ipv6等技术需要进行复杂的设置,让一些不具备网络技术以及linux命令的新手也能快速入门使用;
    • 获得SSH的渠道非常多,购买虚拟主机或者VPS之后就可以通过SSH实现翻墙,同时,免费帐号也很多,渠道广泛。

    不过他的缺点也是同样存在的:

    • SSH速度不如VPN快,而且也存在经常掉线的问题;
    • SSH能基本满足PC,Mac等各平台的电脑翻墙应用,但手机上使用则不如VPN广泛,就目前市场占有量最大的两大手机平台IOS和Android来说,前者目前是无法使用SSH的,广大的iphone和ipad用户悲剧,而基于Linux平台的android手机要使用SSH则必须要获得root权限,这对于女生和一些小白来说又是一个麻烦的事情。
    • 不像无界、自由门等免费的翻墙代理,SSH要想获得良好的翻墙体验,需要租赁虚拟主机或者VPS才可以达到,会产生一定的费用,虽然金额很小,但各位可以清楚的看到对于目前没有这方面的消费意识的国人还是极难接受的。

    总而言之,目前SSH代理是目前最成熟也是最稳定的翻墙方法,但会不会随着方校长专业知识的不断精进,GFW会不会也不断升级,“道高一尺、魔高一丈”开始屏蔽SSH,引入白名单,甚至有朝一日真的砍断海底光缆,建立大中华局域网呢?目前仍不得而知,但我相信没有任何东西可以阻挡对于自由之光的追寻以及无限知识的渴求和欲望。

    三、Swithchysharp+MyEntunnel=目前可行的SSH翻墙方法

    网上关于SSH代理的文章不胜枚举,我也不再占用篇幅大量复述,但大多数都是基于FireFox浏览器的,而我除了在使用办公OA网站以及网银的时候已经全面转向速度更快,占用内存更小的chrome浏览器。
    大部分的文章都介绍的是用proxyswitchy!这款Chrome浏览器插件配合MyEntunnel使用,安装之后导入规则却发现twitter、youtube和facebook网站无法浏览,起初以为是Chrome不支持远程DNS解析的原因,但后来查阅月光博客的一篇文章时发现Chrome早已支持。后来无意中发现了Switchysharp这款Chrome插件,也可以浏览它的google project网站; 并顺利的解决了上述问题,并成功导入了在线规则: http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt

    具体的使用方法和proxyswitchy一致,详细内容可以自己百度,如果有问题可以留言。

    四、免费SSH帐号提供

    最后,我在这里提供一个免费的香港ip(北京联通ping值只有70ms)的SSH帐号免费供各位试用,该帐号使用的截至日期是2013年3月17日,如有兴趣的请发送邮件到cbuntu@gmail.comE

     

  • Linode东京机房SSH默认端口被屏蔽的临时解决办法

    gfw

    就在不久前我还写了一篇针对GFW不断升级情况下比较稳定翻墙方法的文章—《截止目前最稳定的翻墙组合chome+SSH+Myentunnel+Switchysharp》,此文简单介绍了SSH代理的翻墙方法,并将方法和朋友们分享,没想到不过几天就出了新的问题。

    一、现象和问题

    • 3月11日中午吃完饭还是像往常一样通过SSH翻墙浏览网站,发现状态栏脚上的 MyEnTunnel 不断报错,重启浏览器和电脑无效,使用Putty登录也报错 “network error:timeout” ,当时以为是公司的防火墙升级后屏蔽(因为公司路由规则是屏蔽购物和社交网站的),将无线网切换到中国联通的免费wifi(地处 CBD 国贸,信号满格)依然无法登陆,但ping是正常的,发现问题严重,开始搜索解决办法。
    • 发现使用 telnet IP 22 命令也无法登录,关掉Winodows自带的防火墙以及在控制面板-服务中启动了telnet服务依然无法登陆 putty,这时候开始怀疑是否是 GFW 屏蔽了SSH的22端口。
    • 上 weibo 搜索果然如此,从3月初起,GFW在全面封杀vpn服务后再度升级,GFW深度包检测发现SSH端口有除了正常登录以外的大量 TCP 转发之后就会封掉端口,导致大量的 linode 美国以及日本机房的SSH服务的22端口被GFW屏蔽,Weibo 上不少人建议更改端口应对上述问题。

    二、临时解决办法

    Linode的主机为例,因为无法通过 SSH 连接 VPS ,只能通过 Linode shell (Lish)登录系统,Lish的具体使用方法详见: http://library.linode.com/troubleshooting/using-lish-the-linode-shell Mac或者Linux主机可以直接键入命令登录:

    ssh [lish-username]@[host-id].linode.com 

    windows用户还是通过putty客户端登录:

    用户名需要填写为Linode的console access中的“lish via ssh”,对应填入密码,保持原有端口不变(默认22);

    登录后修改sshd配置文件中的内容SSH端口:

    sudo nano /etc/ssh/sshd_config

    将其中的Port 22 更换为其他自定义端口,然后重启SSH服务:

    sudo /etc/init.d/ssh restart

    再将Putty、MyEnTunnel等客户端的端口改成相应的就可以顺利登录了。

    三、小结

    不过许多网友都说更换端口也是权宜之计,许多更换了端口的朋友再次被屏蔽,更换端口后我发现掉线的几率明显增大,也不知道能撑几天,如果再次被屏蔽,估计我只能向Linode客服发ticket申请更换IP地址了。

    生命不止 翻墙不息。E


     

  • 监测新生儿成长数据的好工具《Baby Companion》

    一晃眼,我们的小洋洋就已经一百天了, 谢谢各位的关心,孩子的成长一切正常,每次去社区医院或是妇产医院回访的时候我都会仔细记载孩子的体重以及身高数据,数据虽然基础,不过却可以直观以及有效的反映出新生儿的成长状态。下面我们来介绍一个实现上述功能的APP供各位奶爸奶妈使用:


    一、下载和安装APP

    • Withings是一家做健康管理互联网概念产品的公司,它的血压计和wifi电子秤都是非常有特点的产品,而Baby Companion是它专门为婴儿成长推出的一款移动互联网应用,我们去页面下载(目前只有IOS平台,不过Android和ipad平台很快就会推出:

     

    二、录入体重和身高数据

    • 将以前记录好的身高和体重数据手工录入到App里,开始有些慢,以后逐步养成习惯就会轻松许多:
    • Withings马上会推出一款专门给婴儿秤体重的产品Smart Kid Scale,这样Baby Companion就可以从其中直接提取体重数据,使得使用者更加方便和快捷,非常期待这款产品的发布。

    三、数据分析

    • Baby Companion 不仅仅有记录数据的功能,还能根据婴儿出生的体重进行分析,做出对应年龄的新生儿相符合的标准体重和身高数据,供父母进行监测,如果超出相应的标准数据范围,则应该立即采取行动,保证小宝宝的健康成长。

     

    • 从上图可以看到,我们的小洋洋身高在标准范围内,但体重已经超出标准范围,体重属于偏胖了,我们应该注意控制孩子的饮食,并加强对应的锻炼和活动。

     

  • 写在2012年之末

    农历的2012年即将走到终点,而我离三十岁又近了一步,孔子非要说三十而立,而我能保持不痿就不错了,话说在帝都苟活下来所需要的勇气和生命值越来越高,而我除了血槽已经临近空管以外,一直给予我屁都不值的尊严和体面的蓝瓶也快透支了,穷得买不起药水也没有加属性的戒指,眼看着身边的玩家盆满钵满的陆续开始用回城卷回家老婆孩子热炕头了,而我只能漫无目的的去野外寻找些生物链最低端的小怪砍杀寄希望于能爆出些顶级装备好让我在这个残酷且极端不公平(至少对于我)的人生网游中继续存活而不至于被kick out,因为回城之后实在无颜面对诸多NPC亲切的关怀和温暖:亲,任务完成了没有?亲,打了什么装备回来?亲,升到多少级了?

    “亲。。。亲你妹!”,除了身后一直跟着我营养不良面露菜色且伤痕累累奄奄一息天天感叹为何生不逢时的坐骑小宠物,大概是没有人会问我一句“亲,这游戏真的好玩么?”。除了满是老茧的右手和钙化的前列腺能见证着曾经的、免费的、瞬间的快乐,大概是没有人知道会问我什么时候吐一句“jesus fuck christ”,然后注销账号永远的告别这个让人的斯德哥尔摩综合症逐步走向晚期的游戏世界的,因为这个游戏里从来不缺失败者,也没人怜悯失败者,也没人会在意它的离去。

    人生如戏,吾为青衣。

    但凡演青衣的,一口一个礼仪廉耻个个都奔着贞节牌坊而去,,却人生个个苦逼,结局一个比一个凄凉,既不如长袖善舞的武旦,也不如敢爱敢恨的花旦,只能幻想着用遵守着游戏规则成为赢家。

    但你可知在天朝13号服务器里,根本没有规则可言,私服外挂比比皆是,那些字斟句酌的把游戏须知当作金科玉律的青衣们,不得不接受宿命的安排,成为弱肉强食的牺牲品。

    就说这么多了,去年还有个总结,今年不做了,没有什么好总结的,去年一摊糊涂,真希望他妈的2012世界末日是真的,到时候玉石俱废。E

     

  • 关于世界备份日的痛苦

    今天是世界备份日,讽刺的是我的 Blog 不明所以的无法访问,以我说掌握的知识已经多次尝试皆无功而返,甚至使用了 Linode 的付费 Backup 服务都无法挽救数据,只能选择重装系统,然而最关键的WP数据库文件却没有备份,这是我第二次遭遇的数据灾难,这一周的闲暇时间我都不得不用来恢复博客数据,还好以前一直用WLM离线工具来写博,总算还能从本地找回一些数据。

     

  • 用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(上)

    就在不久前我写了一篇《Linode(Tokyo)VPS主机SSH默认端口被GFW屏蔽及临时解决办法》,此文表述针对今年两会期间GFW再度升级,对Linode的Tokyo机房进行深度包探测, 一旦发现SSH默认的22端口有大量非正常的TCP转发数据流量就会予以封杀的现象,文中提出的临时更换SSH端口的解决办法在不到24小时内就失效,甚至更糟。

    一、机房搬迁

    我将端口更改后当天晚上在用SSH代理翻墙的时候就发现MyEnTunnel不断掉线,用Putty登录再度告知失败,明白GFW将新端口也封杀掉了,立即用Lish登录Linode VPS更改新的端口,依然无效,同时发现VPS的IP无法访问,Ping命令失败,这一下不仅仅是SSH无法登陆的问题,整个网站都无法访问了。

    赶紧给Linode的客服发 Ticket,客服让我提供主机到本地的双向MTR的网络诊断报告,五分钟后客服给了一个新的 IP,我更换后重启主机,发现还是 Ping 不通,继续找客服;客服无奈的回复:今晚日本机房大面积出现问题,建议我更换新的机房。

    考虑到中日紧张的关系以及 GFW 对 Tokyo 机房越来越严苛的管控,我将机房签到了 Fremont 机房,它位于米国加州,毗邻太平洋,从地理位置上看,无疑是兲朝访问速度最快的机房了,登录域名服务商,更改了域名解析,一切又恢复正常,速度也还差强人意。

    逃避不是办法,如果继续 SSH 代理翻墙,很快就会重蹈 Tokyo 机房的覆辙,于是我还是乖乖的让 22 不要跑其他流量了,于是又开始寻找其他翻墙的方法。

    二、临时翻墙工具Goagent

    如果说目前还有什么较完美的免费翻墙工具,个人认为Goagent应该算是了,网站地址如下:

    里面有详细的安装和使用说明,按图索骥,整个过程还是十分简单的。

    经过测试,速度和SSH不相上下,也可以使用我在《目前最稳定的翻墙组合chome+Myentunnel+Switchysharp》中使用浏览器插件组合,通过名单机制有效的提高浏览效率,也推荐给各位朋友。

    Goagent在翻越公司防火墙的时候却表现出来了苍白无力,部分网页无论如何更改设置都无法正常浏览。

    我又想起了SSH代理,正好此时一位朋友留言建议我使用Obfuscated-openssh方式登录SSH,否则就是逃到大洋彼岸也会被再次封杀,于是我又开始了漫漫翻墙路

    三、GFW对SSH代理封杀的原理

    要使用新的方法,首先要弄清楚为何高度加密的SSH链接方式为何还会被GFW封杀呢?下面应该解释的比较清楚:

    (图片来源:http://www.goleng.com/?p=665

    很明显,要躲避GFW对SSH协议的封杀,最重要的是对客户端和服务器端进行handshake握手的过程进行加密,使得GFW无法甄别SSH协议连接来达到翻墙的目的。

    既然弄清了封杀的原理,就很好理解Obfuscated-openssh工作的机制了,下面我们就来看一下如何在虚拟主机上配置 SSH 的混淆加密,详见《用Obfuscated-OpenSSH解决SSH代理屏蔽的问题(中》


    除非注明,本博客文章均为原创,转载请以链接形式标明本文地址

     

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!