使用 TLS 加密保护 VNC 服务器的简单指南
创始人
2024-03-01 21:48:03
0

在本教程中,我们将学习安装 VNC 服务器并使用 TLS 加密保护 VNC 会话。

此方法已经在 CentOS 6&7 上测试过了,但是也可以在其它的版本/操作系统上运行(RHEL、Scientific Linux 等)。

(推荐阅读:保护 SSH 会话终极指南

安装 VNC 服务器

在机器上安装 VNC 服务器之前,请确保我们有一个可用的 GUI(图形用户界面)。如果机器上还没有安装 GUI,我们可以通过执行以下命令来安装:

yum groupinstall "GNOME Desktop"

现在我们将 tigervnc 作为我们的 VNC 服务器,运行下面的命令运行:

# yum install tigervnc-server

安装完成后,我们将创建一个新的用户访问服务器:

# useradd vncuser

并使用以下命令为其分配访问 VNC 的密码:

# vncpasswd vncuser

我们在 CentOS 6&7 上配置会有一点改变,我们首先看 CentOS 6 的配置。

CentOS 6

现在我们需要编辑 VNC 配置文件:

# vim /etc/sysconfig/vncservers

并添加下面这几行:

[ …]
VNCSERVERS= "1:vncuser"
VNCSERVERARGS[1]= "-geometry 1024×768″

保存文件并退出。接下来重启 vnc 服务使改动生效:

# service vncserver restart

并在启动时启用它:

# chkconfig vncserver on

CentOS 7

在 CentOS 7 上,/etc/sysconfig/vncservers 已经改为 /lib/systemd/system/vncserver@.service。我们将使用这个配置文件作为参考,所以创建一个文件的副本,

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

接下来,我们将编辑文件以包含我们创建的用户:

# vim /etc/systemd/system/vncserver@:1.service

编辑下面 2 行中的用户:

ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i"
PIDFile=/home/vncuser/.vnc/%H%i.pid

保存文件并退出。接下来重启服务并在启动时启用它:

# systemctl restart vncserver@:1.service
# systemctl enable vncserver@:1.service

现在我们已经设置好了 VNC 服务器,并且可以使用 VNC 服务器的 IP 地址从客户机连接到它。但是,在此之前,我们将使用 TLS 加密保护我们的连接。

保护 VNC 会话

要保护 VNC 会话,我们将首先配置加密方法。我们将使用 TLS 加密,但也可以使用 SSL 加密。执行以下命令在 VNC 服务器上使用 TLS 加密:

# vncserver -SecurityTypes=VeNCrypt,TLSVnc

你将被要求输入密码来访问 VNC(如果使用其他用户,而不是上述用户)。

secure vnc server

现在,我们可以使用客户机上的 VNC 浏览器访问服务器,使用以下命令以安全连接启动 vnc 浏览器:

# vncviewer -SecurityTypes=VeNCrypt,TLSVnc 192.168.1.45:1

这里,192.168.1.45 是 VNC 服务器的 IP 地址。

secure vnc server

输入密码,我们可以远程访问服务器,并且也是 TLS 加密的。

这篇教程就完了,欢迎随时使用下面的评论栏提交你的建议或疑问。


via: http://linuxtechlab.com/secure-vnc-server-tls-encryption/

作者:Shusain 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

SSL、TLS应用笔记
一、协议 https://www.rfc-editor.org/r...
2025-05-28 13:37:44
在CentOS系统上设置V...
CentOS系统VNC服务配置与验证详解 在Linux服务器管理中...
2025-03-21 07:15:07
不支持HTTP/2(请安装...
要解决不支持HTTP/2的问题,您可以按照以下步骤安装Twiste...
2025-01-11 22:30:47
不同的Linux机器上的T...
在代码中使用特定的TLS版本,可以确保在不同的Linux机器上使用...
2025-01-08 16:01:09
不同的HTTPS服务器主机...
在TLS 1.2中,客户端密码套件列表的顺序是由客户端决定的,即客...
2025-01-08 15:00:23
不确定Python中相当于...
Python的TLS客户端配置可通过ssl模块来实现。 在Pyth...
2024-12-27 16:01:17

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...