Ubuntu

限制 INPUT UDP 埠每秒傳入數據包的數量每次我__磷只有___,不___loblly_p和r一世磷這nl是,n這噸Gl這b一種ll是per IP only, not globally在我不知道___磷噸一個bls_在b在n噸在一世磷…

  • March 3, 2016

我進行了搜尋,但找不到限制 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).

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