我有一台带有两个适配器的服务器(WS2016),每个适配器上分配了不同的 IP,但具有相同的网关。
我想要实现的是,所有到其中一个 IP 的传入连接都必须受到 IPsec(传输模式)的保护,而所有传出连接都不应尝试使用 IPSec(除非对方请求)。
我使用“netsh advfirewall consec add rule”和“action=requireinrequestout”在其中一个适配器上设置了 IPSec。
它可以起作用,因为我只能使用 IPSec 连接到 IPSec IP,而不会阻止任何传出连接。
但是我的 Windows 事件日志中充满了事件代码 4653(“IPsec 主模式协商失败”),这些事件似乎主要是用于传出连接(实际上主要是 DNS 查找)。实际上,Windows 随机使用任一适配器进行传出连接,但当它通过 IPSec 适配器时,它会尝试与对方建立 IPSec 连接,但该连接不起作用,然后切换到常规连接。这不是一个大问题,但首先它肯定会减慢连接速度,我宁愿做正确的事情,即让所有传出连接不尝试使用 IPSec。
netsh advfirewall consec 确实有一个操作“requireinclearout”,但它仅适用于隧道模式。
我尝试将 IPSec IP 的度量增加到 1000,并将相关网关度量也增加到 1000。路由打印确实显示了 IPSec 路由的更高度量,但是 Windows 似乎忽略了该更高度量,并且仍然通过 IPSec 适配器发送传出数据包。
我尝试专门为 DNS 服务器设置静态路由,但 Windows 似乎忽略这些静态路由并使用 IPSec 适配器。
所以我的问题是:有没有办法实现 IPSec 仅用于服务器上的传入连接,而不用于传出连接?
答案1
通过您的评论澄清我认为这会达到您想要的效果。
我假设 192.168.1.2 是受保护的接口,而 192.168.1.3 是非受保护的接口。
创建专门的连接安全规则集,如下所示。
端点 1 应该仅设置为 192.168.1.2,这应该会阻止在 192.168.1.3 上生成任何事件。
此规则要求入站身份验证和出站请求。
假设你真正想要保护的是 SMB,那么设置协议和端口为 TCP 445规则,再次避免过多噪音。这应该可以阻止 DNS 查找中的任何额外噪音。
在 IPSEC 保护的防火墙规则中,您需要将本地 IP 范围设置为 192.168.1.2,并启用“如果安全则允许”设置,并将本地端口设置为 tcp 445。