Назад | Перейти на главную страницу

Ограничение количества входящих пакетов в секунду для порта INPUT UDP [только для каждого IP-адреса, а не глобально] [Ubuntu IPTables]

Я искал и не могу найти правила, ограничивающего количество входящих пакетов для порта INPUT UDP в секунду и для каждого IP-адреса.

я нуждаюсь в этом на все IP-адреса, которые подключаются к моему сокету, а не для конкретный один.

Я использую iptables на Ubuntu 14.0.4 LTS amd64.

Мне знакомо, как работает 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 указывает, что ограничение в минуту будет применено только после того, как общее количество подключений достигнет уровня ограничения-пакета.

Из руководства:

-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).