Ограничить количество соединений на определенный порт через iptables
- AJIekceu4
- 30.01.2017
- 6 774
- 0
- 18.03.2019
- 3
- 3
- 0
- Содержание статьи
Недавно, для целей тестирования возникла необходимость ограничить количество одновременных соединений (со всех ip адресов) на 80 порт.
Т.е. все сетевые пакеты, для которых не найдены правила, сервером отбрасываются.
Описание
Для того, чтобы этого сделать, можно воспользоваться следующей командой:
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.
Добавить комментарий