我们正在使用 openvpn 提供从 XP 恢复工作的访问权限。我们使用 AD 策略来确保 XP 防火墙在域外时启动,在域内时关闭。使用 openvpn,你最终会得到一个新的网络接口,当你离开域并且 vpn 恢复工作时,XP 会“找到域,但我也在非域网络上,所以防火墙启动”。
但是,我发现我们可以使用 netsh 在 openvpn 接口上完全禁用防火墙:
echo firewall set opmode mode = DISABLE interface = "name of openvpn interface" | netsh
这很棒:这意味着当我们的用户在家/酒店时,他们的防火墙已启动 - 但通过 vpn 进行的远程访问是双向的。
然后出现了 Win7(让我们假设 Vista 不存在 - 不太难!)。“域”和“其他”的概念已经一去不复返了,现在是“域”、“家庭/工作”和“公共”——你不能禁用每个接口的防火墙。它比 XP 复杂得多,并且作为旁注,我看到很多家庭用户因此完全禁用 Win7 防火墙 - grrr!
无论如何,我的问题是,我怎样才能复制我们在 XP 下的功能?如何编写 Win7 脚本以完全禁用 openvpn 接口上的防火墙,但在其他接口上正常运行?我追求的最终结果是我们(IS 组、AV 服务器、漏洞扫描仪)可以在他们在酒店/在家/等时远程访问该盒子 - 就像他们在公司 LAN 上一样。我需要一个脚本,因为我对 GUI 的体验意味着我们需要为我们的帮助台人员提供一份 10 页的屏幕快照文档!
您可以在每个 NIC(包括虚拟 NIC)的基础上控制防火墙,并通过配置文件进行不同的设置。
在控制面板的“Windows 防火墙”中,选择树根节点上的属性。在每个配置文件选项卡中,“受保护的网络连接”按钮允许您选择受保护的 NIC。
因此,仅在私有配置文件中禁用 NIC,并验证网络检测是否在 LAN 外部时选择公共。
我知道这是一个老问题,但我会发布这个以供参考。您可以使用 Powershell:
资源
有一个 GUI 选项可以禁用具有高级安全性的特定 NIC 上的防火墙,这里是如何:转到 CP --> 系统和安全 ---> Windows 防火墙 --> 高级设置(左面板) --> 选择Proprieties(Action TAB(right)) --> 点击自定义 --> 然后取消选中要禁用防火墙的接口(NIC),谢谢
正如“理查德”所说,您可以通过 GUI 在 Windows 7 中禁用每个界面的防火墙,它只是相当隐藏。
不幸的是,在 Windows 7 上自动化该设置相当困难。Netsh 不提供对该功能的访问(根据微软的说法),ProGTX 建议的 powershell 命令似乎仅限于 windows 8。我发现在 Windows 7 上实现自动化的唯一方法是使用 COM API http://msdn.microsoft.com/en-us/library/windows/desktop/aa366418%28v=vs.85%29 .aspx