如何刪除與其他已刪除連線相關的連線?

如何刪除與其他已刪除連線相關的連線?

設想:iptables為 DPI 引擎監視 Netfilter 佇列的主機編寫了規則:防火牆規則根據流量是否來自ipset我的某個主機,將傳入該主機的流量排入不同的 Netfilter 佇列。

FORWARD鏈中,所有連接都以不同的方式排隊NFQUEUES:DPI 引擎在用戶空間佇列中監視 iptables 發送的資料包,如果觀察到禁止的連接,則會用特殊值標記該資料包; DPI 引擎將禁止的資料包重新插入堆疊中;在POSTROUTING鏈中,我檢查連接是否標記有該特殊值,如果是,請檢查DROP它們。

一切都工作正常,但是......

問題:DPI 引擎很好,但並不完美:有時,

  1. 應被識別為禁止的流量並未被識別為禁止,因此未被阻止;
  2. 禁止的流量被阻止,但不會立即被阻止,同時禁止的連接可能會打開另一個RELATED未標記為禁止的連接( ,根據 conntrack 機器),但我也想阻止相關的連接。

第二種情況是我想要採取行動的情況:作為情況 2 的範例,假設 DPI 引擎想要阻止 YouTube,但他無法快速做到這一點;它允許 YouTube 連線打開另一個從 DPI 引擎標記為 SSL 的連線; DPI 引擎最終封鎖了 YouTube,但 SSL 連線卻很狂野,可以隨意使用;我無法告訴 DPI 引擎阻止 SSL 連接,無論哪些連接打開了它們。

注意事項: 如中所解釋的設想,鏈中傳入的資料包POSTROUTING可能會標記為 0(這是預設值,因此 DPI 引擎不採取任何操作)或該特殊值(DPI 引擎看到禁止的連接並對其進行標記):一個簡單的

iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP

幾乎總是足夠的,但是在問題我在部分中寫道,連接與禁止的連接相關,但 DPI 引擎並未將其視為連接,因為即使它們是由禁止的連接創建的,其協議也不會被列入黑名單,因此它們不會被視為禁止的。這是正確的,因為我無法將其列入SSL黑名單HTTPS

我需要阻止RELATED與禁止連接的連接:RELATED並且ESTABLISHED(如果我理解得很好)不引用特定連接,但我需要引用禁止連接。

問題:是否可以刪除RELATED要刪除(或已刪除)的連接的連接iptables?或是conntrack需要一些技巧嗎?

預先感謝您的任何建議。

答案1

你誤會了RELATED。這並不用於單一位址可能建立的每個連接。它僅用於實際相關的數據,例如與 FTP 控制連接關聯的 FTP 資料流,或與開啟的連接關聯的 ICMP 錯誤訊息。真正匹配的此類連接很少RELATED

相關內容