V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fox0001
V2EX  ›  Windows

[求教]安全的远程桌面方案?

  •  1
     
  •   fox0001 · 2022-11-30 11:46:46 +08:00 · 6187 次点击
    这是一个创建于 729 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近因为 yq 需要远程办公。

    当前解决方案

    1. 主要是使用 Windows 的远程桌面 + 端口映射。
    2. 办公室的电脑,台式机,系统是 Win11 ,都开启了远程桌面,登录用户设置强密码。
    3. 网络有外网 IP ,可以设置路由器的端口映射,把 win11 的远程桌面端口,映射到外网 IP 端口。

    缺点

    担心基于登录用户的密码验证不够安全。而且远程桌面的端口直接映射到外网,不是一个好的做法。

    加强安全性的方案

    1. 由于办公室有部署 Debian 的电脑,可以使用 SSH 建立 Socks 作为办公室内网的入口。远程桌面基于该 Socks 连接,不用映射端口到外网。Linux 上的 Remmina 可以使用,但微软官方的远程桌面客户端(包括 iOS 和 Android ),不支持任何方式的网络代理。
    2. 微软的方案,应该是“远程桌面网关”。这个没玩过,需要再研究。

    疑问

    大家有无更好的解决方案?

    第 1 条附言  ·  2022-12-10 11:28:58 +08:00

    最后选择使用SSH方案。

    1 使用策略

    1. 使用SSH服务作为安全验证。
    • 即路由只映射内网Debian服务器的SSH端口,外网可以通过SSH服务登录。
    1. 台式机设置wake on lan,实现远程开机。
    • 就是Debian安装wakeonlan命令,再写个shell脚本记录机器简称与对应MAC地址,实现更简单的开机操作。
    1. 使用SSH端口转发(Port Forwarding)访问远程桌面。
    • 就是把本地端口转发到办公室内网指定台式机的远程桌面端口,实现访问办公电脑。

    2 优点

    1. SSH更安全。可以强密码验证或密钥验证。
    2. 各个平台都有SSH客户端,包括Windows(PuTTY或OpenSSH)、Linux、Android、iOS(Termius)。
    3. 使用端口转发,解决微软官方客户端不支持代理的问题。

    3 缺点

    1. 对使用人员的要求较高,例如需要学会SSH命令。
    2. 办公室网络需要能够外网访问。
    47 条回复    2023-12-03 09:34:40 +08:00
    jhytxy
        1
    jhytxy  
       2022-11-30 11:48:35 +08:00
    duo
    2fa

    每次 rdp 登录要在手机通过一下
    v2wtf
        2
    v2wtf  
       2022-11-30 11:55:39 +08:00
    自己搞一个端口转发就行了,我用 frp 转的,稳定得一比。
    swulling
        3
    swulling  
       2022-11-30 11:59:51 +08:00   ❤️ 2
    加一层 VPN ,比如 tailscale ,zerotier 等

    这样你的远程桌面就不会暴露在公网上。
    xyjincan
        4
    xyjincan  
       2022-11-30 12:02:21 +08:00
    开启 ssh 服务,并且设置好密钥登录,关闭密码登录,然后 ssh 客户端隧道端口转发连本机 RDP 服务
    registerrr
        5
    registerrr  
       2022-11-30 12:02:29 +08:00
    用 frp 转一下端口,密钥设的长一点,复杂一点。
    fox0001
        6
    fox0001  
    OP
       2022-11-30 12:04:11 +08:00
    @jhytxy #1 谢谢,我记录一下,作为备选方案。由于使用了第三方服务,可能领导不会优先选用
    fox0001
        7
    fox0001  
    OP
       2022-11-30 12:06:45 +08:00
    @xyjincan #4 你意思是,每台 Win11 上都开启 ssh 服务,然后映射到外网的是本机 ssh 端口,而不映射 rdp 端口?其实就是使用本机的 ssh 服务登录,再登录 rdp 吧?
    fox0001
        8
    fox0001  
    OP
       2022-11-30 12:08:37 +08:00
    @registerrr #5 已经可以外网访问了,为什么需要 frp 转发端口?是不是 frp 有更好的安全验证?
    fox0001
        9
    fox0001  
    OP
       2022-11-30 12:11:00 +08:00
    @swulling #3 以前我们也是通过部署“open 威屁嗯”服务,实现安全的内网访问,但是访问时需要安装““open 威屁”客户端。也作为备选方案吧
    xyjincan
        10
    xyjincan  
       2022-11-30 12:12:52 +08:00
    只看了你的标题,回复后才看下面的

    你是全办公室都这么连接呀,直接在 debian 上搞一个排 10XXX 端口映射到各个 XXX 机器上啊,然后大家用一个 debian 账户密钥登录,连到这个网络,就可以 rdp 连接到自己的机器了
    crab
        11
    crab  
       2022-11-30 12:20:04 +08:00   ❤️ 1
    直接 ssh -L 本地端口:win11 内网 IP:3389 到 debian 。(前提内网的 win11 能被 debian 访问。)
    本地 远程桌面链接就是 127.0.0.1:本地端口
    xyjincan
        12
    xyjincan  
       2022-11-30 12:22:51 +08:00
    强调一下,客户端不能使用 127.0.0.1 ,3389 端口连接机器,ssh 用其它端口转发到本地,连接时指定好 [IP:端口] 就行了
    registerrr
        13
    registerrr  
       2022-11-30 12:25:33 +08:00
    @fox0001 漏看了,有外网 IP 直接密码设复杂点,远程桌面就行了,安全性由系统自己保证。
    frencis107
        14
    frencis107  
       2022-11-30 13:09:01 +08:00 via Android
    fox0001
        15
    fox0001  
    OP
       2022-11-30 13:19:29 +08:00 via Android
    @crab #11 谢谢。这个我试试
    ptrxeu
        16
    ptrxeu  
       2022-11-30 13:30:41 +08:00
    teamviewer corporate or logmein pro
    第三方维护的软件, 第三方承担的责任(法律上和技术上). 很多时候我们是在花钱买 compliance
    yujizmq
        17
    yujizmq  
       2022-11-30 13:37:40 +08:00
    堡垒机? jumpserver 之类的
    lwch
        18
    lwch  
       2022-11-30 13:44:17 +08:00
    我写了一个远程办公的软件,需要自己部署服务器端程序可以试试

    https://github.com/lwch/natpass
    fox0001
        19
    fox0001  
    OP
       2022-11-30 14:02:59 +08:00
    @yujizmq #17 对!我都忘了这个,还可以不用装远程桌面客户端了~
    redbeanzzZ
        20
    redbeanzzZ  
       2022-11-30 14:57:45 +08:00
    我觉得有公网 IP 搭个 VPN 连 3389 是最好的,有显卡需求就 moonlight
    cnbatch
        21
    cnbatch  
       2022-11-30 15:28:45 +08:00
    用 VPN 连回去就可以了,如果因为需要安装客户端而不想用 Open VPN ,那就用 Windows 自带的那些,比如 PPTP 、L2TP ,都是 Windows 内置的

    而且搭建 PPTP 和 L2TP 服务器端也不难,配置比 Open VPN 更加简便
    H0u5er
        22
    H0u5er  
       2022-11-30 15:33:46 +08:00
    zero trust 方案可以实现类似 VPN 的效果,而且附带 IAM 系统,方便管理账号权限。

    部署方法
    1.你家的网络接入方案提供的硬件盒子进行上网
    2.生产环境接入另外一个硬件盒子进行上网

    参考厂商
    Cato Network
    fox0001
        23
    fox0001  
    OP
       2022-11-30 15:54:09 +08:00
    @yujizmq #17 试过 Next Terminal ,远程 Windows 还行,但远程 Mac 太卡(使用 VNC 协议)~不过也不失为一个比较好的可选方案
    photon006
        24
    photon006  
       2022-11-30 16:17:00 +08:00
    docker 一行命令启动 wireguard: https://github.com/WeeJeWel/wg-easy

    路由器转发 udp 端口

    客户端连上就当内网使用,速度还快。
    ixinshang
        25
    ixinshang  
       2022-11-30 16:19:40 +08:00
    最近折腾 zerotier
    snoopygao
        26
    snoopygao  
       2022-11-30 17:26:15 +08:00
    千万别用什么 frp zerotier 之类的网络穿透东西,你有公网,并且能做 NAT ,至少用 openvpn 这样的专业软件,或才 wireguard 更好,因为这两个都可以只映射 UDP 端口,被扫描攻击的可能性很低
    leafre
        27
    leafre  
       2022-11-30 17:36:53 +08:00
    zerotier
    newmlp
        28
    newmlp  
       2022-11-30 17:37:12 +08:00
    VPN ( wireguard )+远程桌面
    tbwisk
        29
    tbwisk  
       2022-11-30 17:37:22 +08:00
    RustDesk 开源的,远程控制桌面
    zerotier 可以 ssh 到目标机器上面进行开发,或者 vscode ssh
    mayunqing1230
        30
    mayunqing1230  
       2022-11-30 18:33:48 +08:00
    准备两台电脑,任意一台电脑接入公网,另一台只允许内网,远程桌面连接接入公网的电脑,然后内网里远程桌面连接另一台
    goodryb
        31
    goodryb  
       2022-11-30 18:43:37 +08:00
    传统且成熟的方案是采用 VPN ,给每个用户分配 VPN 账号即可,低成本使用路由器自带 VPN server ;有安全或者审计要求请采购企业级解决产品。

    自己不要瞎搞,出问题背锅
    zealic
        32
    zealic  
       2022-11-30 18:53:51 +08:00
    Wireguard/Tailscale
    Asimov01
        33
    Asimov01  
       2022-11-30 19:03:12 +08:00
    FRP 转发用了一年多了,没啥问题,密码不要过简单就好
    sobev
        34
    sobev  
       2022-11-30 19:11:10 +08:00
    tailscale + windows remote
    TrojanKing
        35
    TrojanKing  
       2022-11-30 19:41:32 +08:00
    rustdesk
    thtznet
        36
    thtznet  
       2022-11-30 19:51:09 +08:00
    RDP 套 VPN 最简单和最安全的方案
    Lentin
        37
    Lentin  
       2022-11-30 19:55:42 +08:00
    naturegreen
        38
    naturegreen  
       2022-11-30 20:16:44 +08:00
    1. openvpn udp 高位端口
    2. rdp 改掉端口
    3. 本地一台机器做 openvpn 客户端,用 iptables 转发服务器端口到本机的 3389
    jaylee4869
        39
    jaylee4869  
       2022-11-30 21:20:43 +08:00
    我司全套 VMWare VDI (Horizon)
    szpunk
        40
    szpunk  
       2022-12-01 07:52:56 +08:00
    "但微软官方的远程桌面客户端(包括 iOS 和 Android ),不支持任何方式的网络代理。" 用 Proxifier 就好。
    byte10
        41
    byte10  
       2022-12-01 11:40:20 +08:00
    搞一个 120 元 的 x86 或 50 元的 arm 盒子,docker 跑一个 vpn ,24 小时开机,链接回来就可以了,这样 安全。
    matzoh
        42
    matzoh  
       2022-12-01 17:45:44 +08:00
    我是 rdp + tailscale
    troilus
        43
    troilus  
       2022-12-02 17:32:44 +08:00
    我是 rdp+v2ray
    fox0001
        44
    fox0001  
    OP
       2022-12-10 11:30:04 +08:00
    @crab #11 最后选择了你的方案,谢谢!
    fox0001
        45
    fox0001  
    OP
       2022-12-10 11:38:49 +08:00
    @swulling #3
    @redbeanzzZ #20
    @cnbatch #21
    @newmlp #28
    @goodryb #31
    @thtznet #36
    @naturegreen #38
    @byte10 #41

    谢谢各位回复。“虚拟专用网”确实是成熟简单的解决方案,但是这三个字母被用歪了。部署可能需要备案。后面怕被误解并出现非技术问题,还是先不采用。
    revalue
        46
    revalue  
       2023-05-04 21:09:34 +08:00
    @mayunqing1230 #30 家里主力机拯救者,还有一台家里闲置 macbook 。打算从家外面第 3 台电脑,用向日葵连 macbook ,然后 macbook 远程控制主力机。不知道有没有安全问题。

    好像我电费就够覆盖充值花生壳会员了
    Thatscode99
        47
    Thatscode99  
       361 天前 via iPhone
    @crab 请问 iOS 上应该怎么操作?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1971 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:23 · PVG 00:23 · LAX 08:23 · JFK 11:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.