Archive for the ‘技术 | Info&Tech’ Category

March 23rd, 2011

对ssh和vpn代理服务进行二次中转的探讨

  现有北京和美国VPS各一个分别为VPS_BJ和VPS_CA,流量和配置都比较给力,xen虚拟化,从我所在的客户端直接访问北京VPS非常极速,但访问美国VPS有点偏卡,主要原因是我客户端所在的接入网不给力。另一方面,国内最近对https盯的很严,特别是对翻墙小白来说,访问Gmail等服务有点困难。人家方sir有6个vpn,俺不能比,俺只能把手头有限的几个服务发挥到极致。

  想法一:能通过53端口的OpenVPN蹭网,并且能蹭上后让翻墙小白无障碍访问Gmail等服务。做法是在VPS_BJ上搭建53端口的OpenVPN实现蹭网。然后在此VPS_BJ上另跑一个ssh -D进程连接到VPS_CA,实现动态端口转发,从而在VPS_BJ上创建了一个Socks5代理。客户端只要通过此OpenVPN蹭上网后,然后设置代理为VPS_BJ上创建的代理端口即可无障碍访问Gmail等服务。

 image

  其中VPS_BJ上的ssh进程参数是

1
ssh –CND 10.0.0.1:23 username@vps_ca

  这里有几点是需要注意的:首先,bind_address一定要写成VPN内网IP,这样Socks5代理就只在内网中有效,保证了这个代理只有连上OpenVPN后才能使用,极有效的防止了滥用。其次端口最好绑定一个1000以内的常见但不用的端口,如23 telnet,原因你懂的,不过绑定1024以内的端口需要root权限,谨慎操作。最后,为了防止这个ssh连接死掉或者网络故障挂掉,非常有必要结合inittab中的respawn或者自己写expect脚本实现ssh的自动重连,本文在此不做讨论。

  想法二:我从客户端直接ssh -D连接到VPS_CA有点卡,经常掉线很郁闷。希望VPS_BJ能在中间起个中转的作用,看似绕了一个弯,但实际上速度却更快。实现方法也非常简单明了,直接在VPS_BJ上起一个ssh -L的本地端口转发进程即可,千万不要忘了-g参数,以在所有的interfaces上监听被转发的端口:

1
ssh -g -L 7001:vps_ca:22 username@vps_ca

  之后从PC照旧ssh -D连接VPS_BJ的被转发端口即可。

image

  上述解决方案从VPS_CA通过ssh -R反向连回来也行,如下操作:

1
ssh –R *:7001:localhost:22 username@vps_bj

  需要注意的是,因为ssh -R也是默认只监听lookback这个网口的,需要修改VPS_BJ的sshd_config打开GatewayPorts,同时bind_address参数要写成*才行。

image

  显而易见,从复杂性上,反向远程端口转发不如正向的本地端口转发的方案。另外,上述两个方案也同样需要有对ssh连接进行断线或定时自动重连的考虑。

Tags: , , , , , ,

March 5th, 2011

Bicycle Driving to 798

  早晨10点多睡起来,宿舍的雄提议,骑车刷街去798,带头大哥和我立马响应,给力啊!这几天北京的天气不错,加上郁闷了一个冬天了,本来就特别想出去放放风。

  提前在Google地图上规划了路线。三环辅路的自行车道上经常停着机动车,而四环因为隔离出了独立的自行车道而且没什么停车,也没有三环堵,所以就走的四环,然后从四元桥沿机场高速走没多久就到798了。算了一下单程大概十七八公里,来回共35公里吧。

  去的路大半程都很顺利,特别是路过北辰桥时,速度可以提到30km/h多,温暖的阳光洒在路上,三个追风的男孩儿,非常美。从四元桥往京密路拐的时候颇费了些周折,因为路牌标识基本都是给机动车准备的,然后自行车和机动车道又是分开的,加上四元桥又拆成了东西两座桥。不过还好我们手机中有地图和GPS。

  798一如往常,各种艺术品,各种文艺青年,各种好车,在里面穿插逗留了大概一个小时左右,计划从原路返回。路过奥体中心时,总觉得这么回去还有点遗憾,雄又临时提议绕一圈奥体公园和森林公园,结果又是一呼两应,给力啊!

  果然给力,在五环上的一段和奥林东路上借着两个下坡,码表速度显示已经飙到了38.5km/h和39km/h,太刺激了!特别是第二段,我极力的加速,虽然仍然没有突破40km/h,不过已经非常cool了,后来mm说都快赶上她开车的速度了,哈哈。

  最后满足的回了学校,加上中间逗留时间,共费时3:52:35,极速39.0km/h,总里程52.47km,差不多正好从我们家到蓝村火车站的车程。感谢雄,感谢带头大哥,朋友神马的最给力!

bicycle_driving_798

bicycle_driving_798_sigma

January 7th, 2011

成功在CDMA手机中单独烧写另一张卡的EVDO鉴权码

  现有条件:水货Sprint CDMA无卡槽手机一台;中国电信手机卡两张,其中A卡查到了IMSI、ESN/MEID、Akey三码,B卡查到了AN-AAA两码;手机已写入A卡的三码,语音功能正常。目的:将B卡的AN-AAA写入手机,实现语音走A卡计费,EVDO数据走B卡计费。

  写号的工具无非CDMA Workshop、QPST、QXDM这三个,通常写IMSI、Akey时使用CDMA Workshop最方便,写AN-AAA时使用QPST最方便,最原始的清ESN/MEID什么的用QXDM这个比较高级的工具。

  1. 首先,手机中已经写入了A卡的三码,要上EVDO时通常都是用QPST,所以我们使用QPST先把M.IP这个标签页的NAI内容写好,注意都是写A卡的相关码,如下图:
    qpst_nai Read the rest of this entry »

Tags: , , , , ,

December 20th, 2010

开启Google Maps 5 for Android的矢量和离线功能

  紧跟Nexus S的发布不几天,Google就把革命性的Google Maps 5 for Android放到了菜市场上供下载。新版的应用包含矢量3D和离线两个最炫的功能(当然大陆是没有3D的啦),但是在我的Sprint Hero CDMA上更新后却无法开启这两个功能。很多网友同样也抱怨自己的机器有类似的现象。XDA上的大牛Brut.all给出的解释是一方面Google会根据手机类型、OS、网络所在国家决定一系列功能的开启与否,另一方面,许多旧机器硬件上(包括G1)是具备Multi-Touch功能的,但是被软件给锁住无法开启。

  还是XDA最给力,综合了几个大牛的指导,完美的解决方案如下:

  1. 首先手机必须要提权到root,这个不用多说。
  2. 接下来完全卸载删掉手机原ROM自带的或者手动安装的Google Maps(去/system/app和/data/app找找)。
  3. 然后下载安装Brut.all新修改的Maps 5应用
  4. 这里下载多点触摸补丁,解压缩到/system/etc/permissions目录下,并且设置权限为644。删除或者重命名手机里原有的多点触摸xml文件。
  5. Reboot。

  Google太给力了!不过我用WireShark抓包观察过Google Maps for Android与Google服务器之间的交互,尽管走的还是http请求,但是数据全部都是二进制的不可读的,跟Google Maps API完全没有任何交集。也许Google根本不想公开手机端的API。Anyway,现在终于能用上最新的矢量+离线功能了。

by

ny

Tags: , ,

December 6th, 2010

实验室服务器被黑记(下)

  本来这篇文章写的差不多了,后来一直忙,存成草稿没有发,直到最近才想起这回事来。简单分析了一下被植入的脚本,才学疏浅,有误的地方请同学们多指教。

  让我们先来看一下植入脚本的文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
root@delleon:~/tmp# find . -printf '%y %p\n'
d .
d ./conect1
f ./conect1/autorun
f ./conect1/run
f ./conect1/bash
f ./conect1/LinkEvents
f ./conect1/start
f ./conect1/inst
d ./conect1/r
f ./conect1/r/raway.e
f ./conect1/r/rnicks.e
f ./conect1/r/rversions.e
f ./conect1/r/rkicks.e
f ./conect1/r/rsignoff.e
f ./conect1/r/rtsay.e
f ./conect1/r/rpickup.e
f ./conect1/r/rsay.e
f ./conect1/r/rinsult.e
d ./conect2
f ./conect2/m.pid
f ./conect2/autorun
f ./conect2/m.lev
f ./conect2/run
f ./conect2/alongi.seen
f ./conect2/.192.168.1.98.user.swp
f ./conect2/vhosts
f ./conect2/bash
f ./conect2/m.set
f ./conect2/LinkEvents
f ./conect2/xey.seen
f ./conect2/cron.d
f ./conect2/start
f ./conect2/m.ses
f ./conect2/inst
f ./conect2/update
f ./conect2/192.168.1.98.user
f ./conect2/192.168.1.98.user2
f ./conect2/mech.dir
d ./conect2/r
f ./conect2/r/raway.e
f ./conect2/r/rnicks.e
f ./conect2/r/rversions.e
f ./conect2/r/rkicks.e
f ./conect2/r/rsignoff.e
f ./conect2/r/rtsay.e
f ./conect2/r/rpickup.e
f ./conect2/r/rsay.e
f ./conect2/r/rinsult.e
d ./conect3
f ./conect3/autorun
f ./conect3/run
f ./conect3/bash
f ./conect3/LinkEvents
f ./conect3/start
f ./conect3/inst
d ./conect3/r
f ./conect3/r/raway.e
f ./conect3/r/rnicks.e
f ./conect3/r/rversions.e
f ./conect3/r/rkicks.e
f ./conect3/r/rsignoff.e
f ./conect3/r/rtsay.e
f ./conect3/r/rpickup.e
f ./conect3/r/rsay.e
f ./conect3/r/rinsult.e

Read the rest of this entry »

Tags: , ,

December 2nd, 2010

利用53端口的OpenVPN蹭网

      验证53端口是否开放有个最简单的办法,直接nslookup几个域名,看返回结果。如果能正确返回的话则说明53端口是开放的。

      只要主机/VPS支持,搭建OpenVPN的过程其实非常简单,Linode的这篇搭建OpenVPN的知识库教程写的太好了,不差于网上许多牛人的Blog,更别说那些转发来转发去不标注出处的抄袭了。

  1. 安装OpenVPN
  2. 生成各种密钥
  3. 配置服务器和客户端的configure文件
  4. 修改IPv4流的转发和配置iptables
  5. 建立连接,查log监控

      感谢中国移动、中国联通、中国电信,感谢那些提供通过Web验证来计费上网的宿舍。ISP们,乃们颤抖了吧。

Tags: , , ,

November 25th, 2010

Simplenote API Proxy in PHP

  长久以来我一直在寻找一款能够在Android、Windows、Linux桌面,或者Web之间进行简单文字同步的工具,随手写一两行plain text,以进行备忘,提高工作效率,节省时间。Evernote非常不错,但是没有Linux桌面支持是硬伤。后来发现了Simplenote这个服务。

  Simplenote提供的是非常简洁高效的文字同步服务,所需要关注的只有标题、文本、标签、时间等等,几乎没有什么冗余的元素,而且支持Android、iPhone、Web等许多客户端,并且开放API,这些正是我所需要的。然而可惜Simplenote的服务架设在Google App Engine上,同时大量的客户端在同步的时候使用的是https来进行请求,这在景德镇是访问不能够的事情。可是我实在非常喜欢这么一款服务。

  借助@yegle同学的twip思想,我花了点时间用php写了一个Simplenote的API Proxy,托管在了github上。因为加入Simplenote的API Group需要提交申请,他们的工作效率太低了直到我写完才给我通过,进去后才发现原来Simplenote已经发布了v2版的API,不过貌似我接触的几个客户端都是用的是旧的v1版。其他列在TODO list中的东西有https/http适配、如何处理cookie这两个个问题。先不管了,用apktool修改了Android上的一个Simplenote客户端AndroNoter,然后修改了Firefox的插件QuickFox Notes,都改用我自己搭建的代理访问,它工作起来真像一个charm!

Simplenote

  恩,如果有一款Android上的4*4的Widget就更好了,直接离线显示一篇text就可以了。不知道是否有时间折腾,最近太忙了。

Tags: , , ,

November 11th, 2010

REST简介

  明天的讲座PPT。

  Ruby on Rails是目前对REST风格支持最好的框架。不过话说回来,我不太看好这个框架,除非Ruby把吃内存过大的问题从根本上解决掉,否则部署的成本会非常高昂,事实为证:我们实验室的VPS扩到1024M内存,才勉强支撑起一个大型的和几个小的Rails应用,之前512M的时候根本吃不消。

Tags: ,