linux管理外部工具,linux – 除了iptables之外的数据包管理工具?
我正在尋找可以根據一組規則改變網絡數據包的有效內容的
linux實用程序.理想情況下,我會使用iptables和netfilter內核模塊,但它們不支持通用的有效負載調整:iptables會改變各種頭域(地址,端口,TOS等),并且可以匹配數據包中的任意字節,但是它顯然無法改變數據包內的任意數據.
內核模塊將是一個很大的優勢,因為效率是一個問題,但我很樂意探索任何其他可以完成工作的選項.
謝謝你的想法!
逾期更新:
我們選擇使用NFQUEUE模塊,這是Robert Gamble建議的QUEUE模塊的最新實現.這似乎是相當簡單的,有一個安全的獎金,允許我們的代碼運行在用戶,而不是內核,空間.
如果我們只想改變有效載荷而不改變它的大小,這個實現將是微不足道的.在這種情況下,我們定義一個iptables規則來為我們選擇“有趣的”數據包,并向他們發送一個NFQUEUE目標.我們將編寫一個回調函數,它將檢查來自NFQUEUE的數據包,根據需要修改數據,并重新計算其TCP和IP頭中的校驗和.
但是,我們的用例涉及將額外的字符注入到數據流中.這具有增加TCP流中對應的SEQ / ACK號碼的一些明顯的副作用,并且將conntrack模塊混淆的不太明顯的副作用足以完全破壞NAT.經過大量研究,頭痛和實驗后,最方便的解決方案是禁用這些特定數據包(原始表中的NOTRACK目標)的連接跟蹤,并在我們的回調中處理它.保存你的西紅柿和仇恨郵件;我不敢為你提供讓人感到自豪的地方,但這是在下一個冰河時代之前為客戶提供可靠產品的唯一途徑.這是一個很好的故事.但我真的很感激,分享你的衷心情緒.
版本2將通過使用自定義NAT和/或conntrack helper替換我們的回調和幾個iptables規則來利用我們的新發現啟發.我們相信,目前的練習給了我們足夠的經驗來創建一個可以有機地適應netfilter架構的內核模塊解決我們遇到的問題.
再次感謝您的興趣和建議!
總結
以上是生活随笔為你收集整理的linux管理外部工具,linux – 除了iptables之外的数据包管理工具?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python opencv轮廓检测_Op
- 下一篇: php获取变量数据类型,php如何确定变