我正在尝试定义每个接口规则,就像在 Server 2003 中一样。
我们将用新的 2008 R2 服务器替换旧的 2003 服务器。该服务器运行 IIS 和 SQL Server。它是托管公司的专用服务器。我们使用办公室的 OpenVPN 连接来访问 SQL 服务器、RDesktop、FTP 和其他管理服务。只有 http 和 ssh 在公共接口上监听。
在运行 2003 的旧服务器上,我能够为 http 和 ssh 定义全局规则,并仅在 vpn 接口上允许其他服务。我找不到在 2008 R2 上执行相同操作的方法。
我知道有网络位置感知服务,防火墙规则是根据当前网络位置应用的。但我不明白这在服务器上的用途。
我发现的唯一接近的解决方案是在防火墙规则上设置范围并将远程 IP 地址限制为办公室的私有子网。但端口仍将在公共接口上进行监听。
那么,如何将防火墙规则限制于来自 vpn 接口的连接?
备注这一页 指出将规则范围限定到接口不再存在:
在早期版本的 Windows 中,许多此类命令都接受名为 interface 的参数。Windows Vista 或更高版本的 Windows 中的防火墙上下文不支持此参数。
我不敢相信他们竟然决定删除每个防火墙都具有的核心防火墙功能。一定有办法将规则限制到接口上。
有任何想法吗 ?
我仍然无法找到解决问题的适当方法。因此,目前我的解决方法是:
- 管理服务监听 VPN IP 地址
- 防火墙规则将范围限制为 VPN 的本地 IP 地址
- 公共服务监听所有接口,防火墙规则不受范围限制
这不是最佳选择,如果我更改 VPN 的 IP 地址,我也需要编辑防火墙规则。如果规则绑定到接口,就不会出现这种情况。
答案1
我知道这是一个旧的/死的线程,但是当我在 Google 上搜索此问题时,它首先出现在结果列表中,因此我为未来的访问者发布了这个答案:
请参阅此线程以了解如何在每个接口上禁用/启用 Windows 7 和 Windows Server 2008 防火墙:
答案2
花了我几个小时,但我找到了一种在 Windows 2008 R2 上执行此操作的方法(有点复杂,但可以自动化):
- 运行 ipconfig /all 并获取您需要的接口 ID,它应该看起来像:
隧道适配器 isatap。{46BE0BE9-4808-4CF4-8C3B-DC543261F096}
- 这是需要更改的注册表项:HKLM\System\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\域名简介\禁用接口
您可以将“DomainProfile”与您想要编辑的配置文件交换。
在值中你应该设置你想要禁用的接口id,用逗号分隔:
{46BE0BE9-4808-4CF4-8C3B-DC543261F096},{91...}