24 KVM管理虚拟机-配置VNC-TLS登录

2023-10-27

24 KVM管理虚拟机-配置VNC-TLS登录

24.1 概述

VNC服务端和客户端默认采用明文方式进行数据传输,因此通信内容可能被第三方截获。为了提升安全性,openEuler支持VNC服务端配置TLS模式进行加密认证。TLS(Tansport Layer Security)即传输层安全,可以实现VNC服务端和客户端之间加密通信,从而防止通信内容被第三方截获。

img 说明:

  • 使用TLS加密认证模式需要VNC客户端支持TLS模式(例如TigerVNC),否则无法连接到VNC客户端。
  • TLS加密认证模式配置粒度为主机服务器级别,开启该特性后,主机上正在运行的所有虚拟机对应的VNC客户端都将开启TLS加密认证模式。

24.2 操作步骤

VNC开启TLS加密认证模式的操作步骤如下:

  1. 登录VNC服务端所在主机,开启或修改服务端配置文件/etc/libvirt/qemu.conf中对应的配置项。相关配置内容如下所示:

    vnc_listen = "x.x.x.x"          # "x.x.x.x"为VNC的侦听地址,请用户根据实际配置,VNC服务端只允许该地址或地址段范围内的客户端连接请求
    vnc_tls = 1                     # 配置为1,表示开启VNC TLS支持
    vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc"        #指定证书存放的路径为/etc/pki/libvirt-vnc
    vnc_tls_x509_verify = 1                               #配置为1,表示TLS认证使用X509证书
    
  2. 为VNC创建证书和私钥文件。此处以GNU TLS为例进行说明。

    img 说明:
    使用GNU TLS,请提前安装好gnu-utils软件包。

    1. 制作证书颁发机构CA(Certificate Authority)的证书文件。

      # certtool --generate-privkey > ca-key.pem
      
    2. 制作自签名的CA证书公私钥。其中Your organization name为机构名,由用户指定。

      # cat > ca.info<<EOF
      cn = Your organization name 
      ca
      cert_signing_key
      EOF
      
      # certtool --generate-self-signed \
                 --load-privkey ca-key.pem \
                 --template ca.info \
                 --outfile ca-cert.pem
      

      上述生成文件,ca-cert.pem是生成的CA公钥,ca-key.pem是生成的CA私钥,需要由CA妥善保管防止泄露。

    3. 为VNC服务端颁发证书。其中Server Organization Name为实际的服务名称,例如server.foo.com,需要用户根据实际指定。

      # cat > server.info<<EOF
      cn = Server Organization Name
      tls_www_server
      encryption_key
      signing_key
      EOF
      
      # certtool --generate-privkey > server-key.pem
      # certtool --generate-certificate \
                 --load-ca-certificate ca-cert.pem \
                 --load-ca-privkey ca-key.pem \
                 --load-privkey server-key.pem \
                 --template server.info \
                 --outfile server-cert.pem
      

      上述生成文件,server-key.pem是VNC服务端的私钥,server-cert.pem是VNC服务端的公钥。

    4. 为VNC客户端颁发证书。

      # cat > client.info<<EOF
      cn = Client Organization Name
      tls_www_client
      encryption_key
      signing_key
      EOF
      
      # certtool --generate-privkey > client-key.pem
      # certtool --generate-certificate \
                 --load-ca-certificate ca-cert.pem \
                 --load-ca-privkey ca-key.pem \
                 --load-privkey client-key.pem \
                 --template client.info \
                 --outfile client-cert.pem
      

      上述生成文件,client-key.pem是VNC客户端的私钥,client-cert.pem是VNC客户端的公钥,生成的公私钥对需要拷贝到VNC客户端。

  3. 关闭需要被登录的虚拟机,重启VNC服务端所在主机的libvirtd服务。

    # systemctl restart libvirtd
    
  4. 将生成的服务端证书放置到VNC服务端指定目录并将证书的权限改为只允许当前用户读写。

    # sudo mkdir -m 750 /etc/pki/libvirt-vnc
    # cp ca-cert.pem /etc/pki/libvirt-vnc/ca-cert.pem
    # cp server-cert.pem /etc/pki/libvirt-vnc/server-cert.pem
    # cp server-key.pem /etc/pki/libvirt-vnc/server-key.pem
    # chmod 0600 /etc/pki/libvirt-vnc/*
    
  5. 将生成的客户端证书ca-cert.pem,client-cert.pem和client-key.pem拷贝到VNC客户端。配置VNC客户端的TLS证书后即可使用VNC TLS登录。

    img 说明:

    • VNC客户端证书的配置请参见各客户端对应的使用说明,由用户自行配置。
    • 登录虚拟机的方式请参见“使用VNC密码登录”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

24 KVM管理虚拟机-配置VNC-TLS登录 的相关文章

  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品

随机推荐

  • 2023 QEMU模拟FT2000+(armv8)运行麒麟V10并安装tensorflow2

    2023 QEMU模拟FT2000 armv8 运行麒麟V10并安装tensorflow2 资源准备 麒麟V10SP1 桌面 QEMU 4 1 0以上 qeum安装kylin python tensorflow2 10 0 资源准备 麒麟V
  • python--pandas学习总结

    目录 一 Series和DataFrame 1 pandas Series 2 pandas DataFrame 二 Pandas常见用法 1 访问数据 1 1 head 和tail 1 2 describe 1 3 T 1 4 sort
  • BES提示音

    基于BES2500提示音的日志 11656 I NONE L M 13 threadpredict awaken label 1 11656 I NONE L M 13 app voice report handler 11656 I NO
  • Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明

    Stable Diffuse 之 安装文件夹 以及操作界面 UI Prompt相关说明 目录 Stable Diffuse 之 安装文件夹 以及操作界面 UI Prompt相关说明 一 简单介绍 二 安装文件相关说明 三 界面的简单说明 四
  • 微博评论内容的Chatgpt 话题聚焦和情感分析 情感分析&LDA主题&可视化&多元线性回归

    为了分析热点话题背后演化的逻辑 本项目选取了掀起大范围讨论的OpenAI发布的语言训练模型 ChatGPT 作为研究对象 通过对微博 豆瓣 知乎等社交平台进行考察分析 微博以活跃用户多 讨论热度高 公众关注度广等特点成为了本小组的第一首选
  • Makefile中echo和@echo的区别

    echo 会在shell中显示echo这条命令和这条命令的输出结果 echo 不会在shell中显示echo这条命令 但是会显示命令的输出结果 例如 echo test echo hello world echo test with add
  • 网络结构(1)ResNeXt介绍及cardinality介绍

    写这篇文章是因为最近在阅读论文的过程中 接触到了 cardinality 这个概念 出自2017年CVPR何凯明大神组的论文Aggregated Residual Transformations for Deep Neural Networ
  • 例题:加权合并与路径压缩

    题目 使用加权合并规则与路径压缩 对下列从0到15之间的数的等价对进行归并 并给出所得到的树的父指针表示法的数组表示 在初始情况下 集合中的每个元素分别在独立的等价类中 当两棵待归并的树的规模同样大时 使结点值较大的根结点作为值较小的根结点
  • 从redis为什么单线程还那么快到epoll的设计原理

    文章目录 redis为什么快 上下文切换 为什么采用单线程 redis的I O多路复用 epoll与select poll区别 select poll的几大缺点 用户态拷贝到内核态 epoll IO多路复用模型实现机制 epoll 优势详解
  • Redis-密钥登录ssh,免密码

    1 在kali上生成密钥 命令 ssh keygen t rsa 因为我这里有了 所以y选择了覆盖 如果是想无密码登录的话 则直接enter跳过 2 因为我这里config set dir root ssh dir有问题 所以我直接就把生成
  • 结构化开发方法--系统分析及设计概述

    说在前面 本系列文章专注于软考备考复习内容梳理 文章内容是对教材中知识点和考点的提炼 备考过程中可以有针对的进行复习 减少阅读量 有的放矢 导航目录 一 系统分析概述 二 系统设计的基本原理 三 系统总体结构设计 四 系统文档信息 一 系统
  • 【避坑指“难”】自定义AntV G2 Chart柱状图悬浮框信息

    实现效果如下 官方配置如下 import Chart from antv g2 const data time 16 Q1 type 移动游戏 value 0 time 16 Q1 type 移动购物 value 17 8 time 16
  • 不同编程语言语言的适用场景

    1 如何通俗地解释 C C C Java JavaScript HTML Python的用处 2 二十五岁零基础转行做软件测试怎么样 3 软件测试中的自动化测试一般要会什么编程语言 4 Which Programming Language
  • Linux 定时器设置

    crontab l 查看定时器任务 crontab e 编辑 定时器任务 sbin service crond start 启动服务 sbin service crond stop 关闭服务 sbin service crond resta
  • 【CUDA】第一个CUDA程序-addVector

    本文主要通过对两个浮点数组中的数据进行相加 并将其结果放入第三个数组中 其算法分别在CPU GPU上分别执行 并比较了所需时间 强烈感受到GPU的并行计算能力 这里 每个数组的元素大小为30000000个 一 实现代码 include
  • 模拟信号_模拟信号与模拟电路

    信号 用来携带信息的物理量 电信号 随着时间变化的电压或电流 在数学上 我们可以通过函数来表达这种变化情况 因此我们可以画出波形 电子电路中的信号分类 数字信号和模拟信号 模拟信号的特点 连续性 无论是在时间上还是在数值上 大多数的物理量均
  • Java中常见的异常类型是哪两种?他们有什么区别?

    Java中有两种异常 受检查的异常 checked 和不受检查的异常 unchecked 不受检查的异常不需要在方法或者是构造函数上声明 就算是方法或者是构造函数可能会抛出这样的异常 并且不受检查的异常可以传播到方法或者构造函数的外面 相反
  • 头条面经

    先来波面经 等这段时间秋招有空闲了再来好好总结 首先第一个 手写堆排快排 问题是求前k个大的数 或者第k大的数 第二个 intent的作用 为什么采用intent去连接四大组件 因为在各大组件将要回收的时候 可以将其保留 可以参考hongy
  • vue el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值

    项目场景
  • 24 KVM管理虚拟机-配置VNC-TLS登录

    文章目录 24 KVM管理虚拟机 配置VNC TLS登录 24 1 概述 24 2 操作步骤 24 KVM管理虚拟机 配置VNC TLS登录 24 1 概述 VNC服务端和客户端默认采用明文方式进行数据传输 因此通信内容可能被第三方截获 为