Ubuntu
限制 INPUT UDP 埠每秒傳入數據包的數量每次我__磷只有___,不___loblly_p和r一世磷這nl是,n這噸Gl這b一種ll是per IP only, not globally在我不知道___磷噸一個bls_在b在n噸在一世磷…
我進行了搜尋,但找不到限制 INPUT UDP 埠每秒和每個 IP 的傳入數據包計數的規則。
我需要每個連接到我的套接字的 IP,而不是特定的 IP 。
我在 Ubuntu 14.0.4 LTS amd64 上使用 iptables。
我熟悉 UDP 的工作原理。在我的場景中,有人可以使用不同的埠創建大量的 UDP 套接字。
我只需要來自單個 IP 的一個套接字就可以連接到我的 UDP 埠。
這可能與 iptables 嗎?我知道 Netfilter 和 C++,我可以這樣做嗎?
這是您可以執行的操作:
iptables -A INPUT -p udp -s 111.111.111.111 --dport 123 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
您需要限制iptables 擴展。提供的範例限制每分鐘最多 25 個連接。表示只有在
limit-burst 100
連接總數達到limit-burst級別後才會執行limit/minute。從手冊:
-s, --source address[/mask][,...] Source specification. Address can be either a network name, a hostname, a network IP address (with /mask), or a plain IP address. Hostnames will be resolved once only, before the rule is submitted to the kernel. Please note that specifying any name to be resolved with a remote query such as DNS is a really bad idea. The mask can be either an ipv4 network mask (for iptables) or a plain number, specifying the number of 1's at the left side of the network mask. Thus, an iptables mask of 24 is equivalent to 255.255.255.0. A "!" argument before the address specification inverts the sense of the address. The flag --src is an alias for this option. Multiple addresses can be specified, but this will expand to multiple rules (when adding with -A), or will cause multiple rules to be deleted (with -D).