Shell's Home

Feb 26, 2010 - 1 minute read - Comments

关于无线的安全问题

一个无线路由只有150上下,安装方便使用简单,可以让你在床上躺着的时候还能和朋友聊天。大多有笔记本的家庭都会考虑买一个无线路由,组建自己的无线网络。不过先别高兴,如果你选择买来就用,我想你碰到艳照门只是个时间问题。下面简单说一下无线网络从决策到安全完成安装的全步骤。 首先是决策,无线路由不是随便用的。有几种情况我建议你重新考虑这个问题。有孕妇者不用,这东西的辐射虽说不大,也不是忽略不计的。万一我乌鸦嘴,你孩子出点啥问题,你触不触的慌啊。电脑全堆在一起可以拉线者不用,这种情况下再买无线纯属烧包。房间太大者不用。最后一个要用也可以,建议你买多个。无线网卡在收信差的时候速度很慢,用起来很不爽,而且辐射大,所以一定要保证你的家里能被无线信号完整覆盖。一台标准路由器能覆盖的范围大约是10-30米内的所有区域,加穿一道普通墙(非钢筋水泥承重墙)。普通人家买一个无线路由器可以覆盖全家,但是我不保证有钱人家…. 其次是采购,推荐大家选择好一点的无线路由器,但是不用太贵。差的无线路由器往往不控制辐射功率,你高兴家里天天开一个大功率辐射源么? 后面跟着的是环境检测。如果你有android,有一个软件叫做wifi检测仪,可以检测周围的wifi信道和功率。挑选一个比较空的信道,否则人家的通讯就会变成你的背景噪音,从而降低网速,增加辐射。而后确定你的无线路由的最佳安装位置——通常是在网络出口处。但是如果造成信号覆盖不好,可以考虑加长网线。毕竟加长网线只是一次的事情,天天断线再连接就痛不欲生了。 然后是基础安装——这个都会,就不多罗嗦了。 最后是重头,安全设置。请先设置不广播SSID,这样别人扫描的时候,你的AP是隐藏的。当然,如果你高兴,可以在AP名字上把偷网的人骂一顿。我记得某个咖啡厅的AP名字就是“你还要不要来杯咖啡”。其次,需要选择WPA加密,WEP的破解时间太短,在你通讯频繁的情况下,最多几个小时肯定可以破解——最少只要几分钟。而且更麻烦的是,一旦WEP被破解,对方可以嗅探到你的通讯包。到时候所有的聊天记录,明文密码,全部都是敞开了让别人看的。WPA即使别人破解了AP能上网,最多也只能上网而已。除非使用主动嗅探技术,否则无法造成威胁——而主动嗅探会造成你的网络超级不稳定,马上会被发现。 以上两步保证了别人无法连接进你的网络,而下面我们还要保证网络内的安全。 请先给你的路由器和Windows账户更换一个强密码——你可以自动登录和使用浏览器记录密码来避免输入,但是一定要强。否则当有人进入你的网络的时候,如果一次就拿到了管理员权限,其他安全措施就没有意义了。然后开启路由器防火墙,禁用所有的人连接,除非特定MAC地址。这样只有指定的几个机器可以上网,一般人进入网络后的兴趣就小了很多。最后,请开启你电脑的防火墙,以免进入网络的人利用漏洞进入主机系统。 最后,如果有条件的话,可以用vmware部署一个honeypot,做一个漏洞百出的系统,引诱入侵者先进攻这里。一旦他发起进攻,那么你马上会发现他的踪迹——不过这个就不属于普通用户的范畴了。

Feb 23, 2010 - 1 minute read - Comments

领导的艺术

啥都不说,先上背景阅读。 帕金森定律 英国著名历史学家诺斯古德・帕金森通过长期调查研究,写出一本名叫《帕金森定律》的书。他在书中阐述了机构人员膨胀的原因 及后果:一个不称职的官员,可能有三条出路,第一是申请退职,把位子让给能干的人;第二是让一位能干的人来协助自己工作;第三是任用两个水平比自己更低的人当助手。这第一条路是万万走不得的,因为那样会丧失许多权利;第二条路也不能走,因为那个能干的人会成为自己的对手;看来只有第三条路最适宜。于是,两 个平庸的助手分担了他的工作,他自己则高高在上发号施令,他们不会对自己的权利构成威胁。两个助手既然无能,他们就上行下效,再为自己找两个更加无能的助手。如此类推,就形成了一个机构臃肿,人浮于事,相互扯皮,效率低下的领导体系。 曾仕强似乎说过,一个能干的干部起什么作用?一个能干的干部只能证明他的所有下属都是白痴。 所以,从上推导,我们只要找一堆傻瓜当干部,公司就能兴旺?

Feb 22, 2010 - 1 minute read - Comments

PC使用android上网

最简单的方法是使用android-wifi-tether,不过我这里使用不成功,原因不明。所以今天我们不去说他,我们说另外一个软件,azlink(http://code.google.com/p/azilink/)。 首先是安装。检查是否满足安装条件,如果满足的话,安装apk,这个不用多说。azlink.ovpn需要复制到电脑上,并且准备好openvpn和adb。另外,推荐在手机上也保存一个azlink.ovpn和adb,openvpn,以便在多个机器上使用。 下面开始正式的连接操作,作为测试,请先关闭手机的wifi上网功能和电脑的wifi,有线,以免影响测试结果。本文中的范例系统是Debian Testing(Squeeze),网络环境是中国移动的CMNET(8元80M包月,很合算的)。如果环境有所差异,请照您的环境做相应调整。 1.使用usb线连接andriod和PC,此时android上会出现USB已连接的提示。 2.在android上执行azlink,并且勾第一个勾,Service active,保证系统运行。此时状态应当是Warting for connection。 3.在PC上执行adb forward tcp:41927 tcp:41927,此时可能出现service start。这个是首次运行的原因,不影响结果。 4.执行openvpn azlink.ovpn。此时会出现虚拟网络,并且android上的状态发生变化。 5.在android上,设置->高级属性->手机信息中,查看下面的GSM信息,一般能看到网关和DNS。请去ping一次网关,如果成功,你的事情已经成功了大半。 如果上面不成功,请联系我。如果成功,请在你的系统内重设DNS。azlink.ovpn将你的DNS指向了手机上,可手机本身无法做DNS的。因此请将你电脑的DNS重设为手机上的值。如果你高兴,也可以将azlink.ovpn中的值改掉,理论上说一个地区的移动网络中,DNS应当都是一样的。不过如果你要跨地区,这个DNS就会发生变化。因此,我无法预先给定值,也无法获得。 这是整个过程中最关键的一步。很多人说为什么无法上网,其实是可以的,只是你的DNS没有指向正确的值而已。 6.如果是CMNET,事情就到此为止了。如果是CMWAP,你还需要做一小步。找一个CMWAP能够访问的代理,设到你的浏览器里面。 作为关闭,其实拔线就可以了。不过作为程序员,我们习惯完美的析构过程。所以,下面是关闭过程。 1.恢复浏览器原先的代理设置。 2.断开openvpn,此时android上的状态会恢复Warting for connection。 3.PC上需要执行adb kill-server。这样会kill掉adb的daemon进程,否则adb会一直假转发,并且始终占用进程号。 4.在android上,关闭Service active的勾。并且,如果你喜欢,可以kill掉进程以回收内存。 5.拔USB线。 如果你曾经关闭了手机的wifi,电脑的wifi和有线,现在也可以恢复了。

Feb 21, 2010 - 1 minute read - Comments

ext3下小文件的恢复

ext3下如果误删除了文件,恢复起来是异常麻烦的。如果是小文件,其实很多时候不用走常规文件恢复的路子,只要能找到内容就好了。基本思路是从磁盘中直接搜索内容,然后设法复制出来。 恢复条件: 文件没有被覆盖。如果被覆盖了,那就绝对没有希望了。 文件不大(通常建议在16K以内)。如果很大,下面一个条件就很难满足。 知晓文件内的特定关键字。条件是,文件每4K内,你必须知道至少一个关键字。因为ext3通常将4K内容连续存放,每知道一个关键字,可以恢复4K内容。如果缺少关键字,那就无法恢复了。 文件保存的版本不太多。 满足以上条件后,使用以下方法进行恢复: # grep -abn "id_insert_stmt_param" /dev/xvda1 4799010:713068605:sql_id_insert_stmt_param = "SELECT NEXTVAL 使用grep对/dev/xvda1磁盘进行搜索,需要管理员权限直接访问设备文件,搜索哪个物理磁盘可以用mount来确定。 713068605是相对偏移地址,如果保存了多个版本,可能有多个偏移地址。 他们的选择和确定是个非常麻烦的问题,所以文件保存的版本不能过多。 $ python >>> (713068605/4096)*4096 713068544 >>> exit () 以上过程可以在常规权限下操作,使用python(或者其他你高兴的计算器)确定该偏移地址的块首地址。 # dd if=/dev/xvda1 bs=1 count=4k skip=713068544 > 1.tmp 将这个块的内容复制出来,注意磁盘上必须有足够空间,否则搞不好会将原始内容覆盖。 更严谨的方法是将内容dump到其他磁盘设备的挂载点下,做异地磁盘恢复。 以上方法可以恢复一个块的内容。手工恢复所有块后,将内容拼接,就是你要恢复的文件。

Feb 16, 2010 - 1 minute read - Comments

李琼点名

1. 我的大名:Shell.E.Xu 2. 我的小名:贝壳 3. 谁传给你的:李琼 4. 生日想得到什么礼物:电脑 5. 近期压力大的事:女朋友 6. 未来想做的事:写程序 7. 有没有喜欢的人:有 8. 同学聚会要回去找老师吗:不需要 9. 跟谁出去最幸福:这个… 10.如果你的两个好友吵架了:吵吧,别打起来 11.跟情人最想去哪:宅 12.圣诞节要做啥: 宅 13.最想跟谁过圣诞节:这个… 14.有没有赖床的习惯:有 15.有几个兄弟姐妹:记不清了 16.最喜欢的一首歌:When you believe 17.喜欢什么颜色:深蓝 18.现在在做什么:点名 19.最想大声说什么:低调,低调 20.半夜敢不敢自己上厕所:去吧,又不是坟场 21.谁很欠打:我自己 22.现在很迷什么:程序 23.睡相:不打呼 24.现在的时间:Sun Feb 14 17:58:36 CST 2010 25.是否痛恨传给你点卷的人:不 26.体重多少:这个… 27.天气:冷 28.你若中乐透最想做什么:买房子 29.大学生一定要玩的活动:集体打游戏 30.引起失眠的原因:程序没写完 31.有流口水的情况吗:有 32.近期开心的事:无 33.你经常通宵不睡:偶尔 34.你会和爱自己的人还是自己爱的人结婚啊 :我自己也不知道 35.会喜欢上点你名的人么:恩,很喜欢,但和爱情无关 36.对我的印象:还成 -*被点到必填, -*请老实回答每一问题。 ­ -*不能擅自涂改题目。 ­ -*写完请点9个人,不可以不点。 ­ -*完后请通知那9个人他被点到了。 ­ -*排名不分先后。­ ­ ­ 是谁传给你这份问卷的 :李琼 你们认识多久了:一年多吧 你觉得ta对你来说重要吗:还成

Feb 3, 2010 - 1 minute read - Comments

CNNIC的证书

最近,技术圈里面在争论CNNIC的证书被加入到信任根证书里面的问题。本文章试图和专业人士探讨这一变化的过程,以及向非专业人士说明会造成的影响。所有段落前会标明针对的群体。 事情的起源,是有人发现CNNIC的证书被加入了Mozilla和系统的信任根证书链里。这引发了大家对早年CNNIC所做的流氓软件的回忆,因此大量技术人士强烈反对。所做的反应包括发起BUG讨论提请Mozilla删除CNNIC的证书,发起投票,写信给Entrust阐述问题等。下面会简述一下信任根证书链,还有CNNIC的背景和历史。 本段适合非专业人士阅读。我们在访问一个网页的时候,通常有两种常见的通讯方式。http和https。区别在于,https会使用网站证书加密通讯过程。证书加密包含了几重的意义,首先,证书保证了你们的通讯没有第三者能截获。其次,证书验证了你访问的网站,是否是他号称的那个网站。也许很多人无法理解,这两种攻击怎么可能发生。要理解一点,中国电信也不是铁板一块,你完全无法指望他们的员工也绝对安全。否则的话,为什么所有银行都使用https来加密访问过程呢? 本段适合专业人士阅读。那么,不使用证书会发生如何的攻击呢?一旦有某个人更改DNS(这东西让百度都吃了亏),以某个服务器替换了你的银行(或者gmail)。那么,你访问你的目标域名的时候,就会被定位到他的中间机器上,他再使用代理技术,通过ssl访问目标服务器。整个过程如同走代理一样,唯一的问题就是你的密码泄露了。那么证书是如何防御这个攻击的呢?如果你访问目标机器,目标机器会让你验证一份证书,标明他的域名(用于防止域名劫持的),签署者。一旦域名不符合,或者你不信任证书,就会报警。那么攻击者如何复制这个证书呢?首先他无法通过访问的方式获得证书原文,因为证书给你的其实只有公钥部分。其次他无法将这个过程也代理下来,因为如果这么做,下面的内容就全是不可解的了,那他就纯粹花钱把自己弄成代理服务器了。最后,他也无法生成,因为按照规定,只有域名的拥有者可以向特定的单位申请证书。于是,他无法复制证书,攻击就会失败。 本段适合非专业人士阅读。然而,你需要信任什么证书呢?如果你要一家一家的信任证书,会发生什么?你见到是否信任就会习惯的去点,这对安全于事无补。因此,这里引申出一个证书链的问题。通常系统内内置了一些证书,这些证书叫做信任根证书。这些证书的权限是,可以让你信任其他证书。而被他们授权的证书,则分为可以继续授权和不可以继续授权两种。一旦被他们签署授权的证书,最起码你访问的时候不会有警告了。现在,CNNIC加入了这个根证书链。那CNNIC是个什么公司呢?他自称是中国科学院下属的中国互联网络信息中心,服务于科学和研究的机构,但很多人指出CNNIC的直接主管是工信部。当年,CNNIC推出中文域名服务,这项服务需要在几乎所有人的电脑内安装插件。他为了提高安装率,使用了不可删除的保护技术。这导致很多人的电脑安装后,无法卸载程序。至于安装呢?也不全是自愿安装(我不排除自愿者,绿霸还有自愿的呢)。他们曾经利用系统漏洞,向大量电脑上强行安装插件。而且CNNIC还借助官方身份,大量推行中文域名——其实他们根本就不是政府机构,而是非营利机构。并且,在前两年拼命忽悠CN域名,最近又突然停止域名解析(虽然是国家规定的),道歉赔偿啥都没有。大家自己想,真的可以信任这种公司么? 本段适合所有人阅读。现在CNNIC已经进入了信任根证书链,如果配合国家级的DNS劫持技术,理论上可以构造一个假的mail.google.com,或者www.hotmail.com。走代理,自己给自己签署一个证书。从而获得你的完整会话。这里(http://autoproxy.org/zh-CN/node/66)有比较大的说明和讨论。 我对这个事情的观点是。作为Mozilla或者任何根证书的发行机构,在没有直接证据的情况下,不大可能拒绝一个国家级机构的要求。然而,无论任何原因,信任一个机构,就代表你要为他的行为负责。如果CNNIC做出任何危害用户安全的行为,Moziila,微软,Debian.org会被我作为同罪者考虑和抵制。同时,系统发行的根证书系统,是否要去信任,是我们每个人的问题。如果你觉得CNNIC根本不值得信任,那么你可以删除他的所有证书,以及签署了他的所有证书。目前而言,我删除了CNNIC和Entrust的所有证书。

Feb 1, 2010 - 1 minute read - Comments

手机又丢了

昨天出去玩,拉小黄出来溜冰,结果被还了一个电脑。我还要买一个键盘给别人,手上一堆东西,再打车去见人。时间紧,手上大包小包一大堆,下车的时候两手满满的。下车了再一拍兜——杯具啊~~~~手机丢了。 估计是放兜里面没放的太进去,于是联系去找。大众的调度��嗦嗦的,问你上车时间下车时间车号前后排什么的,问了一堆。我当时心就一凉。司机每天要开车的,总算还比乘客靠谱点。下一个乘客上来,那可就彻底讲不清了。要验证我的身份,大可以等东西找到再说。估计这堆罗嗦问题就是要等到说下个乘客可以上车,然后再推说可能是乘客问题,让你无话可说的。所以大家车上丢了东西,就别指望调度了。 消息回来,果然找不到,手机满电的,也关机了。于是只有紧急停机,外加修改了所有在上面涉及过的密码,包括我的QQ,MSN/Hotmail,Gtalk/Gmail,还有张老师的blog。这里普及一个常识,手机使用的时候,一定要将手机设定为和SIM卡绑定。然后在手机丢了以后,立刻停机。这样做的主要目的是防止手机诈骗,例如打给你朋友,说你车祸了在急救,这里是医院,赶紧汇钱到XX账户啥的。我的朋友一般还比较懂行,肯定会挂了拨我号码以验证是否是我本人——问题是,那还是打到他手机上啊。人家和你够铁够仗义才付钱,万一被骗了,你好意思不赔他损失么?所以,丢了一定要停机。而SIM卡绑定,对于专业人士来说不难解,而对于业余人士则不好解。如果是外行捡到,卖给玩手机的就要被宰一刀,所以最好的思路是打上面几个人的电话问问要不要把手机买回去什么的。如果手机没绑定,大多都是拿到就用了,这个选项根本不可能。至于记录IMEI号什么的——你还没那个面子让移动封掉这个手机。另外上面如果用过QQMSN什么的,也赶紧改密码。不要心存侥幸,一天也许没事,两三天万一他解锁出来了,你哭都来不及。 至于数据么,大部分都有备份,但是所有人的联系方式肯定都泄密了。大家如果看到其他人,用别人的手机,宣称我如何如何的——别信他。半年内的联系人可能需要重新添加,回头我会一一联系。 至于其他么,半年内和我发过短信的,你们的短信都曝光了。和我照过相的,你们的照片都曝光了(这可不限半年,实际上我刚买的时候照的都还在)。其他数据应该没什么风险了,以上。 以下不算钱: 啊~~~~我的手机啊,又要买新的了,怨念。

Jan 29, 2010 - 1 minute read - Comments

一个远程下载verycd的小技巧

贝壳家里开了emule,天天下载,问题是又不能每次都是晚上添加资源。 怎么办呢?不知道大家知道不知道,emule是可以网络管理的,端口是4711。不过不是https,密码容易泄露。而且贝壳已经有一个nginx服务器了,也懒的再做端口映射,换端口。于是,在nginx中做如下设定。(当然,贝壳是放在https段中的) location ^~ /emule/ { rewrite ^/emule/(.*)$ /$1 break; proxy_pass <http://hostip:4711>; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 然后,用https://dynname/emule/就可以访问你家里的emule了,记得密码设强点。 接下来,verycd里面曾经有复制所有连接的选项,现在没了。面对几个链接,也就手工复制一下,面对上百个连接,贝壳就无语了。贝壳试验过几个插件,都无法正确识别ed2k的链接获取。那怎么办呢?这时就要请出我们伟大的Linux。 需要准备的工具是lynx,请预先装好,然后如下操作。(范例是个动画^_^) wget -c <http://www.verycd.com/topics/2779234/> lynx -dump -listonly index.html | grep "ed2k://" | sed "s/.*ed2k/ed2k/g" | grep -v BIG5 > out.txt wc -l out.txt lynx的-dump选项是将某个网页全部渲染成文本进行展示,这是html2text的好方法,效果还不错哦,不过中文支持好像不是很好。而-listonly则是展示出页面上的所有链接,这就拿到了我们需要的原始数据。 然后,我们取其中的ed2k行,忽略其他链接,再通过sed转换,去除头部的编号和空格,这样就可以得到所有的ed2k链接。 我在下面是用-v BIG5的参数,忽略了其中繁体中文的资源,然后输出到一个文件中。数数行数,52行,大致和文件个数相当(其中好像有两个v2)。那就是可用资源了,复制到emule的控制页面中——出错? 这是因为emule的控制页面使用GET方式传递参数,因此有长度限制。你需要将链接10个一批往里面复制——有个几次就OK了。当然,如果还是多,贝壳回头会写一篇文章,介绍如何使用curl自动干这事情——这还不算太难。 这就是为啥贝壳喜欢Linux的原因了。相比Windows下的两个解决方案,找插件太费劲,自己写程序更费劲。Linux使用现有工具的组合可以轻松完成这一任务。

Jan 19, 2010 - 1 minute read - Comments

关于减少使用gmail的建议

这次,google又不走了。 事情处于很奇怪的状态,google本是不可能留下的。既然它留下了,我们说,事有反常必为妖。这次妖在哪里呢? 我建议大家减少使用gmail,最好别用。原因如下: 如果google的却是受到了某些关于知识产权的攻击,但是却愿意在中国留下,并且在发生这次的事件后,还能留下。这说明google(非中国的谷歌公司)已经和北京达成了某种秘密的和解协议。无论这个协议的细节是什么,我们有理由猜测,google的产品不能完全的信任了,包括gmail,google reader,bloger等。 另一方面,如果google并没有受到这些攻击,那就是出于各种原因的新闻炒作。既然google背弃不作恶的宣言在前,那杯葛在后也是自然而然咯? 所以说,如果google打算继续在中国留下,那么包括gmail在内的各种google产品,都必须视为非安全产品看待。建议尽量减少使用,并准备替代方案。