如何利用Windows SSH通道保护RDP安全 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

如何利用Windows SSH通道保护RDP安全

ang010ela 系统安全 2017-12-15 10:57:43
471935
收藏

导语:Mac OS X High Sierra的root漏洞让我开始思考远程桌面(Windows Remote Desktop)连接的安全性问题。Windows远程桌面比VNC更加安全,但RDP,ADP,VNC不应该直接暴露到网络上。

Mac OS X High Sierra的root漏洞让我开始思考远程桌面(Windows Remote Desktop)连接的安全性问题。Windows远程桌面比VNC更加安全,但RDP,ADP,VNC不应该直接暴露到网络上。

安全 RDP

我最喜欢的安全RDP方法就是使用SSL对RD网关进行加密。另一个安全远程连接的方式是SSH通道,SSH通道并没有听起来那么复杂,下面是基本的配置步骤:

1. 设置SSH服务器
2. 设置从路由器转发到对方SSH端口的本地端口
3. 设置SSH客户端转发本地端口12345到远程端口sql2016:3389
4. 连接远程桌面到localhost:12345,localhost也是连接到sql2016的

mstsc3.png

为了介绍这个概念,我们用安装了OpenSSH的Windows进行设置。当你熟悉了概念后,就可以在OS X或Linux上进行配置了。

在Windows10上安装OpenSSH

开始——optional

optional.jpg

安装服务器和客户端

install.jpg

点击安装后,什么也不会发生。点击左上角的箭头会回到上一页,这一页你可以看到正在安装的特征。

install2.jpg

服务器和客户端完成安装后,需要重启系统。

配置OpenSSH

以管理员身份运行PowerShell,然后产生一个密钥。

cd C:windowssystem32OpenSSH
ssh-keygen -A

install3.jpg

紧缩权限,开启服务。如果跳过这一步,SSH服务器不能开启sshd服务,报错信息为:The sshd s

ervice terminated unexpectedly。
$filename = "$env:windirSystem32OpenSSHssh_host_ed25519_key"
$permission = "NT Servicesshd", "Read", "Allow"
$account = New-Object System.Security.Principal.NTAccount("NT Service", "sshd")
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl = Get-Acl -Path $filename
foreach ($access in $acl.access) {
    $null = $acl.RemoveAccessRule($access)
}
$null = $acl.SetOwner($account)
$null = $acl.AddAccessRule($accessRule)
$null = Set-Acl -Path $filename -AclObject $acl
Get-Service *ssh* | Start-Service

如果遇到错误信息,查看日志是一个比较好的解决方案,日志存放地址为C:windowssystem32OpenSSHLogs。

安全

网络上并没很多关于OpenSSH服务器实现的文档,OpenSSH目录中的sshd_config无法编辑,访问被持续拒绝。所以并没有按照推荐的做法对配置文件进行修改,所以我认为Microsoft是可信的。

在路由器上设置端口转发

不要用默认的SSH端口,也就是说不要从外部22端口转发到内部22端口。木马也会喜欢22端口的,日志文件会爆满的,而且可能会破解密码的。

配置OpenSSH客户端

外部IP地址为24.0.175.222,转发端口22222到Windows10的22端口,就可以连接到域计算机sql2016’s RDP3389端口。

ssh -f chrissy@24.0.175.222 -p 22222 -L 12345:sql2016:3389 -N

· -f 发送SSH命令到后天,这样就可以不保持PS打开了

· Chrissy是Windows10 workstation上的本地Windows帐号

· 24.0.175.222是公网IP

· 22222是公开SSH端口

· -L是本地端口,localhost:12345会被转发到sql2016:3389

· -N让OpenSSH不在远程系统中执行命令

connection-1024x157.jpg

远程桌面连接

对你的RDC/mstsc,使用localhost:12345作为主机名,如果你想取消,就会转发连接到sql2016:3389。

mstsc3.png

Hostname不配对,所以只能接受。

mstsc2.png

mstsc.png

结论

如果有不安全的协议连接到网络,那么SSH可能是一个比较好的选择。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务