回归最本质的信息安全

;

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

2017年12月15日发布

40,182
0
5

导语: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可能是一个比较好的选择。

本文翻译自:https://blog.netnerds.net/2017/12/updated-ssh-tunneling-for-windows-people-protecting-remote-desktop/,如若转载,请注明原文地址: http://www.4hou.com/system/9093.html

点赞 5
取消

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

扫码支持

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

ang010ela

这个人很懒,什么也没留下

发私信

发表评论