Linux

如何使用 iptables 防止特定埠上的 Syn-flood?

  • November 27, 2021

我最近試圖在埠 2421 上的伺服器上防止 Syn-Flood,每秒只允許一個 TCP 連接,並且不應停止現有連接,所以我使用了以下腳本,但似乎沒有做到這一點,我的腳本有問題嗎?

#!/bin/bash
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 2421 --syn -m limit --limit 1/second --limit-burst 3 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED -j ACCEPT

您的程式碼確實有效。問題出在其他地方。

您可以檢查您的規則是否完全符合

iptables -nvL INPUT

也許您不小心使用了 IPv6(如果使用的地址是localhost; 請改用 127.0.0.1)。

或者除了iptables它的繼任者nftables正在使用中。檢查與

nft list ruleset

引用自:https://unix.stackexchange.com/questions/679218