編輯 iptables 設定檔與透過 iptables 指令新增規則有何優缺點

編輯 iptables 設定檔與透過 iptables 指令新增規則有何優缺點

我正在使用 CentOS 上的一個產品,偶爾需要自動在 iptables 設定中新增和刪除規則。例如,在更新期間,我們希望明確拒絕入站服務流量,直到更新完成。目前,更新程式碼中使用的方法是使用sed其他文字處理公用程式註解掉設定檔中的相關行,iptables使用新設定檔重新啟動服務,然後在更新結束時反轉該過程,然後再次重新啟動服務。

在我看來,更好的方法是iptables -D table rule-specification在進程開始時使用該命令,然後iptables -A table rule-specification在更新結束時使用該命令。

我看到自動操作配置文件的最大問題是脆弱性:有一些系統工具會重寫配置文件,並且可能會重新排序參數等,可能會破壞文字解析(service iptables save是一個例子)。

從程式碼中進行此類系統配置更改的建議方法是什麼?

答案1

大多數遇到這種情況的人都會用一些抽象的方法來處理它。

例如。與其使用包含規則集的單一文件,為什麼不建立包含規則的一組文件並將它們連接在一起。

例如,您可以將單獨的規則新增至這樣命名的檔案中。

/etc/iptables-rules/00_flush_drop
/etc/iptables-rules/20_permitotherstuff
/etc/iptables-rules/10_permitssh
/etc/iptables-rules/99_drop

然後只需運行規則集即可run-parts /etc/iptables-rules。如果需要新增另一組規則,只需暫時插入新增一個檔案即可。然後根據需要刪除。

您還應該強烈注意在配置中設定和使用 CHAINS。鍊有點像子程式。例如,您可以在防火牆的最頂部新增一條規則以跳入一條鏈。鏈有一個預設的 RETURN 策略。因此,當您需要新增臨時規則時,只需將其插入該鏈中即可。當您不再需要它時,只需沖洗該特定鏈條即可。

相關內容