虚拟机跑虚拟主机?!
虚拟机跑虚拟主机?头一次见到。。
公司的一个客户,老板是美国的,他的虚拟主机客户大多都是美国佬。服务器都是linux系统,垃圾邮件巨多,上次给他配postfix,累的半死。
这个客户的license还经常失效。我们公司的虚拟主机管理平台是针对CPU频率、主板、网卡的信息经某算法生成唯一序列号,由序列号生成一份证书文件。当管理平台运行的时候,会检查证书文件,不匹配则无法启动。所以客户换了硬件,就需要重新做license。
License失效,每次登陆过去都会发现他的服务器有硬件变化。这次一看,网卡的MAC地址又变了,难道他经常换网卡玩?可是美国佬信誓旦旦的保证绝对没有换任何硬件。重新做了License,先把我们的虚拟主机管理平台弄好了再说。
没事了就开始分析,原来的MAC地址和现在的MAC地址除了最后一位有差别之外,其他完全一样!如果这是两块网卡的话没,绝对罕见,MAC地址的后24个bit是随机生成的,几乎见不到重码或者相邻的地址,怎么会有两个地址就差在最后一位?
下了个Phpsysinfo,顶到了服务器上。一运行吓了一条,网卡是AMD的xxxx,IDE设备是VMWare xxxx xxxx,SCSI设备是VMWare xxxx xxxx,显示设备是VGA …… 这是标准的虚拟机啊!难道客户是在虚拟机里边跑web服务器和mail服务器。。。
Ping了一下他的IP,ttl=48,reply=400ms,看来是linux的服务器。因为网关是xxx.xxx.xxx.127,所以我ping 127以前的IP。Ping 126~121返回的都是ttl=48,都是linux服务器。Ping到IP是120的机器的时候,终于露出马脚了,ttl=112,就是这台windows服务器上跑着虚拟机。128-112=64-48=16,中间的路由器还不少。
补充说明:
ping一台运行tcp/ip的主机,可以由返回的ttl生存期判断其操作系统
linux的ttl通常是64
windows通常是128
unix通常是254
为了进一步验证,扫描其端口,发现开放了3306和3389。用远程桌面登陆3389,成功与其建立连接,虽然没有密码。。。
那么如何证明那几台虚拟机是跑在这个服务器上的呢?先ssh登陆到一个linux主机,然后telnet目标服务器的902端口。结果果然成功建立连接,是VM Ware GSX Server 3.0 的身份验证端口,提示输入USER和PASS登陆服务器。又打开了VMWare3.0客户端,去连接那个服务器,成功建立连接,不过没有密码,验证这一步过不去。。。
至于怎么黑了他,明天再说了。头一次见到居然有人在虚拟机上跑服务器,真是变态,而且还开了5、6个虚拟机,变态到极点。另一个疑问的就是,虚拟机的网卡的MAC会因为重新启动虚拟机而改变么?
在硬件条件允许的情况下,虚机的安全性比较好吧。。
就好像windows下的chroot。。
楼主说的很是激动人心啊。。跟小说似的。。
不过。。为什么要先ssh到那个linux主机呢。。直接vmware那个112ttl的主机不行么。。
手头没VMware,不如直接telnet一下方便。。
后来在大机上装了一个。。
单个P4-2.6的服务器,居然可以跑N个虚拟机,而且还是做服务器,服了那个主了。
要不另外一种可能,他被他的主机托管地方给“黑”了。