Iptables
如何分隔 iptables 的前綴
我希望我可以在這裡問這個問題,因為我有點混淆我能問什麼和不能問什麼:> 所以我想用 iptables 來分隔 iptables 範例中的前綴:第一次連接到最終 DROP 規則,然後我具有分析它並將其添加到不同前綴和鏈的工具,因此如果它已經被丟棄並添加到鏈中,它將被分開以丟棄日誌。我有這個,但它不起作用,HB_LOG_AND_DROP 永遠不會顯示。一直只顯示最後一個 DROPLOG,為什麼?
$IPTABLES -N HB_LOG_AND_DROP; $IPTABLES -A HB_LOG_AND_DROP -j LOG --log-prefix "IPTABLES-DROPPED: " --log-level 6; $IPTABLES -A HB_LOG_AND_DROP -j HB_LOG_AND_DROP; $IPTABLES -N LOGPSCAN; $IPTABLES -A LOGPSCAN -p tcp --syn -m limit --limit 2000/hour -j RETURN; $IPTABLES -A LOGPSCAN -m limit --limit 200/hour -j LOG --log-prefix "RULE PORT-SCAN [DROP] "; $IPTABLES -A LOGPSCAN -j LOGPSCAN; $IPTABLES -A INPUT -p tcp --syn -j LOGPSCAN; $IPTABLES -N DROPLOG; $IPTABLES -A INPUT -j DROPLOG; $IPTABLES -A DROPLOG -m limit --limit 1/sec -j LOG --log-prefix "[DROP] " --log-level 6; $IPTABLES -A DROPLOG -j DROP
檢查
iptables -nvL
鍊是否在最後一個之上。問題是用於自動禁止和報告的腳本使用 -A 插入規則,當更改為 -I 時,它在最後一次 DROP 之前開始攔截。是的,我已經嘗試了所有可能的組合 40 次。最後一個是這個
$IPTABLES -N HB_LOG_AND_DROP;$IPTABLES -A HB_LOG_AND_DROP -m limit --limit 1/sec -j LOG --log-prefix "IPTABLES-DROPPED: " --log-level 6; $IPTABLES -A HB_LOG_AND_DROP -j DROP; $IPTABLES -N LOGPSCAN;$IPTABLES -A LOGPSCAN -p tcp --syn -m limit --limit 2000/hour -j RETURN; $IPTABLES -A LOGPSCAN -m limit --limit 200/hour -j LOG --log-prefix "PORT-SCAN-DROPPED: " --log-level 6; $IPTABLES -A LOGPSCAN -j DROP;
問題是 HB_LOG_AND_DROP; 當我將其更改為 -I 時,正在使用 -A 從腳本中添加 INPUT,一切正常
以下規則不正確:
$IPTABLES -A HB_LOG_AND_DROP -j HB_LOG_AND_DROP
此命令將規則添加到
HB_LOG_AND_DROP
鏈中以再次跳轉到同一鏈中。它會導致數據包循環。幸運的是,您的規則沒有任何可跳轉的規則
HB_LOG_AND_DROP
,因此您不會看到帶有您的規則集的數據包循環。