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

  • Автор:
  • Опубликовано:
  • Изменено:
  • Просмотры: 699
  • Комментарии: 0
  • Рейтинг: 100,00%
  • Голосов: 1

Недавно, для целей тестирования возникла необходимость ограничить количество одновременных соединений (со всех 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.

Оценить статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)

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

Ваш e-mail не будет опубликован.