依赖 IPSec IP 过滤有哪些风险?

信息安全 网络 视窗 防火墙 ipsec
2021-08-19 05:55:15

当使用 Windows IPSec 进行 IP 过滤时,无论何时添加过滤器,您都需要有一个“镜像”规则(通过选中“镜像。匹配数据包...”复选框)。

因为 IPSec 过滤不是有状态的,如果您没有启用此选项,那么您将无法进行双向通信。这篇文章中,我引用:

如果你不反映你的规则,那么你就不能双向交流。IPsec 不像防火墙那样“有状态” - 如果您有一个从 A 到 B 的规则而没有 B 到 A 组件,那么 A 上的 IPsec 将丢弃来自 B 的所有流量,即使它是对由发送的请求的响应答:这是使 IPsec 难以有效用作防火墙的部分原因。

如果我有一条规则说:

允许从远程主机 172.16.3.200 上的任何端口到我的 IP 地址到端口 5666 的入站连接

这将被实施为:

netsh ipsec 静态添加过滤器 filterlist="NAGIOS NSClient"
      srcaddr=172.16.3.200 srcport=0
      dstaddr=ME dstport=5666
      镜像=是
      描述="入站"
      协议=TCP

“镜像”规则会是:

允许从我的 IP 地址从端口 5666 到远程主机 172.16.3.200 上的任何端口的出站连接

对于不需要的流量,这种配置有哪些安全风险?

2个回答

根据服务的不同,传出端口通常与传入端口不同,并且通常是随机分配的。因此,镜像将从本地主机上的任何端口到远程主机上的 5666。风险取决于 IPSec 模式:传输或隧道。我想说最可能的威胁是可用性。在传输中,目标 IP 和端口是明确的,因此攻击者可能会尝试淹没目标端口。

我不熟悉 Windows,但通常这些 IPsec SA 规则与您的防火墙完全分开。它们旨在将一些特定于 IPsec 的信息(如会话密钥)与(无状态)数据包流相关联,以便网关知道它应该解密特定的 ESP 数据包以及如何解密。如果您想阻止“不需要的”流量,请在此基础上使用防火墙。

主要的“风险”与使用更高层的协议信息有关,例如 TCP 端口。数据包可能会被分段,因此 IPsec 无法识别数据包属于哪个 SA。这在 RFC4301 中进行了讨论。由于通常不鼓励并从 IPv6 中删除途中分段,因此我认为最好的解决方案是简单地删除所有分段,或者不使用 TCP/UDP 端口信息。