菲娜是一個簡單的,功能強大的shell腳本加載iptables規則從規則目錄。因此,它並不關心你創建規則,它只是幫助你在一個健壯的方式加載它們。
如果事情失敗,國際泳聯將加載舊的規則集。國際泳聯項目還允許更豐富的評論比iptables的規則文件。儘管如此,它可以處理任何的iptables-恢復即可。
菲納是與各種嘗試包裹iptables的工作的結果
(寧:Netfilter的)與腳本和其他基礎設施,以
使規則更簡單日常管理。
由於我的工作,我總是需要的,可以很容易實現自動化的腳本
遠程。無論多麼偉大的一個劇本,如果它需要年齡更新
集群十四Web服務器,這是對我沒用。
另一個基本需要這樣一個腳本是,它必須通過安全
默認情況下 - 沒有漸入管理員太多。也就是說,
它僅創建一個管理員明確配置規則。當然,一
明智的一套配置/例子/提供。
第三個硬性要求是腳本應該是能夠做到的事情
一切的Netfilter可以。這意味著,無論多麼複雜的
NAT和預路由魔需求,腳本必須能夠處理
它。這方面的一個副作用是,它必須處理大量過濾器組在
至少一樣容易的Netfilter本身。
第四個要求是有點複雜。有時,這可能是
需要改變在/ proc變量已加載的模塊後,
但規則指的是那些模塊之前加入。此外,有時
這可能是必要的,這樣做的東西後的分組過濾器已經
加載。為此,在/ etc /國際泳聯可能包含兩個腳本調用
“pre-up.sh”和“post-up.sh”。如果這些文件存在,並且是可執行的,
它們在相應的時間被執行。
最後,該腳本應該是輕量級的,因為有少量的外部
盡可能不依賴。此外,腳本本身應該是簡單
和盡可能小。這是因為簡單的東西有更少的方式
他們可能會失敗。
設計
由於上面提到的四個硬盤的要求,該腳本不
其實“知道”所有的東西有關Netfilter的。通過這種方式,它很容易
整合一切可以Netfilter的事情 - 而無需移動
目標規格的堅持。
基本上,菲娜組裝一個iptables-恢復從兼容的規則轉儲
片段配置/編輯由機器的管理員。然後它試圖
加載整個集。如果失敗以任何方式,舊的規則集
恢復。
當然,這意味著菲娜確實沒什麼旁邊為admin
當涉及在機器上/產生/規則。這是一種自覺
決策。一,凡使用/配置數據包過濾器應
意識到他的行為的一切後果。這包括例如
知道為什麼它是壞的丟棄所有ICMP流量。
另一個原因是,提供的例子,甚至配方包
過濾器是什麼/文檔/應該做的。這不是一個好主意
有一個黑盒子做“只是正確的事”。一般,有一個
用戶不平凡的數額,正確的事情不能輕易
猜到了。
它是如何工作
如果國際泳聯通過在init腳本啟動,一個關鍵的額外的步驟是
採取:腳本嘗試加載/etc/fina/minimal.rules與
由iptables-restore。這個就派上用場了,如果你已經更新了內核和
iptables的模塊被遺忘的部分 - 你的漂亮的大配置文件
可能不會加載和你的機器要么是弱勢或
無法訪問你。通常情況下,你會希望有一個非常簡單的規則集
在這裡(不conntracking),允許從你的管理訪問
IP地址。您可以使用命令行-m開關加載此規則集。這可
是方便在緊急情況下(認為它是恐慌按鈕)。
國際泳聯希望有一個配置文件,/etc/fina/fina.cfg。這是
實際上僅僅是從主源菲娜一個shell腳本
腳本。它包含(默認),該指定一個一個可變
額外的位置,該規則目錄。首先,國際泳聯檢查是否
/etc/fina/pre-up.sh存在且可執行,如果是運行它。這是
地方加載模塊或更改東西在進程內,如有需要。
第二位置是更重要的。它指定的目錄哪些
包含規則片段,菲娜應該組裝。通常,這是
位於/etc/fina/rules.d/。菲娜然後繼續從加載的所有文件
上述目錄(及其子目錄)在.rules這一目標。為了
裝配時有可靠的訂單,該文件通常前綴
兩個或三個數字。
該文件要求的格式是不關心國際泳聯的。菲娜本身
只會組裝他們為了到一個文件中。在此之後,它將使
目前的規則集(使用iptables-保存),並把它放在一個備份
位置指定/etc/fina/fina.cfg。然後,將菲娜嘗試加載
使用生成的文件的iptables-恢復。如果失敗了什麼
因此,它會嘗試加載舊的規則集,並表現出適當的
加上無論它的消息從失敗得到錯誤信息
由iptables-restore命令。
最後,國際泳聯將執行/etc/fina/post-up.sh如果它存在,是
可執行文件。
其他功能
除了產生,然後直接裝入一個規則集,菲納可以
也只是轉儲它會加載到標準輸出文件(“假裝模式”,這
是默認的)。如果你懷疑一個錯誤在你的Netfilter這是很有用
片段,並想嘗試加載它之前看一看設定。
國際泳聯增加了過多的評論生成的文件,使調試
更輕鬆。使用國際泳聯假裝模式,還可以確保菲娜可以閱讀
所有文件應該。
此外,這種方式,您可以創建你當前正在運行的規則之間的diff
和國際泳聯的規則會產生。通過這種方式,你可以很容易,如果現貨
變化的規則片段具有預期的結果。
記住,雖然,在這種模式下,菲納沒有辦法知道如果
它所產生實際上可以裝載用iptables-restore。
不幸的是,內核接口沒有提供一種手段,如果看一個
規則集可以沒有實際激活它加載(如果我錯了
在這裡,我會很高興聽到這樣的功能)。
為了來幫助調試,國際泳聯本身產生的所有線條
前綴“#菲娜#”,這樣你就可以知道哪些線是從菲娜和
哪些來自您的文件
什麼在此版本中是新的:
- 在錯誤處理顯示停止錯誤通用的初始化腳本是固定的。
什麼是0.2.2版本,新的:
- 在對前/後一個細微的邏輯修復劇本寫了。
- 文檔略有增強。
什麼是0.2.0版本,新的:
- 在國際泳聯現在能夠同時處理IPv4和IPv6規則集。
要求:
- 在GNU的bash(> = V2)
- 在GNU發現(什麼最新的)
- 在GNU的grep(同上)
- 在GNU的sed(同上)
- 在iptables的(不管你內核的工作)
評論沒有發現