百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

③-在 Linux VDI 上启用设备重定向

liuian 2025-01-21 19:29 33 浏览



在日常使用过程中,您可能需要将不同类型的设备重定向到Ubuntu VDI。本次分享将向您展示如何准备用于设备重定向的 Ubuntu 主映像。

  1. USB设备
  2. 智能卡重定向

安装根CA证书

安装智能卡驱动程序

下载并编译PCSC

3.使用设备重定向重新安装 Horizon Agent。

设置C编译器(基本程序)

C 编译器对于设置设备重定向至关重要。许多驱动程序需要编译器进行设置。请按照以下步骤在 Ubuntu 上安装 GCC 编译器。

  • 登录Ubuntu。
  • 打开终端。
  • 运行以下命令安装 C 编译器包。
  • 须藤apt更新
  • 须藤 apt install make
  • sudo apt安装gcc
  • sudo apt安装cmake
  • 运行命令“ gcc --version ”。确保 Ubuntu 上安装了 GCC。

1.USB设备

要启用 USB 重定向,首先需要在 Ubuntu 上安装 VHCI 驱动程序。

驱动程序的源代码可以在以下链接中找到。

https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/

登录到 Ubuntu 桌面。下载最新的 Web 浏览器驱动程序并将其放置到 Ubuntu 桌面下载文件夹中。本次分享以vchi-hcd 1.15为例。

在设置驱动程序之前,您必须确定 Horizon Agent 软件包中包含的修补文件的路径。安装过程中将需要修补文件。

如果您按照我之前的帖子 ( https://www.tech-fellow.com/post/creating-full-clone-desktop-with-ubuntu#viewer-73imt )来设置 Horizon Agent,则该补丁应该位于类似~/Downloads/VMware-horizonagent-linux-x86_64-2111.1-8.4.0-19066680/resources/vhci/patch/vhci.patch之类的地方。/补丁/vhci.补丁。

  • 登录Ubuntu。
  • 打开终端。
  • 运行以下命令集来安装驱动程序。
  • cd ~/下载
  • sudo tar -xzvf vhci-hcd-1.15.tar.gz
  • cd vhci-hcd-1.15
  • sudo patch -p1 < ~/Downloads/VMware-horizonagent-linux-x86_64-2111.1-8.4.0-19066680/resources/vhci/patch/vhci.patch
  • 须藤清理
  • 须藤使
  • 须藤进行安装

** 请注意,如果您的 Linux 内核更改为新版本,则必须重新编译并重新安装 VHCI 驱动程序,但不需要重新安装 Horizon for Linux。为了避免这种情况,您还可以将动态内核模块支持 (DKMS) 添加到 VHCI 驱动程序,如下所示。

  • cd ~/下载
  • sudo apt install linux-headers-`uname -r`
  • sudo apt install dkms
  • sudo cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
  • sudo touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
  • sudo nano /usr/src/usb-vhci-hcd-1.15/dkms.conf

将以下内容添加到 dkms.conf 文件中。

PACKAGE_NAME="usb-vhci-hcd"

PACKAGE_VERSION=1.15

MAKE_CMD_TMPL="使 KVERSION=$kernelver"

CLEAN="$MAKE_CMD_TMPL 清理"

BUILT_MODULE_NAME[0]="usb-vhci-iocifc"

DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"

MAKE[0]="$MAKE_CMD_TMPL"

BUILT_MODULE_NAME[1]="usb-vhci-hcd"

DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"

MAKE[1]="$MAKE_CMD_TMPL"

自动安装=“是”

通过以下命令在 dkms 中添加并构建此 VHCI 驱动程序。

  • sudo dkms 添加 usb-vhci-hcd/1.15
  • sudo dkms 构建 usb-vhci-hcd/1.15
  • sudo dkms 安装 usb-vhci-hcd/1.15

下一步将使用相应的设置修改 VMware 配置文件。

  • 通过命令“ sudo nano /etc/vmware/config编辑配置文件 ”编辑配置文件”。
  • 在配置文件中添加一行“ 在配置文件中添加一行“ viewusb.IncludeFamily ”。
  • 添加您允许重定向的设备系列。以下示例启用除键盘和鼠标之外的所有 HID USB 进行重定向。
  • 按照上一节“使用设备重定向重新安装Horizon Agent ”中的过程重新安装 Horizon Agent。

*** 您可以使用相同的语法启用其他设备类型。以下是可供参考的器件系列的完整列表。

音频

任何音频输入或音频输出设备。

音频输入

音频输入设备,例如麦克风。

音频输出

音频输出设备,例如扬声器和耳机。

蓝牙

蓝牙连接设备。

通讯

通信设备,例如调制解调器和有线网络适配器。

隐藏

人机接口设备,不包括键盘和指点设备。

hid 可启动

启动时可用的人机界面设备,不包括键盘和指点设备。

成像

成像设备,例如扫描仪。

键盘

键盘设备。

老鼠

指点设备,例如鼠标。

其他

家庭未指定。

掌上电脑

个人数字助理。

身体的

力反馈设备,例如力反馈操纵杆。

打印机

打印设备。

安全

安全设备,例如指纹读取器。

智能卡

智能卡设备。

贮存

大容量存储设备,例如闪存驱动器和外部硬盘驱动器。

未知

家人不详。

小贩

具有供应商特定功能的设备。

视频

视频输入设备。

无线的

无线网络适配器。

乌斯巴

无线 USB 设备。

2. 智能卡重定向

如果要启用智能卡重定向,您需要按照以下步骤在Ubuntu上安装智能卡读卡器软件并进行相应配置。

要为运行 Ubuntu 的桌面设置智能卡方向,您应该首先将 Ubuntu 虚拟机与 Active Directory 域集成。

如果你还没有加入Ubuntu to AD,请关注下面的分享。

https://www.tech-fellow.com/post/join-ubuntu-linux-to-active-directory

2a.获取根CA证书

为智能卡服务安装根 CA 对于重定向发挥作用至关重要。为此,我们需要 AD 域的根证书。该根证书可以通过与AD域集成的MS CA服务器获取。

如果您的域中没有 CA 服务器,您可以参考 Microsoft 文档来设置 CA 服务器。

第一步将从 AD 域导出根 CA 证书。

  • 登录到Microsoft CA 服务器
  • 打开命令提示符。
  • 通过命令“ sudo certutil -ca.cert c:\Path_to_Store_File\ca_root.cer ”导出根证书。
  • 将导出的根证书上传到 Ubuntu。

2b.安装根CA证书

接下来将返回 Ubuntu 主映像进行进一步配置。

  • 登录Ubuntu。
  • 打开终端。
  • 将目录更改为存储根证书的路径。
  • 通过命令安装所需的库:
  • sudo apt-get install -y pcscd pcsc-tools pkg-config libpam-pkcs11 opensc libengine-pkcs11-openssl libnss3-tools
  • 通过命令将其转换为PEM格式:
  • sudo openssl x509 -inform der -in ./ca_root.cer -out ./ca_root.pem
  • 通过以下命令初始化证书数据库。
  • 须藤 mkdir /etc/pki/nssdb
  • sudo certutil -A -d /etc/pki/nssdb -n "根 CA 证书" -t "CT,C,C" -i ./ca_root.pem
  • 通过以下命令将根 CA 证书复制到/etc/pam_pkcs11/cacerts 目录。
  • sudo mkdir -p /etc/pam_pkcs11/cacerts
  • sudo cp ./ca_root.pem /etc/pam_pkcs11/cacerts
  • 通过以下命令创建 pkcs11 哈希文件。
  • 须藤 chmod a+r ./ca_root.pem
  • 须藤 pkcs11_make_hash_link
  • 通过命令“ sudo certutil -L -d /etc/pki/nssdb ”验证是否已成功加载所需的证书。
  • 将显示类似的结果如下。
  • 通过命令“ sudo modutil -dbdir /etc/pki/nssdb -list ”验证是否已成功添加所需的库。
  • 将显示类似的结果如下。

PKCS #11模块列表

--------------------------------------------------- ----------

1. NSS 内部 PKCS #11模块

插槽:附有 2 个插槽

状态:已加载

插槽:NSS 内部加密服务

令牌:NSS 通用加密服务

slot:NSS 用户私钥和证书服务

令牌:NSS 证书数据库

--------------------------------------------------- ----------

2b.安装智能卡 PIV 驱动程序

为了支持智能卡的PIV功能,还需要添加PIV智能卡驱动程序。以下步骤以 Yubikey PIV 版本 2.3.0 为例。如果您使用不同的产品,您可以参考您的产品文档。

  • 从 Yubikey 下载 PIV 驱动程序并将文件放入“下载”文件夹中。

https://developers.yubico.com/yubico-piv-tool/Releases/

  • Open the Terminal.
  • Run following commands to setup the PIV drivers
  • cd ~/Downloads/
  • sudo apt install cmake build-essential libssl-dev check gengetopt help2man libtool pkg-config libpcsclite-dev
  • sudo tar -zxvf yubico-piv-tool-2.3.0.tar.gz
  • cd yubico-piv-tool-2.3.0
  • sudo mkdir build
  • cd build
  • sudo cmake ..
  • sudo make
  • sudo make install

2c. Adding PIV drivers to nssdb

After making the CA cert ready, next will be installing the smart card PIV drivers on Ubuntu. This sharing I am using Yubikey as an example.

First you need to copy the PIV driver files to /usr/lib/ by following commands.

  • cd /usr/local/lib/
  • sudo cp libykcs11.a /usr/lib/
  • sudo cp libykcs11.so /usr/lib/
  • sudo cp libykcs11.so.2 /usr/lib/
  • sudo cp libykcs11.so.2.3.0 /usr/lib/
  • sudo cp libykpiv.a /usr/lib/
  • sudo cp libykpiv.so /usr/lib/
  • sudo cp libykpiv.so.2 /usr/lib/

Then you can add the drivers to the nssdb.

  • Change directory to the path storing the root cert. Run following commands.
  • sudo cp /usr/local/lib/libykpiv.so /usr/lib/
  • sudo certutil -N -d /etc/pki/nssdb
  • sudo certutil -A -n rootca -i ca_root.pem -t "CT,CT,CT" -d /etc/pki/nssdb
  • sudo modutil -dbdir /etc/pki/nssdb/ -add "piv card" -libfile /usr/lib/libykcs11.so
  • Verify that the expected libraries are added successfully by command "sudo modutil -dbdir /etc/pki/nssdb -list".
  • Similar result as follow will be shown.

Listing of PKCS #11 Modules

–-----------------------------------------------------------

1. NSS Internal PKCS #11 Module

slots: 2 slots attached

status: loaded

slot: NSS Internal Cryptographic Services

token: NSS Generic Crypto Services

slot: NSS User Private Key and Certificate Services

token: NSS Certificate DB

2. piv card 2.0

library name: /usr/lib/libcmP11.so

slots: There are no slots attached to this module

status: loaded

–-----------------------------------------------------------

2d. Configure pam_pkcs11 library

After applied the PIV library, there also have corresponding configuration on pam_pkcs11 library.

  • Copy and create configuration file by command:
  • sudo mkdir /etc/pam_pkcs11
  • sudo cp /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example /etc/pam_pkcs11/pam_pkcs11.conf
  • Edit the configuration file by command:
  • sudo nano /etc/pam_pkcs11/pam_pkcs11.conf
  • Edit the configuration file as shown in following:

use_pkcs11_module = mysc;


pkcs11_module mysc {

module = /usr/lib/libcmP11.so;

description = "LIBCMP11";

slot_num = 0;

ca_dir = /etc/pki/cacerts;

nss_dir = /etc/pki/nssdb;

cert_policy = ca;

}

...

use_mappers = cn, null;

...

mapper cn {

debug = false;

module = internal;

# module = /lib/pam_pkcs11/cn_mapper.so;

ignorecase = true;

mapfile = file:///etc/pam_pkcs11/cn_map;

# mapfile = "none";

}

  • Edit the configuration file by command:
  • sudo nano /etc/pam_pkcs11/cn_map
  • Edit the configuration file as shown in following:

Common name -> Login ID

  • Edit the configuration file by command:
  • sudo nano /etc/pam.d/gdm-password
  • Edit the configuration file as shown in following. Please place the pam_pkcs11.so authorization line before the common-auth line

#%PAM-1.0

auth requisite pam_nologin.so

auth required pam_succeed_if.so user != root quiet_success

auth sufficient pam_pkcs11.so

@include common-auth

auth optional pam_gnome_keyring.so

@include common-account

2e. Download and compile PCSC

The next step will be installing the smart card reader. The package and version must be exactly pcsclite 1.8.8. Other versions are not compatible with Horizon Agent

  • Run following set of commands to instal the pcsc 1.8.8.
  • cd ~/Downloads
  • sudo apt-get install -y git autoconf automake libtool flex libudev-dev
  • sudo git clone https://salsa.debian.org/rousseau/PCSC.git
  • cd PCSC/
  • sudo git checkout -b pcsc-1.8.8 1.8.8
  • sudo ./bootstrap
  • sudo ./configure --prefix=/usr --sysconfdir=/etc --libdir=/lib/x86_64-linux-gnu/ CFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" LIBS="-ldl" LDFLAGS="-Wl,-Bsymbolic-functions -Wl,-z,relro" CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2"
  • sudo make
  • sudo make install
  • Run command "sudo systemctl enable pcscd.service".
  • Test the installation by command "sudo pcsc_scan".
  • Similar result as follow will be shown.
  • Reinstall Horizon Agent with procedure on last section "Reinstall Horizon Agent with Device Redirection".

3. Reinstall Horizon Agent with Device Redirection.

At last, you will have to reinstall the Horizon Agent with device redirection enabled.

  • Refer the Horizon agent installation sharing (https://www.tech-fellow.com/post/creating-full-clone-desktop-with-ubuntu#viewer-73imt) But replace the Horizon Agent installation command with following parameters.

"sudo ./install_viewagent.sh -m yes -U yes -A yes".

Following table is the most common parameters to enable different features on Horizon Linux VDI.

Full details of parameter can be found on following link.

https://docs.vmware.com/en/VMware-Horizon/2203/linux-desktops-setup/GUID-09A3F97C-47FE-4ABF-B68C-E42AE26632CC.html#GUID-09A3F97C-47FE-4ABF-B68C-E42AE26632CC

-a yes|no

Install or bypass audio input redirection support. Default is yes.

-f yes|no

Install or bypass support of the cryptographic modules designed for Federal Information Processing Standards (FIPS) 140-2. Default is no. For more information, see the FIPS 140-2 Mode description in Features of Horizon Linux Desktops.

-j

JMS SSL keystore password. By default, installer generates a random string.

-m yes|no

Install or bypass the smart card redirection support. Default is no.

-r yes|no

Restart the system automatically after installation. Default is no.

-s

Self signed cert subject DN. By default, installer uses Blast.

-C yes|no

Install or bypass Clipboard Redirection support. Default is yes.

-F yes|no

Install or bypass CDR support. Default is yes.

-M yes|no

Upgrade the Linux Agent to managed or unmanaged agent. Default is yes.

-S yes|no

Install or bypass Single Sign-on (SSO) support. Default is yes.

-T yes|no

Install or bypass True Single Sign-on (True SSO) support. Default is no.

-U yes|no

Install or bypass USB support. Default is no.

相关推荐

MySQL慢查询优化:从explain到索引,DBA手把手教你提升10倍性能

数据库性能是应用系统的生命线,而慢查询就像隐藏在系统中的定时炸弹。某电商平台曾因一条未优化的SQL导致订单系统响应时间从200ms飙升至8秒,最终引发用户投诉和订单流失。今天我们就来系统学习MySQL...

一文读懂SQL五大操作类别(DDL/DML/DQL/DCL/TCL)的基础语法

在SQL中,DDL、DML、DQL、DCL、TCL是按操作类型划分的五大核心语言类别,缩写及简介如下:DDL(DataDefinitionLanguage,数据定义语言):用于定义和管理数据库结构...

闲来无事,学学Mysql增、删,改,查

Mysql增、删,改,查1“增”——添加数据1.1为表中所有字段添加数据1.1.1INSERT语句中指定所有字段名语法:INSERTINTO表名(字段名1,字段名2,…)VALUES(值1...

数据库:MySQL 高性能优化规范建议

数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意,...

下载工具合集_下载工具手机版

迅雷,在国内的下载地位还是很难撼动的,所需要用到的地方还挺多。缺点就是不开会员,软件会限速。EagleGet,全能下载管理器,支持HTTP(S)FTPMMSRTSP协议,也可以使用浏览器扩展检测...

mediamtx v1.15.2 更新详解:功能优化与问题修复

mediamtxv1.15.2已于2025年10月14日发布,本次更新在功能、性能优化以及问题修复方面带来了多项改进,同时也更新了部分依赖库并提升了安全性。以下为本次更新的详细内容:...

声学成像仪:泄露监测 “雷达” 方案开启精准防控

声学成像仪背景将声像图与阵列上配装的摄像实所拍的视频图像以透明的方式叠合在一起,就形成了可直观分析被测物产生状态。这种利用声学、电子学和信息处理等技术,变换成人眼可见的图像的技术可以帮助人们直观地认识...

最稳存储方案:两种方法将摄像头接入威联通Qu405,录像不再丢失

今年我家至少被4位邻居敲门,就是为了查监控!!!原因是小区内部监控很早就停止维护了,半夜老有小黄毛掰车门偷东西,还有闲的没事划车的,车主损失不小,我家很早就配备监控了,人来亮灯有一定威慑力,不过监控设...

离岗检测算法_离岗检查内容

一、研发背景如今社会许多岗位是严禁随意脱离岗位的,如塔台、保安室、监狱狱警监控室等等,因为此类行为可能会引起重大事故,而此类岗位监督管理又有一定困难,因此促生了智能视频识别系统的出现。二、产品概述及工...

消防安全通道占用检测报警系统_消防安全通道占用检测报警系统的作用

一、产品概述科缔欧消防安全通道占用检测报警系统,是创新行业智能监督管理方式、完善监管部门动态监控及预警预报体系的信息化手段,是实现平台远程监控由“人为监控”向“智能监控”转变的必要手段。产品致力于设...

外出住酒店、民宿如何使用手机检测隐藏的监控摄像头

最近,一个家庭在他们的民宿收到了一个大惊喜:客厅里有一个伪装成烟雾探测器的隐藏摄像头,监视着他们的一举一动。隐藏摄像头的存在如果您住在酒店或民宿,隐藏摄像头不应再是您的担忧。对于民宿,房东应报告所有可...

基于Tilera众核平台的流媒体流量发生系统的设计

曾帅,高宗彬,赵国锋(重庆邮电大学通信与信息工程学院,重庆400065)摘要:设计了一种基于Tilera众核平台高强度的流媒体流量发生系统架构,其主要包括:系统界面管理模块、服务承载模块和流媒体...

使用ffmpeg将rtsp流转流实现h5端播放

1.主要实现rtsp转tcp协议视频流播放ffmpeg下载安装(公认业界视频处理大佬)a、官网地址:www.ffmpeg.org/b、gitHub:github.com/FFmpeg/FFmp…c、推...

将摄像头视频流从Rtsp协议转为websocket协议

写在前面很多通过摄像头拿到的视频流格式都是Rtsp协议的,比如:海康威视摄像头。在现代的浏览器中,已经不支持直接播放Rtsp视频流,而且,海康威视提供的本身的webSdk3.3.0视频插件有很多...

华芸科技推出安全监控中心2.1 Beta测试版

全球独家支持hdmi在线实时监看摄像机画面,具单一、循环或同时监看四频道视频影像,可透过华芸专用红外线遥控器、airemote或是键盘鼠标进行操作,提供摄像机频道增购服务,满足用户弹性扩增频道需...