Ограничить количество соединений на определенный порт через iptables

  • 30.01.2017
  • 6 774
  • 0
  • 18.03.2019
  • 3
  • 3
  • 0
Ограничить количество соединений на определенный порт через iptables

Недавно, для целей тестирования возникла необходимость ограничить количество одновременных соединений (со всех ip адресов) на 80 порт.

В моем случае дефолтная политика для iptables - DROP.
Т.е. все сетевые пакеты, для которых не найдены правила, сервером отбрасываются.

Описание

Для того, чтобы этого сделать, можно воспользоваться следующей командой:

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m connlimit --connlimit-mask 0 --connlimit-upto 1000 -j ACCEPT

-p tcp - используемый протокол.
--dport 80 - порт на сервере, для которого мы ограничиваем количество соединений.
--connlimit-mask 0 - маска сети. Т.к. 0 - то это правило действует на все ip адреса (0.0.0.0). Если задать маску, например, 32 - то это ограничение будет действовать для каждого конкретного ip адреса. Т.е. с любого IP адреса можно будет установить до 1000 одновременных соединений на 80 порт, но не более.
--connlimit-upto 1000 - максимальное количество соединений, для которых действует это правило. Т.е. если количество соединений превысит заданное значение 1000 - пакеты будут отбрасываться, т.к. дефолтная политика сервера - DROP.

Была ли эта статья Вам полезна?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.