我正在寻找有关 WinRM 的具体反馈。关于在没有 VPN 的情况下公开提供 RDP 是否是个好主意,仍然存在争议——关于公开提供 SSH 是否是个好主意,只要设置正确,就没有争议...
目前 WinRM 适合于什么:与 VPN 一起使用,还是不使用 VPN 等等?
答案1
我曾使用 WinRM 来公开指标 - 无需使用 VPN 等。但有一些安全注意事项:
- 尝试运行
winrm get winrm/config
以查看当前配置情况。 - 确保 WinRM 已安装用于 HTTPS 的证书。这必须进入存储
Personal
区Local Computer
(是的 - 奇怪的命名法) - 通过执行以下操作启用 HTTPS
winrm quickconfig -transport:https
一旦传输得到保护,您需要启用客户端证书认证并禁用其他所有内容:
- 禁用东西就是这样完成的
winrm set winrm/config/client/auth @{Digest="false"}
。 - 禁用 Kerberos、Digest 以及周围的其他内容。
- 通过执行以下操作启用证书认证
winrm set winrm/config/client/auth @{Certificate="true"}
- 我不太记得您是否需要
winrm set winrm/config/client/auth '@{CredSSP="true"}
这些东西才能工作 - 它可能需要凭证委派。
这种方法效果很好,如果您信任 Windows HTTP 传输、Windows PKI 基础架构,并且您有防火墙可以过滤掉明显的恶意内容,那么这种方法效果很好。如果您需要以编程方式收集信息,这种方法就很不错。
现在,另一件事是:您能否通过 WinRM 获取您想要的所有信息?这个问题不太容易回答。我发现很多事情比您想象的更难获得。我想要 RAID 控制器等的状态,但这充其量也很难。使用 RDP 而不是 SSH(只是为了确保万无一失)仍然是我最喜欢的方式,因为它可以增加灵活性。
总之,是的 - 您可以在没有 VPN 等的情况下使用 WinRM,但您应该考虑它最终是否能满足您的需求。
编辑:将 WinRM 与 SSH 进行比较可能并不完全有用 - 至少从功能包的角度来看。使用 SSH,如果您准备编写一些可以收集所需信息的东西,您可以获得任何东西。从这个意义上说,WinRM 的多功能性较差。但是,从安全角度来看,如果您正确锁定,两者在我看来都很好,这是完全可能的。
答案2
我不是 Windows 用户所以我不能谈论太多 WinRM 的具体细节。
但底线是,任何远程访问服务(如 ssh 或 winrm)都有风险和好处。据我所知,它们提供的功能大致相似。如果它们提供类似级别的 AAA,那么您可以在安全态势中以类似方式对待它们。例如,如果 WinRM 使用 https 证书进行身份验证,但 openssh 允许通过网络发送密码(一种可能的配置),则 WinRM 的 AAA 可能更好。
每个服务的权限是否受限?例如,在 Linux 上,您可以运行 selinux,以便入站 ssh 连接只能执行某些操作。
您还应该考虑您对不同供应商/实现的信任程度。您是否希望在 openssh 和 *nix 中看到的可远程利用的漏洞比在 windows 中多或少?尽量措辞以免成为喷子 - 这显然是一个有倾向性的问题。但这个问题非常真实。
至于具体应该采取什么样的安全措施……有些人将 ssh 放在开放的 22 端口上,有些人要求先使用 VPN 才能连接。有些人使用隐蔽式安全措施,将 ssh 放在 222 端口上,而不是 22 端口上。
有些有允许连接的 IP 白名单。您可以在 sshd 或 iptables 中执行白名单。在 Windows 上、在 Windows 防火墙中,还是可能在 winrm 本身中?有很多可能性。
答案3
WinRM 能够使用 HTTPS 传输,并且如果您的计算机在域中并且上面有你的企业证书已经可以正常工作了。