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

ограничение количества глобальных подключений в секунду

Я хочу ограничить количество ВСЕХ входящих НОВЫХ подключений на порт, а не только с одного IP-адреса, например:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/s -j DROP

Но я не понимаю, что случилось. Он работал один / два раза, пробовал разные лимиты и после этого теперь отключает все новые соединения. (да, я очищал iptables каждый раз перед добавлением правила в его различных формах).

EDIT1: я пробовал

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 5 --hitcount 5 --name SSH -j DROP

и это кажется работать. Повлияет ли это на все подключения или только с одного IP?

Если вы хотите ограничить количество новых подключений до 3/s, вы должны изменить цель правила, чтобы ACCEPT вместо того DROP:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/s -j ACCEPT

Вы можете читать из man iptables:

limit
   This module matches at a limited rate using a token bucket filter.
   A rule using this extension will match until this limit is reached

Итак, ваше правило будет отбрасывать все новые подключения, пока не будет достигнут лимит !!!