有这样一个企业应用的需求。某个企业技术人员使用的工作电脑(本机电脑)是不能访问互联网的(出于安全考虑,主要是怕信息泄漏),但是需要提供一种模式提供大家上网查询资料的功能。
目前的方法:使用一台 Linux 服务器,里面装了 xrdp 的远程桌面服务器,同时把 xrdp 服务器上面的粘贴板共享等功能关闭了,这样,客户端可以通过 Windows 的 mstsc 桌面客户端远程访问这台 Linux 服务器,然后这台 Linux 服务器是可以上网的。
但是这里带来一个问题,Linux 服务器里面下载的东西,如何搬运到技术人员自己的电脑上面?因为 xrdp 把粘贴板共享功能关了,所以相当于客户端电脑和服务器端电脑之间没法直接 copy 数据。目前的做法是在 Linux 服务器上面装了一个 ftp 服务器,ftp 只允许下载,不允许上传,这样用户远程桌面下载到 Linux 系统的文件就可以通过 ftp 的方式,下载到自己本机电脑。
我希望有这样一种远程桌面的工具,能让远程的服务器上直接 copy 文件到本地的客户端。但是本地客户端是不能 copy 文件到服务器的。相当于数据是单向传递的。由互联网到本机可以,但是从本机往外不行。
所以想请教一下各位,有什么好的方法。
我感觉如果服务器使用的是 Windows 的系统,效果应该也是差不多的,因为 Windows 在服务器端可以开(使能)远程桌面,然后通过组策略等机制,也可以把 Windows 服务器远程桌面的粘贴板功能和文件 copy 功能关闭掉,最终的结果是远程桌面的服务器端和客户端之间没法交互数据了。而我希望的是单向传输数据是允许的。
谢谢!
1
jifengg 2023-09-06 10:45:27 +08:00
有保密要求的话,其实用 ftp 已经是很“方便”的方式了,一般我们是要求自己去“网吧”上网,能不能用 U 盘拷贝数据都得另外考虑。
而且 xdp 协议传文件比 ftp/http/smb 之类的慢很多。 扩展一下,要是用户电脑开个共享,到服务器上打开这个共享来复制文件,你这边又是怎么应对的呢? |
2
apples01 2023-09-06 10:45:52 +08:00
没有
|
3
gdb OP @jifengg 我是这么做的,在 Linux 服务器上面设置了 iptables ,里面有访问规则,对于出站规则,只开放了用于这台 Linux 电脑能访问互联网 web 的规则,比如只允许 http ,https ,dns 等等,然后这些出站规则里面屏蔽掉了局域网的技术人员电脑的那个内网网段。
相当于无法从 Linux 服务器(我们称为“上网电脑”)中的浏览器,通过 http 或者 https 去访问技术人员自己的电脑上开设的 http 或者 https 服务。 |
4
gdb OP @jifengg xrdp 实际上在配置上,我们就给客户端和服务器之间,把键盘鼠标操作和远程的桌面画面进行了共享,其他的一概能禁止的都禁止掉了。
|
5
rojer12 2023-09-06 11:45:05 +08:00
linux 上起一个文件同步的服务,指定一个文件夹单向同步到 Windows ?操作只需要把需要复制的文件拖到单向同步的文件夹里面
|
6
LLaMA2 2023-09-06 11:52:41 +08:00
有
在你现有的基础上加上 remote clipboard github |
7
gdb OP |
8
Hiddeninvalley 2023-09-06 12:01:47 +08:00
使用 Apache guacamole 可以达到你想要的效果,设置只允许客户端经过 guacamole 下载 RDP 服务器上的文件。
|
9
LLaMA2 2023-09-06 12:05:43 +08:00
|
10
LLaMA2 2023-09-06 12:06:08 +08:00
|
11
yinmin 2023-09-06 12:08:21 +08:00 1
提供一个方案:
1. 准备一台 linux 服务器,安装 docker 2. 使用 kasmweb/chrome 镜像,把容器里的下载目录通过 volume 映射到 linux 主机 3. linux 上安装 smb 服务,提供下载目录的文件共享,配置成只读模式 员工使用浏览器访问 kasmweb/chrome 提供的服务,通过共享目录从服务器复制文件。 1 台服务器可以配置 10~20 个 docker 容器,可以同时提供 10~20 个员工使用,支持文本的双向复制黏贴和文件的单向复制。 |
12
gtchan13579 2023-09-06 12:10:30 +08:00
难道最简单的不是 SMB 共享然后只读
|
13
yinmin 2023-09-06 12:11:50 +08:00
#11 配置 kasmweb/chrome 容器时,可以使用环境变量参数 http_proxy 和 https_proxy 指定 chrome 使用代理服务器,然后在代理服务器上做网站访问限制和审计。
|
14
rojer12 2023-09-06 12:12:49 +08:00
@gdb #7 我是用的 resilio sync 来做的,同步的时候用只读的密匙建立链接就行了,你也可以用别的,很多类似的软件
|
15
gdb OP @yinmin 谢谢!你说的 docker 容器弄 10 个的意思,是我需要同时跑 10 个“kasmweb/chrome”的容器么?另外,你说的“文本的双向复制”这个功能能不能关闭掉,因为有些涉及到本地电脑上面有源代码的情况,不是很想让源代码也直接从客户端复制到服务器端,谢谢。
@Hiddeninvalley 谢谢,我看了一下,Apache guacamole 的安装和使用有点麻烦,我有点不敢弄这个事情。 @ye4tar 你说的这个好像我和我的需求关系不是很大。。。 |
16
logic159 2023-09-06 15:28:17 +08:00
有这样的商业远程桌面产品,支持远程剪贴板的方向控制,免费的不清楚
|
17
gdb OP @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 |
18
bianhui 2023-09-07 08:44:35 +08:00
你给账户群组权限设置成只读的不就行了么。再或者试一下 guacamole
|
19
liyouran 2023-09-07 12:01:17 +08:00
直接在服务器上设置 iptables 规则匹配远程桌面的 copy 服务器然后阻断,匹配规则可能有点难
|