在 windows 中是否有任何可能的方法像 unix 中的 iptables 一样像真正的 IPS(入侵防御系统)一样“丢弃”数据包。
此外,如果我使用的是 matlab,是否有一种方法可以“捕获网络上的数据包”并将它们提供给神经网络?也就是 Windows 上的 Matlab。
我正在努力理解 libpcap 如何“捕获”数据,但您却不能实时“丢弃”数据?
相当烦人的 snort 无法做到这一点,snort 在 windows 上仅充当 IDS,但在 linux 上充当 IDS/IPS,因为它能够为 iptables 设置正确的规则。
最佳答案
对于 Windows 7/Vista,您可以使用 Windows 过滤平台 (WFP) API 来执行简单的数据包过滤,类似于使用 iptables 可以实现的功能。但是,API 有点冗长。
对于更复杂的过滤,例如说有效负载解析/检查的 URL 过滤,您需要 (1) 编写设备驱动程序,例如 WFP 标注驱动程序,或 (2) 使用可以将数据包转移到用户模式应用程序的第三方包。
对于后者,有 WinDivert (GLPv3) 和 WinpkFilter (商业许可证)。这两个包都是 C/C++,因此您需要编写适当的 MatLab 绑定(bind)。 披露:我是 WinDivert 的作者。
警告技术:像 Winpcap 这样的软件包不会,也不能因为它使用的驱动程序类型(准确地说是 NDIS 协议(protocol)驱动程序)而丢弃数据包。协议(protocol)头只能看到数据包的拷贝,无法阻止原始数据包。为此,他们需要将 Winpcap 驱动程序重新实现为 NDIS IM 或 LWF 驱动程序。
关于c# - 捕获数据包然后丢弃数据包 IPS 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371052/