CentOS 5.5 上升级 Xen 后遇到的一个问题

前几天用 CentOS 5.5 官方源升级我们的一台 Xen 服务器的时候发现一个问题,升级后的 xen 内核和 xend 服务都能正常启动,但是 xm 这类工具用不了:

# uname -a
Linux n46.xen.vpsee.com 2.6.18-194.32.1.el5xen #1 SMP Wed Jan 5 18:44:24 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

# /etc/init.d/xend status
xend is running

# xm list
Error: Unable to connect to xend: No such file or directory. Is xend running?

检查 xen 日志报错如下:

# vi /var/log/xen/xend.log
[2011-01-14 09:54:38 4664] INFO (SrvDaemon:332) Xend Daemon started
[2011-01-14 09:54:38 4664] INFO (SrvDaemon:336) Xend changeset: unavailable.
[2011-01-14 09:54:38 4664] ERROR (SrvDaemon:349) Exception starting xend ((13, 'Permission denied'))
Traceback (most recent call last):
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 341, in run
...
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 871, in xenschedinfo
    sched_id = self.xc.sched_id_get()
Error: (13, 'Permission denied')

这种 xen/xend 正常,xm 不能用的情况很明显是 xen hypervisor 和 xen tools 之间的匹配问题。这是因为 VPSee 以前用 CentOS 的非官方源升级到了 Xen 3.4.3,造成以前升级的 xen tools 和上面刚刚官方升级的 xen hypervisor 不匹配,所以需要把 /boot/grub/menu.lst 里面刚升级成功的的 kernel /xen.gz-2.6.18-194.32.1.el5 换成原来的 kernel /xen.gz-3.4.3,然后重启一下就可以了:

# vi /boot/grub/menu.lst
title CentOS (2.6.18-194.32.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-3.4.3
        module /vmlinuz-2.6.18-194.32.1.el5xen ro root=LABEL=/
        module /initrd-2.6.18-194.32.1.el5xen.img

W2 Servers:$4.95 512MB OpenVZ VPS

w2servers

W2 Servers 最近把他们旗下的一些新开的几个子品牌整合了在一起,比如前不久推出 25刀 4GB 独立服务器的 MyLinuxGeek 以及刚推出 5刀 512MB VPS 的 DynamoVPS 都被收编。w2servers 和 w2interactive 是一家公司,前者主攻主机托管市场,后者主要是做网站设计、软件服务和一些 SEO 之类的。不考虑其他服务商优惠促销时候的价格,在正常销售情况下他们的 VPS 和独立服务器价格都可算史上最低,至少 VPSee 也还没有见过25美元每月(年付300美元)能买到 AMD 64 3500+, 4GB 内存, 200GB 硬盘, 1TB 流量独立服务器的,别忘了他们的 VPS 和独服都是 fully managed 的。不知道 W2 Servers 有什么神奇魔方能把价格做到这么低,现在低价 VPS 和独服都很多,但是这种超低价的还很少,很高兴能看到有服务商进入这个超低价利基市场满足部分消费者需求,其实有部分消费者只是抱着玩玩或者学习的心态,不需要100%的稳定,一星期7天能用上5、6天就满足了,对性能和服务也没什么要求,一般理智的消费者对低价的东西期望不高,东西能用就 OK,只要不把奇瑞当宝马开就行。问题是现在一些做低端市场的商家承诺太多,用宝马的性能奇瑞的价格来忽悠消费者,明明做不到 24×7 非要在网站上写个 24×7 服务;明明服务器每隔一段时间就挂非要声称100%在线。有份调查报告显示,客户购物不满意主要是因为买到的东西和自己的期望相差甚远,如果用奇瑞的价格买奇瑞相信消费者是不会大哭大闹的。他们家的服务器托管在 HostNOC/BurstNET 数据中心,VPS 使用自己的控制面板 Matrix Server Control Panel,这款 VPS 现在正在 WHT 上促销中,只要36美元每年。基于 WHT 上的众多负面评论,VPSee 不推荐这家服务商。VPS 配置如下:

Shared CPU
512MB Guaranteed RAM
20GB 硬盘
10Mbps 不限流量
4.95美元每月

服务器硬件配置信息:

Intel 2.66Ghz

如何判断 Linux 是否运行在虚拟机上

在 WebHostingTalk 论坛上有些国外奸商会把虚拟机当作独立服务器卖,去年7月份的时候就有一位中国同胞上当受骗,并在 WHT 上发帖声讨,证据确凿,甚至连服务商自己也承认,回帖达355篇。这家独立服务器/VPS 提供商 HostATree.com 居然大胆的把 OpenVZ VPS 这种一看就知道是虚拟机的虚拟机当作独立服务器卖,晕,至少也要弄个 VMWare/KVM/Xen HVM 吧(更难发现是虚拟机),用 OpenVZ 这种容器也太欺负人了:)昨天恰好收到网友一封邮件问到了如何判断自己买的是独立服务器还是虚拟机的问题。这里 VPSee 简单介绍一下市面上常用虚拟技术(包括容器技术)的判别小技巧。

判断 OpenVZ/Xen PV/UML

判断 OpenVZ/Xen PV/UML 是最容易的,直接检查 /proc 下的相关目录和文件就可以知道,比如 OpenVZ VPS 上会有 /proc/vz 这个文件;Xen PV 虚拟机上会有 /proc/xen/ 这个目录,并且目录下有一些东西;UML 上打印 /proc/cpuinfo 会找到 UML 标志。写了一个简单的 Python 脚本来检测:

#!/usr/bin/python
# check if a linux system running on a virtual machine (openvz/xen pv/uml)
# written by http://www.vpsee.com

import sys, os

def main():
    if os.getuid() != 0:
        print "must be run as root"
        sys.exit(0)

    # check OpenVZ/Virtuozzo
    if os.path.exists("/proc/vz"):
        if not os.path.exists("/proc/bc"):
            print "openvz container"
        else:
            print "openvz node"

    # check Xen
    if os.path.exists("/proc/xen/capabilities"):
        if (os.path.getsize("/proc/xen/capabilities") > 0):
            print "xen dom0"
        else:
            print "xen domU"

    # check User Mode Linux (UML)
    f = open("/proc/cpuinfo", "r"); t = f.read(); f.close()
    if (t.find("UML") > 0):
        print "uml"

if __name__=="__main__":
    main()

判断 VMware/Xen HVM/KVM

如果使用的是 VMware/Xen HVM/KVM 这样的全虚拟就更难判断一些,最准确的办法是读取 CPUID 来判断,Xen 源代码下面有一段检测是否是 Xen 的 C 语言代码 tools/misc/xen-detect.c,这段代码提供了一个很好的例子,VPSee 重写了代码,用宏替代了函数,增加了对 VMware 和 KVM 的识别,用 gcc 编译后就可以运行:

/*
 * check if a linux system running on a virtual machine (vmware/xen hvm/kvm)
 * written by http://www.vpsee.com
 */
#include <stdio.h>
#include <string.h>

#define HYPERVISOR_INFO 0x40000000

#define CPUID(idx, eax, ebx, ecx, edx) \
    asm volatile ( \
        "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid" \
        : "=b" (*ebx), "=a" (*eax), "=c" (*ecx), "=d" (*edx) \
        : "0" (idx) );

int main(void)
{
        unsigned int eax, ebx, ecx, edx;
        char string[13];

        CPUID(HYPERVISOR_INFO, &eax, &ebx, &ecx, &edx);
        *(unsigned int *)(string+0) = ebx;
        *(unsigned int *)(string+4) = ecx;
        *(unsigned int *)(string+8) = edx;

        string[12] = 0;
        if (strncmp(string, "XenVMMXenVMM", 12) == 0) {
                printf("xen hvm\n");
        } else if (strncmp(string, "VMwareVMware", 12) == 0) {
                printf("vmware\n");
        } else if (strncmp(string, "KVMKVMKVM", 12) == 0) {
                printf("kvm\n");
        } else
                printf("bare hardware\n");

        return 0;
}

判断 VirtualBox/Virtual PC

什么?这种家用桌面虚拟机自己装的还会不知道?!如果不知道的话也有办法,在 Linux 下运行 dmidecode 工具然后查找 Manufacturer: innotek GmbH, Manufacturer: Microsoft Corporation 关键字就能对应上 VirtualBox 和 Virtual PC.

2010 跑路的 VPS 服务商

去年6月份的时候统计了100多家 VPS 服务商其中有16家已经跑路,统计时间跨度是从2009年6月到2010年6月,转眼半年过去了,接下来的6个月 VPSee 又陆续介绍了50多家新的 VPS 服务商,到目前已经有170多家 VPS 服务商在提供10美元的 VPS 产品,可想而知在这个狭小市场的竞争有多激烈。VPSee 写了一个检查网站可用性的脚本,通过能否正常访问 VPS 服务商的网站首页来判断服务商是否跑路,这种判断方法不是很正确,比如域名在、网站有、只是业务没了怎么判断?或者域名指向一个 Google 广告页面怎么判断?这个可以通过抓页面和解析关键字解决。来看看从2009年6月到2010年12月这期间有哪些服务商不存在了。这样的统计争取以后每半年能做一次,看看有哪些服务商跑了有哪些坚持下来了。

除了去年6月提到的这些:FierceServers, Wired9, Arbers Hosting, Supavps, XENnode, SmokyHosts, Connextnet, Host Lambda, W4Networks, EarthVPS, OneNetwork, DareDevilHosting, Buy a VPS, BuzzServers, Netspace Ltd, Nixism. 去年下半年跑路的还有:Diverse Web, Rackvm, Steadcom, TheVPSNode, RentVPS, Nerios, AMH Network, TeamVPS. 跑路累计达24家,一共检查了174家服务商,24 out of 174,算下来有14%的 VPS 的服务商在过去一年半里跑路,不算太坏。稍微翻一下以前 VPSee 对这24家的介绍和评论后就会发现,这些跑路的 VPS 服务商有这些特点:

  • 没有技术背景;
  • 刚成立不久;
  • 业务多样,不专注;
  • 对自己的业务和服务不认真,不注重版权,网站内容错误多;
  • 某某的代理(reseller);
  • 创办人来自澳大利亚、印度、巴基斯坦等国家。

没技术背景做服务器托管会很杯具。比如 Diverse Web:

很是怀疑和担心这些只需要鼠标点击就能完成的软件和依赖这类软件来构架服务器的服务商,因为看不到他们的定制、看不到他们的技术优势在哪里,没有技术优势和支持的话后面服务器出了问题就没人能解决(或者花很长时间才能解决)。

新新服务商,刚成立不久,产品和人品都有待考验。比如 SupaVPS, EarthVPS:

SupaVPS 是一家英国 VPS 服务商,域名注册不到一个月,
earthvps.com 域名 2009年4月注册,才运行不到3个月而已,

业务多样,产品平庸,不专注,什么都想做往往什么都做不好。比如 SteadCom:

这家公司业务遍及图标设计,名片设计、网页设计、网站托管、VPS、品牌设计等多个业务,好像什么都做,业务不专可不是一个好信号。

对待自己的网站、产品不认真的人怎么会对客户认真呢?随便拷贝一段文字、网站就开始忙赚钱。比如 W4 Networks:

在 contactus.html 这个页面最下方有一条 “Copyright© 2009 BurstNetworks.com.au”,

做代理(reseller)没技术优势也没成本优势,基本不能做好。比如 TheVPSNode:

第一眼看这个配置就让人感觉是 BurstNET 的 reseller,域名6个月以前才注册,

创办人来自澳大利亚、印度、巴基斯坦等这些国家。比如 SmokyHosts, XENNode, W4 Networks, Host Lambda:

whois 显示 smokyhosts 域名联系人留的地址是印度,
XENnode 是一家澳大利亚 VPS 提供者,
W4 Networks 是一家澳大利亚服务商
Host Lambda 使用 ibnefahim 的 ID 在 WHT 上发广告,继续查看所有 ibnefahim 的帖子发现 ibnefahim 是个巴基斯坦人并且人还在巴基斯坦,

1GB 的 Xen VPS 能支持多少访问量?

经常有新客户问我们:

我应该选多大内存的 VPS?
我想放个博客,再加 VPN,能不能用 256MB VPS?
我的网站每天页面访问量有2万多,独立 IP 4千多,512MB VPS 行不行?
我的论坛每天流量10万,1GB 的 VPS 够吗?
我需要跑一个 RoR/Django/Java的应用,多少内存合适?
我的网站每月300万访问量,VPS 能吃得消吗,是不是要用独立服务器?

这些问题没有统一固定的答案,在不知道客户的应用、访问量和技术能力的情况下,VPSee 很难直接给出解答。做点优化能轻松让 1GB 的 VPS 运行每月500万访问量的论坛,不优化可能需要用 2GB 的独立服务器才能搞定500万的访问量,可发挥的空间很大。所以上面问题的回答很大程度上取决于客户对 Linux 系统的理解和优化,多学习和实践一些优化会对自己有很大帮助,最大的帮助当然就是 “省钱” 了。比如,一台 1GB Xen VPS 只要34美元每月(我们 1GB Xen VPS 的价格),而一台 2GB 普通独立服务器的价格通常在99美元左右(参考 Awknet 和 PacificRack 的 Intel Core 2 Duo, 2GB RAM, 250GB/500GB HD 独服价格),同样完成每月500万流量任务,使用优化过的 VPS 可以每个月节省65美元,这个数字还是比较可观的。

现在回答标题的提问:1GB 的 Xen VPS 能支持多少访问量?简单的说,1GB Xen VPS 足够支撑一个每日访问量在20万左右的 PHP 网站或论坛。拿 Discuz! 论坛举例,经过简单优化后,1GB VPS 可以轻松满足论坛每天20万的页面访问、每个月600万的页面流量、每天1万发帖量、每月30万发帖量。所以如果客户的网站/论坛/博客的访问量每天小于20万的话不用选择超过 1GB 内存的 VPS,如果懒得优化的话可用双倍的的内存(2GB VPS 或独服)来支持20万的流量。当然还需要考虑应用的情况,比如换作一个 Ruby on Rails 中型应用可能就只能刚好跑在 1GB VPS 上,再承受20万的访问就有点困难了,所以具体情况还是要看具体应用。适当的优化可以大大节省开支并能提高服务器性能,这也是我们做这个博客和 VPS 服务的动机之一,帮助客户省钱,只有帮客户省钱我们才能赚钱。看过 64MB 的 VPS 能支持多少访问量?和这篇,相信大家就能权衡出适合自己的 VPS 内存配置了,大部分网站/论坛都不会超过每天20万流量,1GB VPS 及以下的配置适合绝大多数人。

还有一个大家经常问到的问题就是:

我有必要购买独立服务器吗?

这里的答案很清楚,如果网站/论坛访问量较低,每天都不到20万的话买独服就是在烧钱,而且99美元的独服一般都给的是一块硬盘(没有 RAID),重装系统还要收费(VPS 重装系统一般免费),所以独服不划算(不差钱人士路过可以飘过~)。

给一个运行在我们 VPS 上的真实案例,这是我们客户的一个 Discuz! 论坛,采用我们的 1GB VPS 配置方案,由于客户不想增加自己的做站成本,原服务商也无法在相同配置上优化性能满足更大的流量,所以这位客户于去年9月份使用我们的收费管理服务并迁移到我们平台上,迁移后访问量大增,VPS 性能良好无压力,12月份流量轻松上到544万,最近每天发帖都在7000以上。论坛流量数据取自 Discuz! 论坛的公开统计信息:

1gb xen vps hits

这个论坛的访问高峰在晚上8点到11点之间,下面是在北京时间晚上8点以后的截图,VPS 上除了这个论坛外还有2个论坛和3个静态网站。从截图上可以看到还有 58MB 内存可用,交换分区基本没用,负载大多情况下不超过 0.2,表现良好,log 增长很快所以前几天刚加了硬盘容量重启了一次。我们只优化了系统没有优化应用,系统最高峰的时候也没有运行饱满,所以还有很大调优的余地,完成进一步性能优化后应该可以应付每天30万的页面访问。

1gb xen vps top

Thank You 2010

很喜欢下面这句话:

The best thing I ever did with my life, was to make a mistake. The worst thing I ever did, was to play it safe and wonder “what if.”

这辈子最糟糕的事情莫过于平安虚度年华, 然后回过头说 “如果当初我 …”。为了不留下遗憾,为了安抚那颗悸动的心,为了不让自己以后说 “如果当初我做 …”,2009年底 VPSee 决定开启自己的创业探索之旅,能做自己喜欢的事情并能赚钱?这就是开始创业的美好想法,现实旅程远比想象的要辛苦,不到5小时的睡眠或就只为一个测试数据,2小时的等待或就为迁移一台服务器,成本的压力让人觉得这个行业门槛虽低但做起来一点都不容易。

2010年3月12日我们终于正式推出了基于 Xen 的 VPS 托管服务,3月14日我们迎来了第一位顾客,作为创业者,你无法忘记卖出第一份产品的喜悦;没有经历过,你无法体验过程的艰辛;没有付出过,你不能体会这种历程的美妙。幸运的是创业过程中我们没有遇到什么技术障碍,直接把多年的 Linux 和 Xen 企业环境生产经验搬到 VPS 业务上,驾轻就熟。我们遇到的最大问题主要是在成本控制方面,作为 one man 服务商我们不能把价格定得太高,我们租用的服务器也不可能像我们工作环境里操作的那些 SUN 服务器一样强悍,成本也不允许我们提供容错、容灾、在线迁移等功能。互联网时代信息都是透明的,你知道的别人也知道,我们的服务器租用成本也不可能比竞争对手低很多。那么我们只能靠技术手段来提高性能降低成本,通过裁剪 Linux 内核、优化内核参数、优化文件系统和磁盘 IO、分散多核 CPU 计算能力等一系列手段使我们能够提供至少20%以上的性能领先优势,这意味着同一配置的服务器在保证性能的情况下我们可以比竞争对手多卖出20%的 VPS、多获得20%的利润,幸运的是技术和经验没有办法拷贝和山寨,所以这20%的利润优势将会在长期的运营中得到增厚和强化,能更好帮助我们改进产品,能让我们能更长久的活下去。我们坚信在强调细化服务的今天、在高度竞争的主机托管市场,只有提供专业和差异化的产品才有可能生存下来,所以我们选择简单稳定作为我们产品的关键字。

我们一直非常的幸运,我们很幸运产品一推出就有很多客户信任我们;我们很幸运从热心网友那里收到了很多宝贵意见和建议;我们很幸运能吸引非常棒的客户;我们很幸运能结识一些业内朋友;我们很幸运学到了很多市场方面的知识和经验;我们很幸运收到一些合作邀请和机会;⋯⋯

谢谢客户对我们的支持和信任,谢谢读者对我们博客的持续关注,谢谢你,Merry Christmas & a very happy 2011,明年见!

thank you from vpsee.com

BurstNET:$5.95 512MB OpenVZ VPS(洛杉矶)

burstnet

BurstNET 终于推出了大家期盼已久的加州洛杉矶机房,因为线路的缘故,从中国这边访问美国西海岸的速度还是比较理想的。又因为 BurstNET 主要业务集中在低端市场,所以其平民价格很受欢迎,不过价格一低人就多,人多了嘴就杂,他们家的服务好评不少抱怨更多,不过好评主要集中在价格低,抱怨主要是服务慢,ticket 几天才回复的情况不少见,服务器有时要一个多星期才能上架。作为业界领先的互联网服务提供商,他们托管着3000多台服务器和200000多个域名,10多年的行业经验,拥有自己的数据中心。WebHostingTalk 和淘宝上有很多个人和小 VPS 服务商都在做他们家的代理。现在他们推出洛杉矶机房估计是发现了中国局域网带来的机会,开始抢占中国客户资源,这对中国客户来说是个好消息,有竞争才有低价可以享用嘛,但给国内的一些做 VPS 服务的 one man 服务商带来了一些压力,以后以中国客户为主要业务的小 VPS 服务商如果价格和服务上没有差异化的话可能日子会比较难过一点。他们使用 vePortal 控制面板,现在使用优惠码 LOWENDLAVPS 的话还可以得到25%的终身优惠,只要4.46美元每月的 512MB VPS 还犹豫什么呢?除了洛杉矶机房外,BurstNET 还提供美国宾夕法尼亚州的斯克兰顿机房和英国的曼彻斯特机房。VPSee 强烈推荐他们的产品。

VPSee 对 “强烈推荐” 的标准是:1、服务器/VPS/网络稳定,性能好,技术背景强大;2、品牌响,资格老,最好有十年以上行业运作经验;3、线路对中国尽量稳定,友好;4、技术服务反应快速,不是 one man,最好能提供24×7服务;5、在以上基础上价格越低越好。这是理想情况,要完全满足这5个条件的服务商是不存在的,Linode 是最接近的一个(缺点:磁盘 IO 一般,价格超过10美元,5颗星可以拿4个,赞!)。如果就差钱要价格不要服务、不在意性能的话,可以考虑一下洛杉矶机房的 BurstNET(缺点:稳定一般,性能差,服务慢,5颗星可以拿2.5个),如果考虑到我们介绍的10美元以下的 VPS 里只有不到5%能拿2颗星(满足5个条件中的2个),2.5颗星已经算出类拔萃了:)VPS 配置如下:

VPS PACKAGE #1 VPS PACKAGE #2
512MB Guaranteed RAM 1024MB Guaranteed RAM
20GB 硬盘 50GB 硬盘
1000GB 每月流量 1000GB 每月流量
2 IPv4 + IPv6 2 IPv4 + IPv6
DDOS 保护,CISCO™ GUARD DDOS 保护,CISCO™ GUARD
5.95美元 9.95美元

没有服务器硬件信息。

RethinkVPS:$5.95 128MB OpenVZ VPS

rethinkvps

RethinkVPS 的域名今年10月份才注册,不过背后的 owner 之一 Jon Beard 曾经在今年8月份的时候推出了一个 StriveHost,结果不到3个月就黄了,9月份介绍 StriveHost 的时候就非常不看好这家不尊重版权的服务商,做个网站写几行介绍这么简单的事情还需要抄袭的话那么只能说这个 one man 没有把心思放在业务上,指望 “快速” 赚钱的方法是行不通的,只对赚钱有兴趣的 one man 一旦发现做这个业务又累又赚不到钱就容易跑路,对于小的 one man 服务商来说个人信用非常重要,尤其是在发展的初期。他们家的 VPS 现在正在推圣诞节优惠,使用 25XMAS 优惠码可以获得永久25%的折扣,他们的 VPS 使用 SolusVM 控制面板,数据中心在芝加哥,目前只支持 PayPal 支付方式。他们这段时间官方网站和服务器都因为 DDoS 挂了几次,每次都有不同借口,LowEndBox 上有人抱怨刚购买就遭受了5小时的 downtime,让人很是不放心。VPSee 不推荐这家服务商,不过这里写下来作个记号,看看这家能坚持多久:)VPS 配置如下:

VPS 1.0 VPS 2.0
128MB RAM 512MB RAM
512MB Burst 1024MB Burst
15GB 硬盘 20GB 硬盘
Unmetered 流量 Unmetered 流量
2 IPs 2 IPs
5.95美元 8.95美元

服务器硬件配置信息:

We back our servers with the incredible power of Intel® Core™ Xeon Lynnfield processors, RAID Backups, paired with ultra fast hard drives and RAM.

Debian 上 /var/run/sshd/ 的所属问题导致 SSH 不能启动

前天有位客户的 Debian VPS 的 ssh 出现问题,无法正常连接,ssh IP 地址后出现如下错误:

ssh_exchange_identification: Connection closed by remote host

找客户要了 root 密码后登录检查 /etc/ssh/sshd_config 配置文件没有发现问题、防火墙关闭状态、sshd 进程也在,企图重启 sshd 出现如下报错:

# /etc/init.d/ssh restart
Error: Starting OpenBSD Secure Shell server: sshd/var/run/sshd must be owned
by root and not group or world-writable.

原因是 /var/run/sshd/ 运行时环境目录出现权限所属问题,删除这个目录后重启 sshd 就可以了:

# rm -rf /var/run/sshd/
# invoke-rc.d ssh restart

利用 Linux 内核的多个安全漏洞获得 root 权限

系统安全高手 Dan Rosenberg 发布了一段 C 程序,这段200多行的程序利用了 Linux Econet 协议的3个安全漏洞,可以导致本地帐号对系统进行拒绝服务或特权提升,也就是说一个普通用户可以通过运行这段程序后轻松获得 root shell,以下在 update 过的 Ubuntu 10.04 Server LTS 上测试通过:

$ uname -r
2.6.32-21-server

$ gcc full-nelson.c -o full-nelson
$ ./full-nelson 
[*] Resolving kernel addresses...
 [+] Resolved econet_ioctl to 0xffffffffa0131510
 [+] Resolved econet_ops to 0xffffffffa0131600
 [+] Resolved commit_creds to 0xffffffff8108b820
 [+] Resolved prepare_kernel_cred to 0xffffffff8108bc00
[*] Calculating target...
[*] Failed to set Econet address.
[*] Triggering payload...
[*] Got root!
#

由于 RHEL/CentOS 默认不支持 Econet 协议,所以测试没有通过:

$ uname -r
2.6.18-194.26.1.el5

$ gcc full-nelson.c -o full-nelson
$ ./full-nelson 
[*] Failed to open file descriptors.

如果在企业环境用 Ubuntu 的话可能会比较杯具了,几百个帐号里总可以找到一两个帐号被内部或外部人员通过上面这段程序拿到 root,这对服务器的危害是毁灭性的。前天还在说 Ubuntu 在内核方面无作为,现在想起来还有点后怕。VPSee 提醒正在使用多个普通帐号登录 Ubuntu VPS 的朋友及时升级或打内核补丁,出售 VPN/SSH 帐号、提供免费 SSH 的商家尤其要小心 “客户” 捣乱,使用其他 Linux 发行版的朋友也最好检查一下自己的 VPS 有没有这些高危漏洞。