2011-09-10 147 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可能會起作用? –