Я хочу ограничить количество ВСЕХ входящих НОВЫХ подключений на порт, а не только с одного 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
Итак, ваше правило будет отбрасывать все новые подключения, пока не будет достигнут лимит !!!