在开源领域,远程遥控技术的代表就是VNC了。VNC(Virtual Network Computer,虚拟网络计算机)是一套由AT&T实验室开发的可操控远程计算机的软件。根据主控端与被控端的不同,VNC软件可以分为两个部分,分别为VNC Server与VNC viewer。前者是安装在被控制端上,而后者被安装在主控端上。VNC软件不仅是开源的,而且是跨平台的。有不少系统管理员喜欢在Windows平台上使用这个VNC来作为远程管理Linux服务器或者客户端的工具。(更多细节请参见:http://os.51cto.com/art/201102/244861.htm)

整个VNC运行的工作流程如下:

(1)VNC客户端通过浏览器或VNC Viewer连接至VNC Server。

(2)VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。

(3)在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。

(4)若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。

(5)VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。

(6)VNC Server将来由 X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。

本文介绍如何使用VNC进行Linux服务器的远程管理,并着重标注了过程中需要注意的安全事项。

1、启动VNC服务器

利用VNC软件实现远程控制的基本原理是主控端利用VNC客户端发起连接请求,被控端同意后即可建立远程控制。此时主控端就可以远程操控被控端。为此要利用VNC软件来远程操控Linux操作系统的话,必须先在Linux操作系统上启动VNC服务器软件。否则的话,是无法建立VNC连接的。不过在大部分的Linux操作系统中,如红帽子的Linux系统,一般默认都会安装有VNC服务器的。不过其出于安全的考虑,一般都是关闭的。如果系统管理员要想利用VNC来实现远程操控的话,就需要在Linux操作系统上启动VNC服务器。

在Linux操作系统的命令行下,系统管理员可以输入vncserver命令来启动VNC服务器。在启动的过程中为了安全起见,操作系统会提示系统管理员输入VNC连接的密码。系统管理员最好能够在这里输入比较复杂的密码,如英文字符与数字结合的密码,以增加供给者破译的难度。由于建立VNC连接后,主控端可以像操作自己的电脑那样来操作被控端。所以这个密码将是将是保障其安全的最后屏障。启动成功后如图1所示:

图1  启动VNC Server示意图

密码配置完成后,Linux操作系统最后还会提示VNC连接的地址。如上面所示,最后系统管理员可以使用localhost.localdomain来远程操控Linux操作系统。以后在VNC客户端上只要输入这个网络地址,就可以连接到VNC服务器上。如果后续需要更改VNC的连接密码,需要使用vncpasswd来进行更改。注意不是passwd。这跟更改用户密码的命令不同。一般情况下,只要正常显示了其网络地址,那么这个VNC服务就是正常启动了。

另外为了安全起见,中断VNC服务器之后,最好在服务器上能够及时关闭VNC应用服务器。关闭的命令如上,只需要运行如下命令即可:

#vncserver –kill :1

其中最后的1表示之前启动的窗口编号。系统管理员应该养成一个习惯,即当某个服务启动后,要及时关闭它。多启动一个服务,就多个***一个***的机会。特别是将操作系统当作服务器来使用的时候,这个习惯能够在很大程度上提高服务器系统的安全性。一般来说,Linux操作系统默认不启动的服务,系统管理员在启动他们之后,最后都要及时关闭。

不过如果是企业内部,企业的布局比较大,如从系统管理员的办公室到Linux操作系统客户端那边需要走半个小时,此时为了管理的方便,如果对方操作系统只是用来做普通的客户端的话,那么就可以让Linux操作系统在启动时自动启动VNC服务器。由于客户端的安全性要求不怎么严格,所以在管理便利上方面可以做出一定程度的妥协。但是如果操作系统是作为服务器的话,那么开机自动启动VNC服务器类似的操作,系统管理员需要谨慎。

如果系统管理员确定需要开机时自动启动VNC服务器,则可以通过ntsysv服务来定义。即只需要在命令行状态下,输入命令ntsysv,然后选中vncserver条目(按空格选择),即设置了开机即启动VNC服务器。然后需要修改/etc/sysconfig/vncservers配置文件。找到这个文件中的VNCSERVER=”1:root”这个条目。默认情况下操作系统是将这一行注释掉的。系统管理员只需要将前面的注释符号去掉即可。如此设置后,当操作系统在下次启动后就会自动启用VNC服务器。

2、使用VNC Viewer实现Linux远程管理

在配置好VNC Server后,可以使用VNC Viewer来实现Linux的远程登录和管理了。在Linux下面已经自带了该客户端程序,用户可以打开[应用程序]菜单,在弹出的级联菜单中选择[VNC Viewer],如图2所示:

图2  使用VNC Viewer

系统会弹出如图3所示的VNC Server登录对话框,用户需要指定待登录的服务器地址:

图3  输入VNC Server地址

输入地址后,VNC Viewer连接上VNC Server,Server需要对VNC客户端进行身份验证,弹出如图4所示的对话框,用户输入之前设置的密码即可:

图4  输入密码

待客户端通过服务器端的验证后,则会进入如图5所示的远程登录界面,用户就可以在图形界面下简单、方便地对远程的Linux进行访问和管理了。

图5  成功使用VNC Server

3、使用SSH+VNC实现安全的Linux远程桌面管理

VNC可以对数据进行压缩,使得传输的数据量比直接用SSH加密的小,但是缺点有一到两次机会让同一网段的计算机用sniffer窃听到用户名和密码。认证之后的数据可以进行加密传输,所以使用过程中如果经过配置,则是安全的,否则传输内容不能保证完全保密。必要时可以通过SSH进行加密端口映射来保证传输用户名和密码的时候也是加密的,这一操作占用的额外带宽是极少的。

至于SSH保护VNC的安全,需要使用SSH的端口转发功能。一般在客户端使用的是Linux的时候,可以先用SSH建立链接,语法上应当添加“-L 本地端口:本地地址:远程端口 远程地址”这一附加参数,比如说本地是X.Y.Z.W,服务器是A.B.C.D,要转发的端口本地的是5901,远程的也是5901,那么命令应当是:

ssh -L 5901:X.Y.Z.W:5901 A.B.C.D

其他的参数多数可以同时使用。执行完毕后就已经创建了服务器5901端口和本地5901端口的加密隧道。假设要链接的服务器上运行的VNC桌面号是2,则继续执行如下命令:

vncviewer A.B.C.D:2

这样打开的VNC窗口所有数据都经过了SSH的加密。

由于一般管理情况下多采用SSH的Windows客户端,所以下面介绍如何配置Windows下的SSH Secure Shell来配合VNC实现安全的Linux远程桌面管理。

首先,在SSH Secure Shell的主界面上选择Settings下的Tunneling,如图6所示。

图6  为SSH Secure Shell设定Tunneling

然后,选择添加一个配置,如图7所示,其中Listen是本机端口,Destination是远程地址和端口,Display可以设定自己的描述。

图7  Tunneling设定的具体选项

最后,再运行vncviewer来链接即可。特别值得注意的是:此处Server的地址不是需要连接的VNC Server的地址,而是前面设定的本机的SSH侦听端口的地址,因为所有通往VNC Server的流量都需要先经过本机的SSH进行转发,如图8所示,一般设定为localhost加端口即可,该端口就是在图7中设定的SSH的侦听端口。

图8  使用Windows中的VNC Viewer连接Linux端的VNC Server

图9清晰地给出了使用Wireshark对上述通信的流量进行抓包的结果,可以看到,从客户端去往服务器端的VNC流量,均采用SSH协议进行了加密传输,因此针对传统的未经过SSH加密处理的VNC通信来说要安全很多,能够有效地避免窃听和中间人***:

图9  针对上述通信流程的抓包结果显示

linux查看vnc服务加密修复,VNC远程管理Linux服务器安全指导相关推荐

  1. esxi远程管理端口_如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇...

    VMWare esxi中开放 VNC功能及端口实现远程管理 完整篇 在多个论坛上看了相关文章,总的写得不完整.现将各方资源整编写完整版.详文如下! 步骤1. 修改ESXi主机的firewall配置 在 ...

  2. esxi远程管理端口_如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇...

    VMWare esxi中开放 VNC功能及端口实现远程管理 完整篇 在多个论坛上看了相关文章,总的写得不完整.现将各方资源整编写完整版.详文如下! 步骤1. 修改ESXi主机的firewall配置 在 ...

  3. 常用的linux远程管理方法,常用windows下远程管理Linux服务器的方法

    常用windows下远程管理Linux服务器的方法 来源:互联网 作者:佚名 时间:2013-04-14 12:48 随着互联网的高速发展以及Linux企业应用的成熟,Linux被广泛应用于服务器领域 ...

  4. 如何远程管理Linux服务器?

    远程管理Linux服务器,目前来说有2种方式,一种是命令行管理,一种是桌面管理,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 命令行管理 这里主要是借助终端软件来实现,通过ssh远程登录到Linux ...

  5. 远程管理linux系统工具,远程管理Linux系统工具的设计与实现Linux013

    一种远程管理Linux系统工具的设计与实现 摘  要 现在,Linux已经是应用比较广泛的操作系统之一,在其系统中有很多的服务.为了实现远程配置和管理Linux中的各种服务,需要有一种远程管理Linu ...

  6. 使用OpenSSH远程管理Linux服务器

    一.使用OpenSSH远程管理Linux服务器 sshd是OpenSSH的服务器端守护进程,与之对应的Windows下客户端软件有SecureCRT/Xshell/PuTTY等. OpenSSH一般为 ...

  7. 远程管理Linux主机与 Xshell SSH 新手小白使用教程说明

    远程管理Linux主机 1)SSH概述(提供远程服务) 为客户机提供安全的Shell环境 默认端口:TCP 22 2)OpenSSH 服务 服务名称:sshd 主程序:/usr/sbin/sshd./ ...

  8. 手机linux服务器控制,Termux - Android手机上的Terminal终端(手机ssh远程管理linux服务器)...

    本帖最后由 toddliu 于 2019-5-6 14:35 编辑 Termux是一个安卓手机上的终端神器,可以在手机上ssh远程管理linux服务器,虚拟机linux,可以在手机上使用bash和zs ...

  9. linux查看php日志命令,linux查看日志的三种命令是什么,linux查看进程命令

    linux查看日志的三种命令是什么Linux查看日志的三个命令是什么,linux查看日志有三个命令:1.查看实时更改日志,代码为[tail-f filename]:2.搜索关键字附近的日志代码为[ca ...

最新文章

  1. 深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD
  2. List与Map的遍历过程中删除元素
  3. 【架构零】大型网站的架构的目标与挑战
  4. 从0学习css开发之 font-size的基本用法
  5. C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
  6. 手机psp模拟器哪个好_功能强大,手机微信群控系统和云控哪个好?
  7. Huffman编码解码
  8. pbs 作业管理命令
  9. steam账号被盗找回概率_如何找回忘记的Steam密码
  10. 天天快充滚动图片android750x379
  11. android中数据统计,Android 友盟统计集成
  12. python ——找出 每行中长度超过3的单词
  13. 解决ubuntu20.04播放b站视频,提示“May need to install the required video codecs”问题
  14. win10网络重置后无法发现网络,Wlan选项消失,有线网络不识别
  15. 含文档+PPT+源码等]精品基于Uniapp实现的Android的餐饮管理系统实现的App[包运行成功]计算机毕业设计安卓项目源码
  16. 遗传算法求解3D打印中零件二维排布问题(MATLAB实现)
  17. Unsupervised Domain Adaptation for Semantic Segmentation by Content Transfer
  18. 读取盘序列号(是物理序列号,不是硬盘扇区上的序列号)在win7下的确不能用了
  19. 一款适合小白的jmeter入门文档,性能测试工具-jmeter使用教程
  20. android 蓝牙之数据传输

热门文章

  1. e.target 和 e.srcElement 的使用问题
  2. 64位Ubuntu 13.04 安装Bochs 2.3.5
  3. POJ 1155 TELE【树形DP】
  4. Excel数据分析实用小技巧【过坑】
  5. C++单目运算符的重载与双目运算符的重载【案例】
  6. xadmin与mysql数据库_django和xadmin打造后台管理系统(一)-xadmin安装及使用
  7. 如何将spyder打包成exe_exe程序打包成安装文件,自己的程序制作成一键安装程序...
  8. 计算机软件理论基础集合论,从数理逻辑观点看计算机专业的理论基础探讨
  9. 数据结构 二叉搜索树BST的实现与应用
  10. python map 函数使用