在电影中,我们经常会看到一个黑客远程控制了某台电脑,并且可以对其进行任何的操作,如打开对方的摄像头等等。这难度很大吗?其实不然。只要你具有对方操作系统的帐号与密码,就可以实现远程遥控Linux操作系统。笔者今天就给大家介绍一下,如何通过VNC来实现远程遥控Linux操作系统。
一、VNC的特点与应用。
远程遥控技术是由一台计算机去控制另外一台计算机的一种技术。被控制的电脑叫做被控端,而控制别人电脑的计算机叫作主控端。当被控端被主控端所控制时,就如同用户亲自坐在被控端前操作一样,主控端可以执行被控端的任何应用程序,使用被控端的任何系统资源。前提是主控端使用的这个账户具有对应的权限。如主控端可以轻松打开被动端的摄像头等等。设想一下,当用户在午休时可能没有关闭电脑,此时若主控端无声无息的打开摄像头,那将是多么一件恐怖的事情。不过远程遥控技术刚被开发出来的时候,其意图是好的。只要用来帮助系统管理员实现远程管理与远程协助的需要。后来才被黑客利用,来进行一些非法的勾当。
在开源领域,远程遥控技术的代表就是VNC了。VNC(虚拟网络计算机)是一套由AT&T实验室开发的可操控远程计算机的软件。这个软件是开源的。也就是说,任何人都可以免费取得并不受限制的使用这款软件。根据主控端与被控端的不同,VNC软件可以分为两个部分,分别为VNC Server与VNC viewer。前者是安装在被控制端上,而后者被安装在主控端上。VNC软件不仅是开源的,而且是跨平台的。也就是说,其不仅在Linux操作系统上可以使用,而且也支持Windows操作系统。为此有不少系统管理员,他们可能使用的是微软的操作系统,也喜欢使用这个VNC来作为远程管理Linux服务器或者客户端的工具。
另外笔者还用过一款商业的远程控制软件,它是由Symantec公司研制开发的pcAnywhere工具。这款工具相对来说,功能要比VNC软件强的多。无论是安全上还是可控性上,两者都不能够相比的。但是这款软件是商业软件,企业必须付费使用。而且他不支持Linux操作系统,到目前为止只能够在Windows操作系统上使用。这就大大限制了其使用的范围。笔者这里就以VNC软件为例,谈谈如何实现远程遥控Linux操作系统。
二、在Linux操作系统上启动VNC服务器。
利用VNC软件实现远程控制的基本原理是主控端利用VNC客户端发起连接请求,被控端同意后即可建立远程控制。此时主控端就可以远程操控被控端。为此要利用VNC软件来远程操控Linux操作系统的话,必须先在Linux操作系统上启动VNC服务器软件。否则的话,是无法建立VNC连接的。不过在大部分的Linux操作系统中,如红帽子的Linux系统,一般默认都会安装有VNC服务器的。不过其出于安全的考虑,一般都是关闭的。如果系统管理员要想利用VNC来实现远程操控的话,就需要在Linux操作系统上启动VNC服务器。
在Linux操作系统的命令行下,系统管理员可以输入vncserver命令来启动VNC服务器。在启动的过程中为了安全起见,操作系统会提示系统管理员输入VNC连接的密码。系统管理员最好能够在这里输入比较复杂的密码,如英文字符与数字结合的密码,以增加供给者破译的难度。由于建立VNC连接后,主控端可以像操作自己的电脑那样来操作被控端。所以这个密码将是将是保障其安全的最后屏障。
密码配置完成后,Linux操作系统最后还会提示VNC连接的地址。如上面所示,最后系统管理员可以使用mail.dfg.cn来远程操控Linux操作系统。以后在VNC客户端上只要输入这个网络地址,就可以连接到VNC服务器上。如果后续需要更改VNC的连接密码,需要使用vncpasswd来进行更改。注意不是passwd。这跟更改用户密码的命令不同。一般情况下,只要正常显示了其网络地址,那么这个VNC服务就是正常启动了。
#p#
另外为了安全起见,中断VNC服务器之后,最好在服务器上能够及时关闭VNC应用服务器。关闭的命令如上,只需要运行vncserver –kill :1命令即可。其中最后的1表示之前启动的窗口编号。系统管理员应该养成一个习惯,即当某个服务启动后,要及时关闭它。多启动一个服务,就多个黑客一个攻击的机会。特别是将操作系统当作服务器来使用的时候,这个习惯能够在很大程度上提高服务器系统的安全性。其实不光光是VNC服务器是如此,像其他的Telnet服务等等也要养成这个习惯。一般来说,Linux操作系统默认不启动的服务,系统管理员在启动他们之后,最后都要及时关闭。
不过如果企业的布局比较大,如从系统管理员的办公室到Linux操作系统客户端那边需要走半个小时。此时为了管理的方便,如果对方操作系统知识用来做普通的客户端的话,那么就可以让Linux操作系统在启动时自动启动VNC服务器。以方便在遇到问题时,系统管理员能够及时连接上VNC服务器进行远程故障排除或者远程协助。由于客户端的安全性要求比怎么严格,所以在管理便利上方面可以做出一定程度的妥协。但是如果操作系统是作为服务器的话,那么开机自动启动VNC服务器类似的操作,系统管理员需要谨慎。如果系统管理员确定需要开机时自动启动VNC服务器,则可以通过ntsysv服务来定义。即只需要在命令行状态下,输入命令ntsysv,然后选中vncserver条目(按空格选择),即设置了开机即启动VNC服务器。然后需要修改/etc/sysconfig/vncservers配置文件。找到这个文件中的VNCSERVER=”1:root”这个条目。默认情况下操作系统是将这一行注释掉的。系统管理员只需要将前面的注释符号去掉即可。如此设置后,当操作系统在下次启动后就会自动启用VNC服务器。如此系统管理员就可以远程来控制Linux操作系统,进行软件安装、系统配置、远程协作等等操作。
三、通过多种方式来远程遥控Linux操作系统。
有时候可能在主控端上没有安装VNC客户端,那么该怎么办呢?如在XP等微软操作系统上,默认情况下是没有安装VNC客户端软件的。如果要使用VNC客户端的话,需要从网络上下载免费的VNC软件进行安装,安装后再使用。虽然这个软件是免费的,而且安装也不需要太多的空间。但是有些系统管理员会认为比较麻烦。其实在没有VNC客户端的情况下也可以通过VNC来远程遥控。或者说,其实微软操作系统的浏览器本身就可以当作VNC客户端来使用。
如果要通过浏览器来远程遥控Linux操作系统的话,在输入网址的时候有点讲究。其基本格式为被控端的网址(或者被控端的主机IP地址):端口号。如果被控端是Linux操作系统的话,这个端口号有点讲究。端口的基本格式为5800+窗口编号。即如上图所示,其为VNC启用的窗口编号为1,则其最终的地址格式为mail.dfg.cn:5801。通过这个地址就可以连接到Linux操作系统的VNC服务器。此时这个浏览器就好像是VNC客户端,可以远程操控Linux操作系统。其实也可以在微软操作系统上安装并启用VNC服务器。不过此时如果通过浏览器来远程控制微软VNC服务器时,这个地址中的窗口编号跟Linux操作系统中的不同。此时这个端口号就是5800,不用再加上窗口编号了,因为微软操作系统没有窗口编号一说。
【编辑推荐】