浅谈用SSH保护VNC远程连接

    [晴 April 7, 2008 12:04 | by ]
来源:51cto

SSH的英文全称是Secure  Shell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。还有一个 额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提 供一个安全的“通道”。

VNC象征虚拟网络计算的意思,它是一款远程控制软件,允许你在一台计算机上使用VNC查看器查看和完全与在本地局域网中或互联网上的另一台桌面计算机进行交互,这两台计算机可以是不同的类型,因此你可以在一个Linux或Mac计算机上使用VNC查看一个在办公室中的windows xp桌面系统。

当你建立连接后,在查看器和服务器之间传输的数据是没有加密的,数据可能被监听或嗅探,安全对你来说很重要,我们建议你为VNC协议开辟一条专用隧道如使用SSH。本文叙述如何用VNC和SSH从一个windows xp客户端连接到一个Linux(OpenSuse10.3)服务器。

本文用到的网络结构如下:

Highslide JS


   图1. 网络结构图

如果你试图连接到一个你本地局域网之外的VNC服务器,确保正确地配置了防火墙,你应该允许通过端口22的出站连接。

第一步:准备Linux服务器

我们将使用OpenSuse10.3作为服务器操作系统,目标是从一个远程的windows xp客户端使用KDE桌面,使用YaST安装下面的软件包:
tightvnc
xorg-x11-Xvnc


Highslide JS


    图2.安装tightvnc

除你手动选择之外,其他的软件包将可能改变依赖。从你的终端作为一个常规用户(非root)启动VNC服务器,它将要求你输入访问桌面的密码,请输入你的密码。留心屏幕上的消息,在我们的例子中susebox:1已经被另外的进程使用了,后面我们可以用susebox:2来访问。

Highslide JS


   图3. 运行VNC服务器

校验VNC运行时使用的端口很重要,使用下面的命令来检查:
netstat –tilpe
你将在下图中看到,Xvnc运行在端口5902上。

Highslide JS


   图4.图和得到端口号


你可以通过下面的命令来停止VNC服务:
vncserver -kill :

如:你可以关闭我们前面打开的进程:
vncserver -kill :2

有时需要手动关闭进程,假如这样的话,只需要删除下面的文件(作为root登陆):
rm /tmp/.X11-unix/X1或者rm /tmp/.X11-unix/X2

然后作为常规用户(非root)删除下面的文件:
rm /home/user/.vnc/susebox:2.pid或者rm /home/user/.vnc/susebox:3.pid

最好,我们需要修改xstartup脚本让KDE自动启动,你应该在/home/user/.vnc目录下可以找到这个脚本。用你喜欢的文本编辑器打开这个文件,用kde &替换twn &(看下图),你需要重新启动VNC服务器让改动失效。

Highslide JS


  图5.用kde &替换twn &

第二步:准备Windows XP客户端

我们需要为客户端准备下面的软件:
PuTTY
VNC Free Edition 4.1
PuTTY是一款终端模拟应用程序,它可以作为SSH、telnet、rlogin和原生TCP计算协议的客户端,主要有Simon Tatham编写和维护。PuTTY是自由免费的开源软件。请从http://www.chiark.greenend.org.uk/~sgtatham/putty/下载。

VNC有非常多的用途包括系统管理、IT支持和桌面帮助。它还可以用于支持移动用户,既可以在企业内部也可以在家中或者在路上执行远程帮助。

如果你之前还没有使用过VNC,我建议你阅读一下这篇文档:http://www.realvnc.com/products/free/4.1/index.html。请从http://www.realvnc.com/products/free/4.1/download.html下载VNC免费版本。在客户端我只需要VNC查看器(VNC viewer),请安装它。

Highslide JS


  图6.安装VNC客户端

第三步:用SSH和PuTTY开辟VNC隧道

剩下的就简单了,启动PuTTY并象下图这样配置它:

Highslide JS


  图7.用PuTTY开辟VNC隧道

第一步:

主机名(或ip地址):VNC服务器的ip地址(你的Linux服务器),端口22
保存会话:使用一个合适的名字描述该连接

第二步:

点击sshTunnels
源端口:输入VNC服务器使用的端口(看步骤1—netstat命令,如5903)
目标端口:VNC服务器的ip地址:端口(如192.168.100.34:5903)
点击“Add”【添加】按钮
点击“Session”【会话】,然后点击“Save”【保存】按钮。
点击“Open”【打开】启动隧道会话,用一个常规用户名和密码登陆到Linux服务器。

第三步:

打开VNC viewer输入:
localhost:Display
(如:localhost:3)

等一下你将会在你的VNC viewer窗口中看到一个KDE会话。

Highslide JS


  图8.运行中的KDE

原文出处:http://www.linux-tip.net/cms/content/view/333/26/
Technology | Comments(0) | Trackbacks(0) | Reads(10398)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive