利用 Ubuntu + VNC 做远程遥控

最近给 EPS-China 公司做好了 IT 基础设施, 但后期维护该怎么办呢? 毕竟我要离开北京了. 于是我想到了家里闲置的 Atom 330 的微型电脑, 俗称下载机. 我叫它 Xpatom, 因为要用迅雷下载而特意装了一套 Windows XP SP2. 将 Xpatom 安置到 EPS 的机柜后, 配置了端口转发 3389, 回来一看远程桌面, 嗯, 挺好的. 但隔天就变成这样了.

也难怪, 我的 Windows XP SP2 系统是盗版的, 也没怎么打补丁. 不过居然这么快就被嗅到了… 于是我将 Xpatom 重装了 Ubuntu 并改名为 Atomuntu  😀 本来 Ubuntu 开箱支持远程桌面的, 但内建的需要一个 Unity/Gnome session, 也就是说本地有用户登录了才能远程连接. 留下一个 session 没人管, 那我会失眠的吧…

搜索了一下, 恰好发现 Taskiller 的这篇 Ubuntu下配置VNC, 于是照着葫芦画瓢吧. 首先安装 VNC4Server:

$sudo apt-get install vnc4server

之后第一次启动 vnc4server 时会索要一个口令/password, 这个和用户账号无关, 是 VNC 连接时需要验证的. 遗憾的是最高只支持8位. 我以为所有基于口令验证的机制都是不保险的. 于是我在 Atomuntu 上又开启了 sshd, 这样我的远程遥控系统就又多了一层保护:

  1. 通过 public-key 登录 sshd, 这个本身是有 SSL 保护的, 所以目前依旧是安全的.
  2. 登录到 shell 后, 开启一个 vnc4server
    $vnc4server
  3. 在远程电脑上, 使用 VNC 兼容的客户端连接到 vnc4server, 由于只开了一个远程桌面, 所以连接是 xxx.xxx.xxx.xxx:1
  4. 使用这个桌面, 基本就可以利用浏览器管理公司内的其它设备了, 例如路由器/打印机/电话交换机等
  5. 完事后, 记得通过 shell 关掉 vnc4server:
    $vnc4server -kill :1
  6. $logout

这回黑客估计会放过我了吧 😀

在 Ubuntu Server 上尝试 Nagios3

Nagios (据说)是业内一流的系统监控软件框架. 但我这样一个非一流的 Linux 系统管理员, 之前由于管理的系统实在是少. 加上 Linux 自身的强壮, 于是似乎不怎么管也不会出事. 进而, 我之前一直都没有应用 Nagios 的良好动机.

最近, 负载我这小 blog 的VPS有些小小的情绪化行为. 可能是大环境不好吧. 于是我打算用 Nagios 监控一下.

在2009年我买了一本<Linux Networking Cookbook>, 上面对 Nagios 的讲解倒是蛮详细的, 但也有些吓人: 从编译开始的… 我在 Ubuntu Server 上测试了一下, 貌似很简单的. 首先:

$sudo  apt-cache search nagios

发现当前的版本是 nagios3 了, 于是:

$sudo apt-get install nagios3

过程中会要求输入一个 password, 其实就是教程里使用 httpasswd 生成的用于保护 nagios 的口令. 之后使用浏览器查看:

http://localhost/nagios3

就能看到基本的监测界面了. 相当简单吧. 下一步如果要添加额外的需要监控的网站, 仅需要利用现有的 generic-host 模板设置新站点信息即可, 例如:

define host{
use        generic-host
host_name    raynix
alias        raynix
address       184.82.236.44
}

然后, 记得要把上面的配置存到一个.cfg文件, 并复制或者链接到 /etc/nagios3/conf.d 文件夹. 定义了 host, 然后需要把 host 添加到需要检测的主机群(host group)里就完成了. 例如要将 raynix 添加到 http-servers, 这样就可以让 nagios 检测主机 raynix 上的 httpd 服务了.

打开: /etc/nagios3/conf.d/hostgroups_nagios2.cfg (为什么是 nagios2 呢?)

define hostgroup {
hostgroup_name  http-servers
alias           HTTP servers
members         localhost,raynix
}

然后重新启动 nagios3 服务, 就可以以缺省的设置对主机 raynix 的 http 服务进行监测了. 另外如果要接收提示邮件的话, 需要修改 /etc/nagios3/conf.d/contacts_nagios2.cfg. 🙂

古董越老越好, 浏览器可不是

今年初, 终于, 微软自己也受不了自己的IE6了. IE6倒计时网站开通后, 微软也呼吁网民放弃”好汉不提当年勇”的IE6浏览器. 遗憾的是, 尽管中国大陆毫无竞争的拿下这款娘家不疼亲家不爱的浏览器的最高份额, 但微软显然”don’t give it a shit”居然没有做个中文版出来 😀

十年前, 一款浏览器诞生了, 它的名字是IE6. 而现在是2011年, 是网络新标准的时代了. 是时候说再见了.

尽管我从2004年就抛弃IE6了, 但为了我的访客和用户们, 我不得不保留一份IE6作为测试使用(相信很多做过web前端的朋友都是如此, 并为了IE6而加班加点). 希望IE6早些安息吧.

如果想在网站中明确声明本站不支持IE6, 可以如此(下面应该写在<head></head>里面):

<script type="text/javascript">
	//CHECK FOR IE6
	function is_ie6(){
	    return ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined));
	}
	function alert_ie6(){
	    if(is_ie6()){
		alert('我注意到您还在使用微软IE6.0浏览器或者基于IE6.0内核的浏览器. ');
		alert('很抱歉本站在IE6.0下有点走样子, 因为本站采用很多新技术而IE6.0已经是10年前的产品了, 现在IE最新版是9.0, 更快也更安全, 也能更好的浏览本站.');
	    }
	}
</script>

然后在<body>里面加上onload=”alert_ie6()”就可以了. 脚本来源: http://www.stemkoski.com/how-to-detect-ie6-with-javascript/

最后, 除了IE, 更有很多好的浏览器等你选择: Mozilla FireFox, Google Chrome, Opera, Safari 都很不错. 😀

在SNS与云计算时代保护自己隐私

这题目起的有点大了…

信息传输的方式在本质上导致其无法保证安全. 无论我们以哪一种方式(谈话/电话/邮件…), 信息在到达目的地之前都有可能被截获或串改. 而且我们众多保存在SNS网站上的个人信息, 尽管设置为”私有”, 但你是否真的相信那就是”私有”了呢? IT可以很善良也可以很邪恶.

可以想象一下: 你送修的硬盘里半个月之前删除的文档被恢复出来; 你上传的所有”私有”照片被管理员一个SQL全列出来, 更不要说网站上的私信了. 也就是说, 网上基本没有隐私, 除非我们像德国人用Enigma一样, 把我们的信息加密传输.

例如要在开心网上发账号信息给朋友, 将:

1234 5678 2345 6789

加密为:

7CC08FF0C78CE1AAD6610708262E1B8BcI0zoOaqaVPhseuJFYvu3B5tjt0jxRBgm7rCHLtppSY=

这样再发送出去就基本不怕被拦截了. 但你的朋友接收了密文怎么解密呢? 你必须把加密用的密钥告诉你的朋友, 而这个过程一样是需要注意的. 如果你把密钥也和密文一起发送, 这恐怕是最愚蠢的想法了. 你可以通过另一种途径传递密钥, 例如电话里说, 密钥是昨天咱们去过的电影院的名字, 是不是好些呢? 当然这种方式里, 密钥的发送依旧是薄弱环节.最好还是采用公钥加密方式, 当然, 也就麻烦一些啦. 如图:

上次给老婆讲这个方法, 她说, 太麻烦啦 😀

注: 以上加密案例采用的是Google Chrome + Camellia Encrypter插件.