Я знаю, как использовать опцию limit conntrack для защиты от DoS. Однако я хочу добавить защиту, чтобы ограничить не более 50 соединений для каждого порта. Как я могу это сделать?
По сути, я хочу убедиться, что каждый порт может иметь не более 50 подключений, а не глобальное применение 50 соединений (во что я верю №2?)
Сделал бы я что-нибудь вроде:
iptables -A INPUT --dport 1:65535 -m limit --limit 50/minute --limit-burst 50 -j ACCEPT
или
iptables -A INPUT -m limit --limit 50/minute --limit-burst 50 -j ACCEPT
Вы будете смотреть на --hitcount
переключатель.
--hitcount [хиты]
совпадение, требующее определенного количества совпадений в течение определенного периода времени. Максимальное значение параметра hitcount задается параметром ip_pkt_list_tot.
Вас также заинтересует --seconds
переключатель.
Я считаю, что пример правила, использующего порт 80 и ограничивающего количество подключений до 50 в час, будет примерно таким:
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 3600 --hitcount 50 -j DROP