Author: Ken

  • 使用SSH突破移动WAP网关封锁

    上次说到使用Openvpn通过移动WAP网关来使得电脑上网,现在某些地方的移动网关已经进行了屏蔽,可以想象,现在只是还没有大量的企业应用,一旦有了真正的移动企业应用,比如一直在推广的黑莓,SSL隧道是不可能被完全屏蔽的,下面我要说的是,使用另外一种方法通过移动的WAP网关来使得电脑可以上网,此方法通常被用在安全连接远程局域网应用中,比如,在VNC没有对协议进行加密之前,网络管理员不得不使用SSH端口转发来使得远程连接VNC变得更为安全,这样,VNC的数据传输都是通过SSH转发的,不会有对外暴露VNC端口的危险,那么,很显然,我们可以使用这种方法,将HTTP代理服务器的端口转发到本地,也就是SSH tunnel,移动的WAP网关屏蔽了代理服务请求,但是它不能屏蔽加密协议通过,因为它没有办法知道传输的是什么,要达到上述的目的,需要以下条件:

    1,一台公网服务器
    2,公网服务器安装有SSH服务器
    3,公网服务器安装有代理服务器,squid,tinyproxy等
    4,居家旅行杀人越货必备软件putty

    首先,当然是使用putty进行设置,通过移动的WAP网关10.0.0.172:80,然后设置转发端口,例如,在公网服务器上代理服务器的端口是8080,我们想通过SSH隧道把它转发到本地的8080端口,如图所示:


    设置完成之后,即可登录服务器,如果没有意外发生的话,我们可以在putty的日志中看到如下字样:

    2008-01-19 12:41:32 Allocated pty (ospeed 38400bps, ispeed 38400bps)
    2008-01-19 12:41:34 Started a shell/command
    2008-01-19 12:41:41 Opening forwarded connection to localhost:8080

    这表示端口已经打开,你可以使用浏览器设置代理服务器为localhost:8080,然后就可以上网浏览啦,网上盛传的多是修改浏览器UA以达到欺骗移动WAP网关从而浏览网页的目的,经过处理,移动WAP网关输出的网页头均带有WML标记,使得浏览器无法正常显示,当然,还可以修改mime type使得浏览器能够正常显示,这对于一般用户来说基本上是很困难的,而使用SSH进行端口转发,也只是极少数网络管理员可以使用的方法,对于大多数人没有意义,这里只是提出一种方法,这种方法被大规模的应用,是在一个不太合适用来表述的环境中,我们说到,加密的协议,是无法被网关识别的,显然,网关知道是一些加密的数据通过,但是网关不可能知道这些数据是什么,也就无从进行屏蔽,这种方法,被广泛应用在XX功的破网软件上,即使是GFW也不能检测到,因为它不是明文的,我一直在猜测这些个软件的工作原理,大致如下,以工作步骤为序,大家可以探讨:

    1,使用境外DNS对动态域名进行解析,通过SSL隧道得到若干通知服务器地址,这些通知服务器都是各国动态IP。
    说明:国内DNS对一些境外网站进行了屏蔽,特别是一些不听话的动态域名服务商,例如较为著名但迅速在国内销声匿迹的no-ip,使用境外DNS能得到准确的地址。
    2,根据通知服务器返回的地址,得到正在工作的SSL隧道内容服务器地址,这些内容服务器当然也是各国的动态IP。
    说明:可以屏蔽域名,也可以屏蔽IP,但是不能屏蔽动态IP,不能屏蔽DSL线路上的IP,如果IP地址在这个星球上刚好够用,才能解决这个问题,无论IP地址是缺乏,还是剩余过度,都不可能进行准确的屏蔽,使用SSL隧道是必须的,因为GFW会直接过滤掉明文的非法内容使得链接断开,也就无法继续下面的通信。
    3,使用内置的stunnel对内容服务器的ssl隧道转发到本地某个端口,使得浏览器只需打开类似于http://127.0.0.1:1234 这样的链接即可浏览内容服务器上的内容。
    说明:直接调出ssl内容服务器的IP地址带有风险,会使得网监人员的封锁变得有目的性,而普通用户也会困扰于浏览器因为错误的证书弹出的提示,使用stunnel转发,给普通用户一个较为友好的界面,我认为这才是最主要的目的。

    下面我们讨论一下屏蔽的可能性,在第一步,屏蔽境外DNS是不可行的,当年169工程就是试图建立一个完全国内的网络,不过很快就被证明是失败的,只要在第一步没有办法屏蔽境外DNS对动态域名进行的解析,后面的就没有办法了,屏蔽对特定的动态域名解析是可行的,但是只要不把境外的动态域名服务商都屏蔽掉,这基本上没有太大作用。走向第二步,就没有什么办法可以屏蔽了,全是加密过的IP链接。至此,我实在是想不出来什么办法可以屏蔽这样的一个过程,可以考虑从源头着手,重点屏蔽通知服务器,不过,如果这些通知服务器和内容服务器都是在一起的,互相之间可以通知网络的变化,连成一个随时变化的动态网络,那就没办法了,综上,唯一可以屏蔽的地方就是在使用境外DNS对动态域名进行解析的地方,这是没有经过加密的数据。

  • MySQL Proxy

    我考虑了一下Mysql数据库服务器负载均衡的架构,发现大多数应用似乎没有加载mysql-proxy,当然本意是为企业版本开发的,那么在这之前的load balancing,他们是用什么来做的呢?使用管理节点+集群的方式是一种,不过我估计PF中的address pools应该也可以,而且PF的方案更有通用性,但是设置过于复杂,且牵涉到具体网络结构,mysql-proxy是一种全新的方案,大家可以把它和mysql的关系理解为squid和apache的关系,不过mysql-proxy并不包含cache的部分,这部分由第三方连接池做了,当前的web应用,瓶颈其实都在数据库,奥运门票预订网站的垮掉,正是这种瓶颈的体现,并不是说在前端没有瓶颈,而是数据库的瓶颈尤为明显。

    Mysql-proxy是一个很小巧的程序,只需要一行命令即可执行,如果仅仅是代理的话:

    mysql-proxy –proxy-address=202.202.0.10:3389 –proxy-backend-addresses=10.0.0.2:3306

    不过很显然,这样做就没办法在mysql中限制访问数据库的IP了,因为都是本地的访问,如果是mysql集群,那么可以用下面的命令来进行负载的均衡:

    mysql-proxy –proxy-address=202.202.0.10:3389 –proxy-backend-addresses=10.0.1.2:3306 –proxy-backend-addresses=10.0.1.3:3306 –proxy-backend-addresses=10.0.1.4:3306

    mysql-proxy是一个简单的程序,因为它仅仅是做一个代理,如果加上Master-Slaves的方式来做集群,然后把数据库的读写分离,应该是效率非常高的,但是,很多程序的读写并不是分离的,mysql-proxy中指定了一个参数,可以read-only,很大程度上这个参数是多余的,因为在mysql中去统一管理读写的不同用户,更为合理,如果mysql-proxy能把read-only和write-only分开,那么就完美了,把read-only请求转发到Slaves,把write-only请求转发到Master,使用一个端口,一个用户,就能够读写到不同的数据库服务器。

    MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include: load balancing; failover; query analysis; query filtering and modification; and many more.

  • 轻歌浪语操一曲

    腾讯的业务人员水平越发低下了,用手机上过QQ网站的就知道,QQ手机网站屏蔽的,那是一塌糊涂,稍微沾点边的关键字就屏蔽了,我倒是很理解,因为总是有很多对手盯着嘛,看你出错了就去网监那边告状,但是这种关键字屏蔽大概是全局的,即使是它自己的业务,它也没考虑过是不是要上这种屏蔽手段,看下面示意图,我们都知道屏蔽的是哪个字,关键是,这个字很不健康?语言都是一样的,没有具体语言环境,一个字是无法表现其具体含义的,所谓“操”字,是一个很健康的字,它是一个动词,通常我们可以说,操起笔来,操起铁钎,而且是一个很有力,很迅速的动作,你看这屏蔽的,自己的业务都没办法正常显示了,在中国互联网此起彼伏的屏蔽浪潮中,单字屏蔽,是不应该被使用的,而有些明显有指向的词汇,也是不能被屏蔽的,比如强奸,它可以用在强奸民意中,而并非我们通常所理解强奸的含义,而且古人并不用强奸这个词语来表达我们现在通常表达的含义,而是用另外一个词语:奸污。QQ手机网站之所以屏蔽这个字,一方面是因为业务人员水平不高(之前的钓鱼岛被屏蔽,也是一样的原因),认为这个字代表了淫秽的含义,另外一方面是因为,QQ用户数量过于庞大,已经出现了管理上的问题,庞大的数据量使得整个系统变得自由化起来,不收紧,就很容易出问题,这仅仅是一个字,但是由这个字,我们就可以想到,为什么清朝会有那样一些文字狱,我搜尽记忆,能想到最为淫秽的关乎这个字的一句诗,莫过于:

    轻歌浪语操一曲!

    以下些许淫诗淫词供大家欣赏,不是我写的,网上流传有多个版本,我选了比较押韵用词比较合理的版本。

    卜算子
    淫水湿阴毛,
    飞血出阴道。
    已是两人赤条条,
    唯有鸡巴翘,
    疼也不出声。
    只把春来叫,
    待到精液四射时,
    她在床上笑:还要,还要!

    泌园春
    做爱如此多招,
    令无数男人尽折腰。
    芳草上下,
    淫水滔滔,
    欲与猛男玩几招。
    一代天娇,
    还会吹箫,
    吹得你早上弯着腰。
    俱往矣,
    数风流人物,
    全干通宵。

    表表好汉武二郎
    话说好汉武二郎,功夫练在鸡巴上。
    景阳岗上尻死虎,快活林里日死狼。
    二龙山上没啥弄,曾经搞死三只羊。
    这天武松又兴起,可叹身边无姑娘。
    只好自慰砍传子,对着山下放空枪。
    不知这事咋恁巧,下面有一小姑娘。
    一股热流洒下去,射了姑娘一脊梁。
    姑娘沾着尝了尝,放开嗓门开了腔:
    日他个爹尻他娘,谁家稀饭没放糖!

    看过山歌三人组节目的人就知道,民间艺术,很大程度上就是在人性最本质的那一页上漂浮,代表作《现打斑鸠现钳毛》,有兴趣的可以去下来看看。