Security

確保 iptables 正在執行

  • September 6, 2013

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

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

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

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

您可以使用nmap工具進行基本或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

引用自:https://serverfault.com/questions/536903