確保 iptables 正在運行

確保 iptables 正在運行

是否有一個工具可以透過一組重要的核心規則來監控 iptables(或 shorewall 或類似)是否啟動並運作?我需要一些東西來提醒我,如果防火牆完全關閉,或者如果多個規則之一不再處於活動狀態,無論出於何種原因。

我不想透過連接到連接埠或(更糟的是)檢查其他人是否正在連接來嘗試防火牆的功能。

伺服器:debian wheezy,標準安裝。假設我想檢查連接埠 80 規則是否對全世界開放,而連接埠 8080 僅對某個 ip abcd 開放

一種方法是將工作規則儲存為文字文件,然後進行每日 cron 作業,將當前規則與原始規則進行比較,但我希望還有其他我可以使用的東西。在 munin 或 nagios 中可以實現這一點嗎?

答案1

您可以使用地圖基本或hping3對防火牆規則進行更進階的安全審核。針對防火牆遠端運行的 nmap 指令可以測試防火牆的規則集:

nmap -p 0-65535 -Pn FIREWALL_HOST

或者,您可以使用 iptables 目標擴充功能實現一種審核LOG,以記錄與先前規則不符的所有內容:

# firewal rulesets
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 1.2.3.5 -j ACCEPT
....
....
....
# this rule will log everything suspicious not matched before
iptables -A INPUT -j LOG 
iptables -A INPUT -j DROP

最後,您比較規則集轉儲的想法也不錯。您可以使用diff它,然後檢查命令的返回碼:

iptables -L -n > RULESET_FILE


if ! diff RULESETS_FILE <(iptables -L -n) > RULESETS_CHANGES; then
   echo "Rulesets changed"
fi

答案2

嘗試比較

iptabes-save 

和啟動設定(/etc/sysconfig/iptables 等)。如果一切正常 - 這應該是相同的。

相關內容