2011-09-10 109 views
1

是否有任何可能的方式在Windows中“丢弃”数据包,如真正的IPS(入侵防御系统),类似于iptables在unix中。捕获数据包然后丢弃数据包IPS系统

此外,如果即时通讯使用MATLAB有没有办法“捕获网络上的数据包”,并将它们送入神经网络?在Windows上的Matlab是。

我正在努力理解libpcap如何“捕获”数据,但是却无法实时“丢弃”数据?

相当恼人的snort不能做到这一点,snort只能在Windows上作为IDS使用,但是由于它能够对iptables使用正确的规则,所以在Linux上使用IDS/IPS。

回答

6

对于Windows 7/Vista,您可以使用Windows过滤平台(WFP)API执行简单的数据包过滤,类似于使用iptables可以实现的功能。但是,API有些冗长。

对于更复杂的过滤,例如,说URL过滤负载解析/检测,你需要(1)写一个设备驱动程序,如WFP标注驱动程序,或者(2)使用第三方包,可以将数据包转移到用户模式应用程序。

对于后者,有WinDivert(GLPv3)和WinpkFilter(商业许可证)。这两个软件包都是C/C++,因此您需要编写适当的MatLab绑定。 披露:我是WinDivert的作者。

警告技术:像Winpcap的包不,不能,因为下降的驱动它使用的类型的数据包(NDIS协议驱动程序,要准确)。协议潜水员只看到数据包的副本,无法阻止原始数据包。为此,他们需要重新实施Winpcap驱动程序作为NDIS IM或LWF驱动程序。

+0

我可以在Microsoft Visual Studio 2010上使用它吗?其实我正在创建的是为我的IDS设置函数,这将在dll文件中。那么你能指导我使用Windows的Windivert吗? –

+0

对不起,延迟回复。是的,你可以在VS2010中使用它,但这个讨论最好是脱机。请给我发电子邮件。 – Basil

+0

非常感谢@Basil分享这个!我想在我的解决方案“C#Win7”上使用您的库来进行某种过滤,即**在应用程序运行期间丢弃除特定端口外的传出数据包**,该应用程序将在**管理权限**下运行客户端,客户端应该将其添加到他们的防病毒的例外列表中;问题是**将使用此库仍然工作时,其他防火墙软件启用?**如果用户有语义防火墙运行,库驱动程序将安装和丢弃数据包使用WinDivert可能会起作用? –