配置使用RDP over SSH提高远程桌面安全性 /XSHELL 加速远程桌面RDP

2018-03-19T07:42:00

0x01 前言

为了方便,我在家中的服务器中配置了一台windows server虚拟机,然后使用pfsense将一个端口对公网开放并将其映射到该虚拟机的RDP端口。这样我无论在哪里都可以通过RDP协议访问家中的服务器,这样能使我有个GUI界面,方便进行一些远程操作。

可我并不信赖RDP的安全性,即使我使用了可靠的数字证书来识别身份:

但我还是担心windows会有其他漏洞导致服务器被渗透或者被爆破攻击。相比之下我比较信赖SSH,那为什么不用SSH做代理,将RDP请求转发到虚拟机上呢?

0x02 配置

首先要准备一台配置了远程桌面的windows系统,然后还需要一台配置了centos系统的虚拟机或电脑。两者在内网中要能互访,至少windows系统的TCP 3389这个端口要能被centos访问。

为了安全起见,我将centos系统的默认SSH端口作了修改并启用密钥验证,然后禁用密码验证:

然后将SSH端口通过pfsense映射到公网中:

0x03 使用

0x03.1 macOS

配置过程非常简单,并不需要使用iptables进行转发。如果你使用的是macOS或其他Linux系统,那么通过以下命令即可连接到远程SSH:

 
 
1
sudo ssh -L [local-listen-port]:[rdp-host]:[rdp-port] [username]@[ssh-host] -p [ssh-port] -i [ssh-key] -N

因为需要在本机监听一个端口,所以需要root权限或使用sudo。上面的参数解释如下:

  • local-listen-port:本地代理端口
  • rdp-host:windows的内网地址
  • rdp-port:RDP端口,默认为3389
  • ssh-username:SSH的用户名
  • ssh-host:centos的IP地址
  • ssh-port:SSH端口
  • ssh-key:SSH密钥的绝对路径

例如:

 
 
1
sudo ssh -L 33890:10.1.1.16:3389 [email protected] -p 2222 -i ./sshuser1.key -N

上面语句的意思是:使用用户名为sshuser1与相对应的ssh密钥sshuser1.key通过2222端口使用SSH协议登入home.t.com这台主机,并将本地端口33890通过SSH隧道转发到10.1.1.16:3389这个地址。

成功连接后并不会返还任何内容,这时候请不要关闭终端:

然后使用RDP软件连接即可:

因为使用了代理模式,所以RDP地址填写127.0.0.1即可,端口则为设定的33890。

 

0x03.2 windows xshell

  • 打开xshell新建会话属性对话框,并在连接选项框中输入SSH服务器信息:

    然后在用户身份验证对话框中输入用户信息:

    为了安全起见,请不要在密码一栏输入密码,如果输入密码,xshell将记住并托管你的密码。

    然后在隧道对话框中添加代理信息:

    完成后先连接SSH,连接后也不会有任何内容返还。这时候使用windows自带的RDP工具即可连接:

    输入账号密码后,又见到了熟悉的证书警告:

    如果不想总是提示证书错误或者想进一步提高安全性,请阅读以下文章:


0x04 结语

windows下用xshell或putty可以非常便捷地连接和使用,在使用上没有造成任何麻烦;而在macOS或Linux上,可以将命令写入到一个shell里,需要的时候一键打开就可以连接了,非常方便。

最主要是:安全!

 

via.https://enginx.net/2017/04/25/%E9%85%8D%E7%BD%AE%E4%BD%BF%E7%94%A8rdp-over-ssh%E6%8F%90%E9%AB%98%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%AE%89%E5%85%A8%E6%80%A7.html

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。