用 root 安全登录 VPS 的方法

VPS 好比一个 Internet 上的独立服务器,有 root 权限,有独立 IP,完全暴露在 Internet上,所以用 root 登录 VPS 操作时要特别注意安全问题,这年头无聊的人太多了,如果你对安全问题还有犹豫,抱有“我这个小站没人理”的想法,那么打开 /var/log/secure 看看有多少 IP 多少次企图登录你的服务器?

我刚开通的一个 VPS 还来不及用,过几天打开 /var/log/secure 一看,发现 n 个 IP 访问了 n 次。一个 IP 地址为 213.115.115.113 的机器1天内2600多次猜测用户名/密码企图登录。这是 log 文件片段:

Jun 28 13:49:23 blog sshd[3462]: Received disconnect from 213.115.115.113: 11: Bye Bye
Jun 28 13:49:24 blog sshd[3695]: Invalid user radu from 213.115.115.113
Jun 28 13:49:24 blog sshd[3703]: input_userauth_request: invalid user radu
Jun 28 13:49:24 blog sshd[3695]: pam_unix(sshd:auth): check pass; user unknown
Jun 28 13:49:24 blog sshd[3695]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=static-213-115-115-113.sme.bredbandsbolaget.se
Jun 28 13:49:26 blog sshd[3695]: Failed password for invalid user radu from 213.115.115.113 port 51310 ssh2
Jun 28 13:49:26 blog sshd[3703]: Received disconnect from 213.115.115.113: 11: Bye Bye
Jun 28 13:49:27 blog sshd[3910]: Invalid user raducu from 213.115.115.113
Jun 28 13:49:27 blog sshd[3921]: input_userauth_request: invalid user raducu
Jun 28 13:49:27 blog sshd[3910]: pam_unix(sshd:auth): check pass; user unknown
Jun 28 13:49:27 blog sshd[3910]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=static-213-115-115-113.sme.bredbandsbolaget.se
Jun 28 13:49:30 blog sshd[3910]: Failed password for invalid user raducu from 213.115.115.113 port 52740 ssh2
Jun 28 13:49:30 blog sshd[3921]: Received disconnect from 213.115.115.113: 11: Bye Bye
Jun 28 13:49:31 blog sshd[5280]: Invalid user raul from 213.115.115.113
Jun 28 13:49:31 blog sshd[5293]: input_userauth_request: invalid user raul
Jun 28 13:49:31 blog sshd[5280]: pam_unix(sshd:auth): check pass; user unknown
Jun 28 13:49:31 blog sshd[5280]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=static-213-115-115-113.sme.bredbandsbolaget.se
Jun 28 13:49:33 blog sshd[5280]: Failed password for invalid user raul from 213.115.115.113 port 54742 ssh2
Jun 28 13:49:34 blog sshd[5293]: Received disconnect from 213.115.115.113: 11: Bye Bye
Jun 28 13:49:35 blog sshd[5540]: Invalid user robert from 213.115.115.113
Jun 28 13:49:35 blog sshd[5570]: input_userauth_request: invalid user robert
Jun 28 13:49:35 blog sshd[5540]: pam_unix(sshd:auth): check pass; user unknown
Jun 28 13:49:35 blog sshd[5540]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=static-213-115-115-113.sme.bredbandsbolaget.se
Jun 28 13:49:37 blog sshd[5540]: Failed password for invalid user robert from 213.115.115.113 port 56483 ssh2

所以安全问题不可小觑。有2种方式可以增加 root 登录 VPS 时的安全性,这2种方式绑在一起用最好,如果怕麻烦的话至少要用其中的1种。

禁止 root 直接登录 sshd


继续阅读 »

VPSville:$8 64MB OpenVZ VPS

vpsville

VPSville 是一家加拿大公司,2007年成立,公司团队全部来自程序员和系统管理员,号称有50年以上的 IT 从业经验。拥有自己的设备,自己定制的控制面板,可随时更换操作系统,不 oversell,工作人员携带 Blackberries 随时提供24/7服务。VPS 配置如下:

服务器在 Toronto, London, Los Angeles, Dallas
OpenVZ
自己定制的控制面板
5GB 硬盘
64MB Guaranteed RAM,128MB Burst RAM
100GB 带宽
8美元

服务器信息如下:

Our high-performance Quad Core Intel Xeon servers with 8 GB of Memory, redundant power supplies, and redundant NIC’s are all attached to their own Redundant Array of Independent Drives (RAID) 3Ware storage array utilizing the latest long-life Seagate drives.
Four Tier 1 upstream providers
Cisco™ powered network using Hot Standby Router Protocol (HSRP)

Linux kernel 的 sendfile 是如何提高性能的

现在流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能,那到底 sendfile 是什么,怎么影响性能的呢?sendfile 实际上是 Linux 2.0+ 以后的推出的一个系统调用,web 服务器可以通过调整自身的配置来决定是否利用 sendfile 这个系统调用。先来看一下不用 sendfile 的传统网络传输过程:

read(file, tmp_buf, len);
write(socket, tmp_buf, len);

硬盘 >> kernel buffer >> user buffer >> kernel socket buffer >> 协议栈

一般来说一个网络应用是通过读硬盘数据,然后写数据到 socket 来完成网络传输的。上面2行用代码解释了这一点,不过上面2行简单的代码掩盖了底层的很多操作。来看看底层是怎么执行上面2行代码的:

1、系统调用 read() 产生一个上下文切换:从 user mode 切换到 kernel mode,然后 DMA 执行拷贝,把文件数据从硬盘读到一个 kernel buffer 里。
2、数据从 kernel buffer 拷贝到 user buffer,然后系统调用 read() 返回,这时又产生一个上下文切换:从kernel mode 切换到 user mode。
3、系统调用 write() 产生一个上下文切换:从 user mode 切换到 kernel mode,然后把步骤2读到 user buffer 的数据拷贝到 kernel buffer(数据第2次拷贝到 kernel buffer),不过这次是个不同的 kernel buffer,这个 buffer 和 socket 相关联。
4、系统调用 write() 返回,产生一个上下文切换:从 kernel mode 切换到 user mode(第4次切换了),然后 DMA 从 kernel buffer 拷贝数据到协议栈(第4次拷贝了)。

上面4个步骤有4次上下文切换,有4次拷贝,我们发现如果能减少切换次数和拷贝次数将会有效提升性能。在kernel 2.0+ 版本中,系统调用 sendfile() 就是用来简化上面步骤提升性能的。sendfile() 不但能减少切换次数而且还能减少拷贝次数。

再来看一下用 sendfile() 来进行网络传输的过程:

继续阅读 »

XenVZ:$6.5 64MB Xen VPS

xenvz

XenVZ 是一家英国公司。whois 显示 xenvz.co.uk 域名2007年12月注册。没有关于公司的信息,只留下电话和邮寄地址。在 status.openitc.co.uk 上列出了 XenVZ 正在运行的9台 VPS 服务器的状态。openitc.co.uk 上有和 xenvz 的相关信息,openitc 和 xenvz 好像是一家,都是由 David Man 和 Sean McRobbie 在2007创立的。VPS 配置如下:

Xen/OpenVZ
XenVZ 自己的控制面板
5GB 硬盘
64MB RAM,128MB SWAP
50GB 带宽
6.5 美元

不绑定用户,可以月付,自由切换操作系统,也提供 OpenVZ。6.5 美元是打折价格,原价是16.4美元,优惠截止日期:2009年8月31日。服务器信息如下:

We use the latest state-of-the-art Intel Core 2 Quad-Core and Intel Xeon Quad-Core CPUs, 8GB of RAM and RAID 1 storage for maximum performance at low prices.

Neosurge:$6.95 128MB Xen VPSN

neosurge

Neosurge 算一家比较老的公司了(2002年),居然没有公司 about 信息,点击 Abou us,页面被重定向到首页,没有找到任何公司信息,资历这么老的公司居然没把重要的公司信息摆出来让人觉得很奇怪,让人怀疑产品的可靠信。neosurge 业务线很长,从注册域名到 web hosting,到 VPS/VDS。VPS 配置如下:

服务器在 Chicago
Xen
HyperVM控制面板
5GB硬盘
128MB RAM,128B SWAP
100GB带宽
6.95美元

即时激活VPS,可以自己更换操作系统。只提到VPS运行在Quad Core CPU Server上,没有更多信息。

HostGD:$4.95 128MB OpenVZ VPS

hostgd

HostGD 是一家英国公司。whois 显示,hostgd.com 域名是2009年2月才注册,而且只注册了1年,不知道1年后公司会不会跑。点击这里可以看到 HostGD 机房的信息,看上去是一家正规公司,至少是个公司,不是one man project:)。奇怪的是订购的时候连接到另外一个地址:openSourcehostingsolutions.com,难道付款也外包给别人了?不明白 HostGD 为什么不自己 host 订购这一块。HostGD 有两款 VPS 在10美元以下,配置如下:

OpenVZ
HyperVM 控制面板
5GB硬盘/10GB
128MB Dedicated RAM,512MB Burstable RAM/128MB,1GB
25GB 带宽/50GB带宽
4.95美元/9.95美元

即时激活VPS,不需要等待。支持月付,想退掉随时都可以。

VPS 试用:Advantagecom

simplywebhosting200

Advantagecom 订了一个256M Xen VPS,按照网站上的说明应该是1天后就可以激活我的 VPS,过了2天都没收到开通 VPS 的信,然后上网查了一下才知道1天是指 “1 bussiness day”,我是周末订的,所以只能等到周一了。周一打开信箱就看到来自Advantagecom 的开通邮件。支持 FreeBSD 的 VPS 不多,刚好 Advantagecom 支持 FreeBSD,所以想借机会测试一下 FreeBSD。Advantagecom 使用的是 hardware virtualization 来虚拟 FreeBSD,而不是 paravirtualization。FreeBSD 的一个核心开发人员因为个人原因不能继续为 FreeBSD 开发 Xen 下的paravirtualization 了,导致 FreeBSD 对 Xen 的支持没有 Linux 好。FreeBSD 8-CURRENT 应该支持paravirtualization,但是还不稳定。这也许就是现在为什么 VPS 市场上很少有FreeBSD的原因。如果你的 VPS需要做大量磁盘 IO 工作的话,建议改用 Linux。

硬件

FreeBSD下 查看硬件信息:

继续阅读 »

Nginx 上配置 WordPress Mu 的重写规则

wordpressmu

WordPress Mu 可以看作是一款多用户版的 WordPress,可以方便架设自己的 BSP,像 blogbus.com,yo2.cn 做的那样。 后台和 WP 差不多,多了一个 Site Admin 用来管理整个 blog, 其他部分和独立的 WP 大同小异。最方便的是 WPMU 和 WP 的部分插件和主题可以通用,基于 WP 丰富的主题和插件,可以很好的应用到 WPMU 上。这样,节约了重新定制主题和寻找插件的时间和资源。

首先需要安装和配置好 Nginx+PHP5+Mysql+FastCGI,然后从官方网站下载 WPMU,安装完毕后打开 nginx.conf,配置 Nginx 以支持 WordPress MU 的 rewrite rules。注意:需要把下面的 vpsee.com 和路径换成你自己的域名和路径;如果不用 WP SuperCache 插件可以把相关部分注释掉。

继续阅读 »

DMEHosting:$5.95 256MB OpenVZ VPS

dmehosting

DME Hosting 网站上看不到关于公司的信息。whois 显示,dmehosting.com 域名是在2007年6月注册的。在 WebHostingTalk 找到一篇帖子。从网上了解的信息来看是一个叫做 David 的 one man 公司。VPSee.com 不推荐给严肃的 VPS 使用者。Budget Linux VPS 有两款在10美元以下,配置如下:

服务器在 Chicago,Denver
OpenVZ
HyperVM 控制面板
20GB 硬盘/35GB
256MB Dedicated RAM,386MB Burstable RAM/512MB,768MB
700GB 带宽/1500GB带宽
5.95美元/8.95美元

没有找到服务器硬件和网络信息。

为什么国外程序员爱用 Mac?

macispopular

Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:

1、Mac OS X 是基于 Unix 的。这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 windows 开发人员,我想你会在 windows 上装一套cygwin 环境吧?你不用 flex/yacc,grep,screen,ssh,make?好多 open source 的项目只提供cygwin/gcc/make 的编译环境。Mac 就是基于 BSD Unix 的,所有这些都是 built in 的。

2、开发环境。c/c++/java/perl/python/php/ruby/lisp,各种 shell,应有尽有,直接支持,非常方便。你要在 windows 上开发 C++,要装个 Visual Studio 编译器吧?或者其他的 C++ 编译器;你要开发 Java,你要下载 Java SDK 吧,说不定还要一个 Elipse 或者 Netbean;你要用 Perl,要安装一个 Perl 解释器吧,Active Perl?你要 python/php/ruby,你要安装……?开发程序需要库,图像处理,视频处理,人工智能之类大部分库都是只支持 Unix/Linux 的。Mac 基于 Unix,所以这些通通都和 Mac 能很好和睦相处。

3、编辑器 Vi/Emac。作为 程序员/IT 人员一个好用的编辑器太重要了,因为写程序/改系统配置都需要编辑器。我在 Mac 上差不多1/2的时间是 browser/email,另外1/2时间差不多就是 Vi 了。

4、没有病毒/木马。用了5年多的 Mac 就没看到病毒长成什么样,我还看不到 Mac 上装杀毒软件的需要。

5、不需要维护。Mac 买来就直接用,磁盘碎片整理?不需要。装驱动?Mac 装好了,驱动就好了。重装系统?我5年没有重装过一次(期间换了几次不同的 Mac)。

6、简洁。Mac 上所有的操作都简洁到了极致,尽量避免干扰用户,增加了程序员的生产力。比如切换无线网功能,在 Mac 上切换只需要1次鼠标点击就可以完成,在 windows 上需要点击多次鼠标(包括一些很愚蠢的确认对话框);再比如卸载 USB 盘,Mac 只需要1次鼠标点击,windows 至少需要点击右下角图标、停止设备、确认对话框等多次点击。

7、多窗口切换。这个很方便管理打开的程序/文档。我经常要在多个虚拟窗口切换,比如看浏览网页/邮件一个窗口,写程序/文档一个窗口。

8、程序员文化。国外程序员是以 Unix 为主流成长起来的。这一点和国内不同,中国程序员/开发人员大都是从90年代的 DOS 开始的,随着 Windows 的壮大,成长了一批使用 Microsoft 工具的程序员。这也解释了为什么自从 Mac 切换到 Unix 阵营后,Mac 会发展这么快。基于 Unix 的 Mac 一经推出后,迅速赢得了一大批老 Unix hacker 和新 Web 2.0/Linux hacker 的关注,正是因为这些忠实的 fans 影响了他们的人际网络,圈子,博客,从而影响了整个程序员文化。有点像 Ruby on Rails,开始是一小部分人(精英人士)试用,这些人感觉不错就在博客,研讨会等各种场合鼓吹,从而在 Web 开发领域刮起一阵 Ruby 风。

9、苹果很酷。每台电脑,每个系列都设计完美,从包装盒,宣传册,广告,电源线,电脑内部,电脑外观,电脑软件都精心设计,风格统一。甚至微小到螺丝,看过苹果机箱上的螺丝,机箱里面的数据线吗?那个也是设计。每个 Mac 上都标记着:Designed by Apple in California,而不是 Desgined in USA,苹果就是这么酷,“我们是一家加州公司”。苹果的保密措施可以说做到了极致,产品官方不发售就在市场上看不到踪影。

10、企业家精神。苹果的传奇经历吸引了大批硅谷创业者,Apple/Google/Microsoft/Amazon/eBay/Yahoo 代表了创新,进取的企业家精神。这不是一个大原因,但可以看作是 Mac 在国外,尤其是在美国,尤其是在硅谷,尤其是在大学这么流行的一个小原因吧。据调查2007年美国大学 Mac 市场占有率第一,这些大学精英们毕业以后走上工作岗位,走上社会,再过几年其中一部分走入中层,走进高层,他们会如何影响 Mac 呢?

如果对于类似讨论有兴趣可以看看 VPSee 在 Top Language 讨论组上的回复:[TL] Re: [初级] 为何要选择 Mac?对了,你如果还是对上面那张图片有所怀疑的话,可以看看下面这张图片,来自最近的 TechCrunch Hacker 大会

hackathon

Again, yes, vpsee.com is made on a Mac.