请问哪种远程桌面的工具,可以进行单向的文件传输功能,只允许服务器端向客户端传输数据

2023-09-06 09:54:58 +08:00
 gdb

有这样一个企业应用的需求。某个企业技术人员使用的工作电脑(本机电脑)是不能访问互联网的(出于安全考虑,主要是怕信息泄漏),但是需要提供一种模式提供大家上网查询资料的功能。

目前的方法:使用一台 Linux 服务器,里面装了 xrdp 的远程桌面服务器,同时把 xrdp 服务器上面的粘贴板共享等功能关闭了,这样,客户端可以通过 Windows 的 mstsc 桌面客户端远程访问这台 Linux 服务器,然后这台 Linux 服务器是可以上网的。

但是这里带来一个问题,Linux 服务器里面下载的东西,如何搬运到技术人员自己的电脑上面?因为 xrdp 把粘贴板共享功能关了,所以相当于客户端电脑和服务器端电脑之间没法直接 copy 数据。目前的做法是在 Linux 服务器上面装了一个 ftp 服务器,ftp 只允许下载,不允许上传,这样用户远程桌面下载到 Linux 系统的文件就可以通过 ftp 的方式,下载到自己本机电脑。

我希望有这样一种远程桌面的工具,能让远程的服务器上直接 copy 文件到本地的客户端。但是本地客户端是不能 copy 文件到服务器的。相当于数据是单向传递的。由互联网到本机可以,但是从本机往外不行。

所以想请教一下各位,有什么好的方法。

我感觉如果服务器使用的是 Windows 的系统,效果应该也是差不多的,因为 Windows 在服务器端可以开(使能)远程桌面,然后通过组策略等机制,也可以把 Windows 服务器远程桌面的粘贴板功能和文件 copy 功能关闭掉,最终的结果是远程桌面的服务器端和客户端之间没法交互数据了。而我希望的是单向传输数据是允许的。

谢谢!

1935 次点击
所在节点    问与答
22 条回复
jifengg
2023-09-06 10:45:27 +08:00
有保密要求的话,其实用 ftp 已经是很“方便”的方式了,一般我们是要求自己去“网吧”上网,能不能用 U 盘拷贝数据都得另外考虑。
而且 xdp 协议传文件比 ftp/http/smb 之类的慢很多。
扩展一下,要是用户电脑开个共享,到服务器上打开这个共享来复制文件,你这边又是怎么应对的呢?
apples01
2023-09-06 10:45:52 +08:00
没有
gdb
2023-09-06 10:50:15 +08:00
@jifengg 我是这么做的,在 Linux 服务器上面设置了 iptables ,里面有访问规则,对于出站规则,只开放了用于这台 Linux 电脑能访问互联网 web 的规则,比如只允许 http ,https ,dns 等等,然后这些出站规则里面屏蔽掉了局域网的技术人员电脑的那个内网网段。

相当于无法从 Linux 服务器(我们称为“上网电脑”)中的浏览器,通过 http 或者 https 去访问技术人员自己的电脑上开设的 http 或者 https 服务。
gdb
2023-09-06 10:52:02 +08:00
@jifengg xrdp 实际上在配置上,我们就给客户端和服务器之间,把键盘鼠标操作和远程的桌面画面进行了共享,其他的一概能禁止的都禁止掉了。
rojer12
2023-09-06 11:45:05 +08:00
linux 上起一个文件同步的服务,指定一个文件夹单向同步到 Windows ?操作只需要把需要复制的文件拖到单向同步的文件夹里面
LLaMA2
2023-09-06 11:52:41 +08:00


在你现有的基础上加上

remote clipboard github
gdb
2023-09-06 12:00:37 +08:00
@ye4tar 没听懂你这个是怎么弄的,能介绍一下么?谢谢!


@rojer12 你这个倒是一种不错的方式。相当于可以简单一点在 Linux 上面开一个 samba 的服务,不过如何让 samba 里面的文件只能从 Linux 中读取,不能从 Windows (客户端)写入,还是得思考或者配置一下。
Hiddeninvalley
2023-09-06 12:01:47 +08:00
使用 Apache guacamole 可以达到你想要的效果,设置只允许客户端经过 guacamole 下载 RDP 服务器上的文件。
LLaMA2
2023-09-06 12:05:43 +08:00
https://github.com/juanmv94/Remote-clipboard
<amp-youtube data-videoid="ZLjSZEhuuOM" layout="responsive" width="480" height="270"></amp-youtube>
LLaMA2
2023-09-06 12:06:08 +08:00
<amp-youtube data-videoid="F4n_VSEsFGc" layout="responsive" width="480" height="270"></amp-youtube>
yinmin
2023-09-06 12:08:21 +08:00
提供一个方案:
1. 准备一台 linux 服务器,安装 docker
2. 使用 kasmweb/chrome 镜像,把容器里的下载目录通过 volume 映射到 linux 主机
3. linux 上安装 smb 服务,提供下载目录的文件共享,配置成只读模式

员工使用浏览器访问 kasmweb/chrome 提供的服务,通过共享目录从服务器复制文件。

1 台服务器可以配置 10~20 个 docker 容器,可以同时提供 10~20 个员工使用,支持文本的双向复制黏贴和文件的单向复制。
gtchan13579
2023-09-06 12:10:30 +08:00
难道最简单的不是 SMB 共享然后只读
yinmin
2023-09-06 12:11:50 +08:00
#11 配置 kasmweb/chrome 容器时,可以使用环境变量参数 http_proxy 和 https_proxy 指定 chrome 使用代理服务器,然后在代理服务器上做网站访问限制和审计。
rojer12
2023-09-06 12:12:49 +08:00
@gdb #7 我是用的 resilio sync 来做的,同步的时候用只读的密匙建立链接就行了,你也可以用别的,很多类似的软件
gdb
2023-09-06 13:19:10 +08:00
@yinmin 谢谢!你说的 docker 容器弄 10 个的意思,是我需要同时跑 10 个“kasmweb/chrome”的容器么?另外,你说的“文本的双向复制”这个功能能不能关闭掉,因为有些涉及到本地电脑上面有源代码的情况,不是很想让源代码也直接从客户端复制到服务器端,谢谢。


@Hiddeninvalley 谢谢,我看了一下,Apache guacamole 的安装和使用有点麻烦,我有点不敢弄这个事情。


@ye4tar 你说的这个好像我和我的需求关系不是很大。。。
logic159
2023-09-06 15:28:17 +08:00
有这样的商业远程桌面产品,支持远程剪贴板的方向控制,免费的不清楚
gdb
2023-09-06 16:36:59 +08:00
@yinmin 感觉国内访问 dock 的 hub 太慢了,我在试验你的方法,按照这个教程: https://kasmweb.com/docs/latest/install/single_server_install.html

使用的是 standard install 的方式,感觉下载的时候要绝望了。。。

需要运行的最后一个命令是:sudo bash kasm_release/install.sh

结果如下:
A copy of the End User License Agreement is located at:
/tmp/kasm_release/licenses/LICENSE.txt

I have read and accept End User License Agreement (y/n)? y
Checking if docker and docker compose are installed.
Docker is installed
24.0.6 is a supported version of docker.
Docker compose is installed
2.5.0 is a supported version of docker compose
Commands docker and docker compose detected.
Skipping Dependency Installation.
Checking if DEFAULT_PROXY_LISTENING_PORT (443) is free
Port (443) is not in use.
Swap Exists
Installing All Services
Docker network kasm_default_network already exists. Will not create
Initializing Database
Setting Seed file as /opt/kasm/1.14.0/conf/database/seed_data/default_properties.yaml
Using Database Master User postgres
Using Database Master Password from stdin -G
kasm_db_1.14.0
db Pulling
7264a8db6415 Pulling fs layer
6ff36a0c8b9b Pulling fs layer
41485c1d4f30 Pulling fs layer
f366013f8cd6 Pulling fs layer
1af780e8bcfb Pulling fs layer
9aca5db19b47 Pulling fs layer
368f591a7da6 Pulling fs layer
9c801f847893 Pulling fs layer
9aca5db19b47 Waiting
368f591a7da6 Waiting
9c801f847893 Waiting
f366013f8cd6 Waiting
1af780e8bcfb Waiting
6ff36a0c8b9b Downloading [============================> ] 721B/1.287kB
6ff36a0c8b9b Downloading [==================================================>] 1.287kB/1.287kB
6ff36a0c8b9b Download complete
41485c1d4f30 Downloading [==================================================>] 149B/149B
41485c1d4f30 Verifying Checksum
41485c1d4f30 Download complete
1af780e8bcfb Downloading [====> ] 720B/8.691kB
1af780e8bcfb Downloading [============> ] 2.089kB/8.691kB
1af780e8bcfb Downloading [===================> ] 3.458kB/8.691kB
1af780e8bcfb Downloading [==================================================>] 8.691kB/8.691kB
1af780e8bcfb Retrying in 5 seconds
1af780e8bcfb Retrying in 4 seconds
1af780e8bcfb Retrying in 3 seconds
1af780e8bcfb Retrying in 2 seconds
1af780e8bcfb Retrying in 1 second
1af780e8bcfb Retrying in 10 seconds
1af780e8bcfb Retrying in 9 seconds
1af780e8bcfb Retrying in 8 seconds
1af780e8bcfb Retrying in 7 seconds
1af780e8bcfb Retrying in 6 seconds
1af780e8bcfb Retrying in 5 seconds
1af780e8bcfb Retrying in 4 seconds
1af780e8bcfb Retrying in 3 seconds
1af780e8bcfb Retrying in 2 seconds
1af780e8bcfb Retrying in 1 second
1af780e8bcfb Downloading 2.09kB
1af780e8bcfb Retrying in 15 seconds
1af780e8bcfb Retrying in 14 seconds
1af780e8bcfb Retrying in 13 seconds
1af780e8bcfb Retrying in 12 seconds
1af780e8bcfb Retrying in 11 seconds
1af780e8bcfb Retrying in 10 seconds
1af780e8bcfb Retrying in 9 seconds
1af780e8bcfb Retrying in 8 seconds
1af780e8bcfb Retrying in 7 seconds
1af780e8bcfb Retrying in 6 seconds
1af780e8bcfb Retrying in 5 seconds
1af780e8bcfb Retrying in 4 seconds
1af780e8bcfb Retrying in 3 seconds
1af780e8bcfb Retrying in 2 seconds
1af780e8bcfb Retrying in 1 second
1af780e8bcfb Downloading [==========> ] 1.369kB/6.601kB
1af780e8bcfb Downloading [=========================================> ] 5.476kB/6.601kB
1af780e8bcfb Download complete
bianhui
2023-09-07 08:44:35 +08:00
你给账户群组权限设置成只读的不就行了么。再或者试一下 guacamole
liyouran
2023-09-07 12:01:17 +08:00
直接在服务器上设置 iptables 规则匹配远程桌面的 copy 服务器然后阻断,匹配规则可能有点难
gdb
2023-09-07 12:49:48 +08:00
@liyouran 这种屏蔽规则怎么写?,iptables 里面的吗?我估计我是写不出来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971300

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX