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