教你戴套儿操GFW
07月 13, 2007 on 12:20 am | In 未分类 | No Comments汗,check了几遍,确认没有漏掉最后的W…
Tor 是一个工具集,帮助各类组织和个人增强互联网上活动的安全。 Tor 能够匿名 Web 浏览与发布、即时通讯、IRC、SSH 和其他基于 TCP 协议的应用。 Tor 同时提供了一个平台,软件开发人员能够在上面构建具有内建匿名性、安全性与隐私保护特性的新的应用程序。
但是tor在中国有着更为特别的含义。
1.tor在fedora core 6/7,redhat,centos下的安装:
- yum install tor
在debian/ubuntu下安装:
sudo apg-get install tor
安装需要root权限。如果yum,apg-get失败,则需要到tor.eff.org下载源代码进行安装。
- configure --prefix=/opt/tor/
- make
- make install
这些都是屁话。会用linux都会安装。问题是yum 或是make 报错了呢?祝贺你,你就照着错误的提示一个个地把所缺少的组件比如可以GCC啦什么的全下载下来安装上吧。
2.tor的启动:
直接在命令行中输tor就可以了。
注意看他的提示。由于tor要搜索加密proxy构建物理链路,因此启动后需要过一段时间才能提示现在安全的回环链路已经构建成功,这时你才可以使用tor.我的电脑上用了5分钟才成功。
3.tor的使用:
早先tor是作为一个http代理来用的,后来进行改进,现在是在9050端口提供socks代理。因为那个著名的torbutton Firefox已经不管用了,请直接设置IE/firefox让它们使用本机127.0.0.1:9050作为socks代理来访问网络。
同理,tor不能自动地保护你的其他网络应用,需要为这些应用设置代理才可以使用。
4.关于安全:
理论上Tor是安全的,但是tor仍然不能破坏它传输的数据中建立的安全机制,比如你通过tor作代理了访问网站,并在网站的表单中登记了某些信息,或是接受的网站的cookie,这些仍会显露你的行踪。除非你保证这些网站都不出卖你。所以tor仍是不安全的。当然某些应用,比如拿tor先做一次跳板…..通过tor 来ssh控制某一台肉鸡,用它去执行SSHScan,Passsword Guess等操作,那还是非常爽的的!~
lighttpd with secdownload,构建安全高效的下载站(应对迅雷有高招了)
07月 12, 2007 on 11:53 pm | In 未分类 | 1 Comment下载站是一类特殊的站点,站长们已经不需要为流量担心了。他们只需要担心服务器的负载了。尤其是现在迅雷等近乎掠压者的软件出现以后。
lighttpd是近来日渐流行的一个轻量级,着眼于高负载性能的开源的,免费的web服务器软件。在很多方面比如mod_rewrite方面与行业巨头apache很相似,
使得从apache往lighttpd上的迁移成本相对较低。
但是个人感觉,lighttpd还是着眼于高负载载上并不失灵活性。例如为了迎合日渐流行的在线视频站点如youtube类站点的胃口,还专门出一个针对flv下载的模块,
这个模块相当偏门。
lighttpd上还有一个专门针对下载站点的模块:mod_secdownload
根据其官方wiki文档,mod_secdownload有四个配置选项:
- secdownload.secret = <string>
- secdownload.document-root = <string>
- secdownload.uri-prefix = <string> (default: /)
- secdownload.timeout = <short> (default: 60 seconds)
在这个模块出现以前,人们也曾有几个思路去应对盗链:
1.修改WEB应用。比如直接通过PHP读取文件内容,发送二进制码。由于发送过程完全可控,这个对访问者的控制完全准确,比如想限制只有登陆用户才可以下载等等,易如反掌。问题是,每一次下载都通过php进行,严重地影响了服务器的效率。磁盘IO,CPU占用都容易跑满。
2.编程实施,自行设计一些服务器模块。比如weidy同学以前好像做过IIS下的过滤器,思路是在IIS中通过插入Hook,检测对静态下载文件(zip,exe,rar等文件的HTTP请求头中是否存在一个特定的Cookie,而这个cookie是有有效期的。当然这是可以的,我还有更好的思路,那就是,自己写一个web server,你想干什么就干什么,你要加一个彩蛋以便每当有用户访问时都要你站长大人先按一下电话按键用户才可以继续下载都行…..问题是,不是所有人都会。而且,实施也是一大麻烦。
3.基于服务器的现有模块,依照某些访问特性,比如来源页面(HTTP_REFERER)进行限制。但是,现在的盗链网页已经非常聪明了,迅雷更聪明:它能精确地学习前人在下载该软件时的数据,模仿性地发送特定的HTTP_REFERER(说不定将来连COOKIE也一起发送),非常牛B.所以像车东简单地这样写上:
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^http://(www\.)?niernier\.com/.*$ [NC]
- RewriteRule \.(mp3|rar)$ http://www.niernier.com/archives/000445.html [R=301,L]
- #RewriteLog "logs/rewrite.log"
- #RewriteLogLevel 3
已经没用了,当然用这个防止通过baidu搜mp3还是可以的,对迅雷,没用。某些牛X的网站好像也能突破这种简单的防盗链。
好了,现在看看light官方网站给出的办法:
首先,某些东西是一定要经常改变的.或者是Cookie,或者是URI,等等。而URI是最好操作的。
另外,URI中一定要有一个加密性的东西,在secdownload中,secdownload.secret选项就是让站长自行设置的一个密串。(当然这个密串要足够保密>>>)
然后,我们用PHP来生成软件下载链接:
- <?php
- $secret = "verysecret";
- $uri_prefix = "/dl/";
- # filename
- $f = "/secret-file.txt";
- # current timestamp
- $t = time();
- $t_hex = sprintf("%08x", $t);
- $m = md5($secret.$f.$t_hex);
- # generate link
- printf('<a href="%s%s/%s%s">%s</a>',
- $uri_prefix, $m, $t_hex, $f, $f);
- ?>
看到了吗?这个新的链接包含了md5后的密钥(“verysecret”,在lighttpd.conf中指出),同时包含了时间特征串。这个时间串与文件名,密钥一起参与了md5计算,以便对下载客户端提交的URI进行校验。如果不把时间放进去md5,客户端便可以假造URI,任意修改时间串。
还是把官方给的lighttpd.conf中的相关配置也给出:
- server.modules = ( ..., "mod_secdownload", ... )
- secdownload.secret = "verysecret"
- secdownload.document-root = "/home/www/servers/download-area/"
- secdownload.uri-prefix = "/dl/"
- secdownload.timeout = 120
现在,把你所有的页面的链接改成用这个php操作运算过的新地址吧。这个新地址被正确地被lighttpd解码并进行传送。
有趣的是,如果访问的URL已经超时失效,lighttpd送出的头是“408 Request Timeout” ,这不是一个标准的HTTP协议头,这是为了欺骗一下客户端。
当然,没有什么能永远防止疯狂下载。更妥善一点的情况是,这个下载地址并不是在html中直接给出,而是通过javascript来写出。即便是这样,如果hacker们
愿意,他也可以让一个firefox在后端访问该页并解析javascript最后遍历dom节点…. 得到该地址。你的地址每2分钟就超时,他也可以每2分钟来造访一次,拿到新地址。但是 有几个网站能够得到这种级别的高手的青睐呢?
为什么是这样?
07月 12, 2007 on 1:25 am | In Ruby, 未分类 | 1 Comment优化ruby版的分词,从44s每一千文本文件到了20多秒每一千文本文件后,再也优化不下去了。烦闷之极,发现这个现象:
[st@localhost segment]$ ruby segment.rb
time:24.292177
[st@localhost segment]$ ruby segment.rb
time:18.223328
[st@localhost segment]$ ruby segment.rb
time:17.331675
[st@localhost segment]$ ruby segment.rb
time:17.316683
[st@localhost segment]$ ruby segment.rb
time:17.275409
太神了,我连打几次命令,它自已运行就越来越快了?
Bug,又见Bug…
07月 11, 2007 on 7:56 pm | In 未分类 | No Comments最近老遇到稀希事儿:我是不是可以买彩票去了呢?
1.这一阵遇到的第一个Bug:
svn的bug
2.第二个:mysql客户端中,不能按上下箭头来得到历史命令,相反,一有向上箭头mysql client就crash掉
。
3.也是mysql:某一空表插入数据时 mysql 报错:lost connection.后来运维查了一下,是GLIBC的一个
Bug造成的。
4.Ruby的:open-uri库无法解析形如”http://www.sohu.com”这样的域名,报错为:路径为空,改
为”http://www.sohu.com/”,再运行就Ok.但是http://www.sohu.com应该算是一个合法的URL吧?
5.andot的:PHP-RPC的3.0 beta5给在注释中给了一个例子,是这样的:
- $obj->invoke("add",array(2,3));
但是invoke方法的声明是:
- function invoke($method,& $args);
第二个参数是传址的。
这个更标准的做法是:
- $arg=array(2,3);
- $obj->invoke("add",$arg);
原因是,传地址的参数在很多情况下需要在函数体内被修改,array(2,3)这个是一个常数,
$arg=array(2,3)才是一个变量。在php4.2.0以后,传不可修改的常数类给带&的函数,是会直接报Fatal
ERROR的。
不过人家只是在注释里这么写,我有点吹毛求疵了。但是很多phper都容易犯将常数传址的这个
错误。包括大师级的,我也见过犯这个错误的。
6.PHPMyadmin也给我带来了一个彩蛋,呵呵。不过重现性较差,难以遇到:在某次操作之后,突然页面全变成了黑方框或问号,再刷也是这样。不过过了10分钟之后再看,就正常了。我只能理解为,数据在网络传输的过程被修改了,应该不算PHPMyadmin的Bug.
关于svn的小技巧和一个Bug
07月 8, 2007 on 2:35 am | In 未分类 | 2 Commentssvn status 是一个很有用的命令。不管是什么Zend,还是Eclipse,整合上的svn不是速度慢就是有bug,经常手工进行一些操作才能继续工作。我推荐用svn status . 来查看一下当前目录修改状况。我碰到过我明明改过好几个文件,eclipse愣是没探测出来,结果我看这个目录全是绿色的勾,放心地delete了然后重新检出一份开始干活,结果就是发现我要把前两天的工作重新再来一遍!
配合shell,可以更方便:
自动找到要删除的
svn status .|awk ‘($1==”!”){print $2}’|xargs svn delete
自动找到要添加的
svn status .|awk ‘($1==”?”){print $2}’|xargs svn add
svn status .|awk ‘($1==”M”){print $2}’|xargs svn ci . -m “”
权宜之计,不可常用,用多了会让你的版本控制一版混乱。。。
另外:svn 不会将当前目录下的链接加入版本控制。这意味着:
a.如果您不想把某些目录/文件加入版本控制,那最简单的办法就是:在其他地方建立目录,然把在你的svn工作目录下用软链接链到那个目录。
b.如果发现svn co出来的文件缺少东西,那很可能是因为在import的时候,链接类的文件/目录没有提交。
SvnServe有一个Bug:
当你修改了svnserve.conf中的选项,给svnserver加上权限设置后,有时是认证用户不能检出,有时是不能提交,总之,按他的文档说是你该做的都做了,
可就不行。解决办法是,确保svnserve.conf中关于anon-access这一项的值是none.这个问题我和几个朋友都遇到过,表现大同小异。从来没有这样的道理,
认证用户具有可写权限,而未认证用户就什么权限都不能有。而一旦未认证用户给了读或是写的权限后,认证用户虽然给了写权限但还是无法co的情况就更….这
实在是一个让人难受的bug!
偶的像册写完了
07月 8, 2007 on 2:03 am | In Ruby | No Comments昨天下午,myspace.cn罗川一行过来演讲。用手机抓拍了几张,打算放到空间上来。
没想到的是,这个gd又不含jpg的支持。
于是一郁闷,用ruby写了一个简单的像册。
在http://photo.162cm.com/
不过目前服务器上仍缺Rmagick或是ImageMagick,所有的照片我只能是忽乱地放一些上去,等缩图用的imagemagick装上之后,就可以给大家秀秀我的照片了。我的电脑上都存了几个G的照片了。
覃总真是个有洁癖的人,服务器上一点也不肯多装。而我就不含忽,一来就给他用上10%以上的CPU占用。
Ruby On rails真是个好东西。
这样一个能上传/生成缩略图/管理/检索的像册(带顺手加了一个thickbox特效),两个小时就搞定了。另外,为了简单,它还不是Mysql做的存储。为了方便迁移,我把图处信息都放在文本文件里面。
听说RoR已经在JavaEye等一些较大的商业性网站上运行起来了,每天确认能支撑50W的Pageview 估计慢慢会火起来的。
就这点水平吗?
07月 1, 2007 on 2:08 pm | In 未分类 | 4 Comments你们就扫吧。
- 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:42 +0800] "GET /wwwroot. rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 4 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:42 +0800] "GET /www.rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 5 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:51 +0800] "GET /web.rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 6 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:52 +0800] "GET /bbs.rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 7 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:52 +0800] "GET /news.rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 8 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:53 +0800] "GET /vip/hksl .asp HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 9 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:54 +0800] "GET /hy.rar H TTP/1.1" 404 12749 "-" "InetURL:/1.0"
- 10 222.78.88.72 www.162cm.com - [01/Jul/2007:05:52:54 +0800] "GET /vip.rar HTTP/1.1" 404 12749 "-" "InetURL:/1.0"
以为会用工具扫就是黑客了吗?鄙视你们!有种去扫国防部! 个人博客你拿下了有意思吗?
靠!我都知道要把User-agent改成Mozilla/Firefox 2.0 至少站长看到了不会怀疑.
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^