2012-09-06 188 views
2

我有一個perl腳本,生成一個shell腳本,稍後將在遠程計算機上加載iptables。 perl腳本的數據輸入來自配置文件,我可以爲每個規則指定所有類型的參數。iptables規則驗證

問題是有關驗證,如何驗證整套規則而無法執行它?

我已經在CPAN上搜索,最接近的解決方案是IPTables::Rule,但它僅在生成規則時驗證一些限制。我不能使用IPTables :: IPv4,因爲它直接與主機iptables交互。

回答

1

這不是直接可實現的。 iptables規則字符串語法部分由iptables(8)解析,部分由加載的單個匹配或操作模塊解析。沒有標準的方法來解析輸入,而不直接調用底層的C模塊。

+0

使用三元邏輯(true,false,unknown)和對未知數的抽象可能仍然會爲您提供有關您的規則集的某些保證。參考文獻:[學術論文 - 語義 - 保護真實防火牆規則集的簡化,Diekmann et al。 Formal Methods 2015](http://www.net.in.tum.de/fileadmin/bibtex/publications/papers/fm15_Semantics-Preserving_Simplification_of_Real-World_Firewall_Rule_Sets.pdf)。 – corny

0

檢查以下項目sf.net http://sourceforge.net/projects/itval/

+2

請注意,[只提供鏈接的答案](http://meta.stackoverflow.com/tags/link-only-answers/info),所以答案應該是搜索解決方案的終點(vs.而另一個引用的中途停留時間往往會隨着時間推移而過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – kleopatra

1

退房fffuu,花式正式防火牆普遍理解者。它是iptables防火牆規則集的靜態分析器。該工具仍在積極開發中(截至2017年2月),尚未完全完成。但是,核心是完全正式驗證的,因此,您可以信任它。

作爲輸入,它只需要輸出iptables-save。對於您的場景,您可以在虛擬機上生成此輸出。

你想驗證什麼?

fffuu可以:

  • 檢查欺騙保護
  • 翻譯你的防火牆的簡化版本,您可以再檢查手動
  • 可視化你的防火牆在完整的IPv4暗示的訪問控制關係, IPv6地址空間。默認情況下,它檢查目標端口22和80.

請注意,ITval有bug,報告在Verified iptables Firewall Analysis by Cornelius Diekmann, Julius Michaelis, Maximilian Haslbeck, and Georg Carle. In IFIP Networking 2016, Vienna, Austria, May 2016 (Section 2, paragraph 2)

免責聲明:我的fffuu作者,我的看法可能會有所偏差和fffuu是不完美的(還)。但是,嘿,它是自由和自由的,我希望它有幫助。隨意重複使用任何代碼:-)

+0

我不禁用朗讀的方式讀取名字:作爲「fu-fu-fu」;-) – jpaugh