WinDDK基於規則的防火牆設計續

2021-06-07 06:02:17 字數 655 閱讀 3205

經過兩天的摸索和嘗試,實現了簡單的過濾規則設定,但是還不夠完備。先簡單總結一下。

關於基於規則的防火牆設計中的資料流動上次已經說明過了,但是有些問題。首先,規則設定客戶端、驅動層和中間層是3個平行的層次,如果不是資料交換,三層其實是沒有必然關聯的。我在中間層加入了規則佇列,初始化的問題一直沒搞明白,所以最初的想法是啟動使用者介面後和驅動層互動時,然後進行中間層規則佇列的初始化。但是,事實證明這是不對的……服務載入後,服務會實時執行,此時沒有執行客戶端也就是不可能進行規則佇列初始化……結果就藍屏了若干次……

經過仔細閱讀passthru.c的原始碼後,經同學指點,終於找到了合適的初始化點。我開始一直想找到進入驅動的函式入口,苦於沒有驅動開發經驗,居然直接忽視了driverentry這個函式……找到了合適的入口,初始化也就迎刃而解了。

但是苦逼的經歷還沒有過去。

當客戶端和中間層的相關設計完成後,進入analysispacket.c設計後,問題就出來了。這個檔案中主要是實現對具體協議的規則過濾。可是我在編碼時忽略了乙個關鍵變數的初始化,導致第一次進入後變數值未定,進而引發指標越界,藍屏又一次發生。結果排查了一上午,snapshot搞了十幾個才想明白……真是大問題沒有,小問題不斷。

好在現在問題都一一解決了。下面要做的就是完善規則的定義,如何基於規則進行過濾。如果有時間還可以考慮規則佇列的維護,比如說規則判衝突等等。

外圍防火牆規則 內部防火牆規則

外圍防火牆規則 通常情況下,您的外圍防火牆需要以預設的形式或者通過配置來實現下列規則 拒絕所有通訊,除非顯式允許的通訊。阻止宣告具有內部或者外圍網路源位址的外來資料報。阻止宣告具有外部源 ip 位址的外出資料報 通訊應該只源自堡壘主機 允許從 dns 解析程式到 internet 上的dns 伺服器...

防火牆規則

raw表 主要用來決定是否對資料報進行狀態跟蹤 mangle表 用來修改資料報的tos服務型別 ttl生存週期 為資料報設定mark標記,以實現流量整形 策略路由等高階應用 filter表 用來對資料報進行過濾,根據具體的規則要求決定如何處理乙個資料報 prerouting鏈 prerouting鏈...

LINUX防火牆規則

1 filter 主要跟linux本機有關,是預設的table.input 主要與資料報想要進入linux本機有關 output 主要與linux本機所要送出的資料報有關 forward 與linux本機沒有關係,它可以將資料報 到後端的計算機中,與nat表的相關性很高 檢視防火牆規則 iptabl...