Я хочу ограничить количество подключений по IP для определенного порта UDP. У меня он работает для TCP, но почему-то не работает с UDP. Вот мои правила:
По TCP (рабочий)
iptables -A INPUT -p tcp --syn --dport 7787 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --syn --dport 7788 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset
Для UDP
iptables -A INPUT -p udp --dport 7787 -m connlimit --connlimit-above 3 -j REJECT
iptables -A INPUT -p udp --dport 7788 -m connlimit --connlimit-above 3 -j REJECT
Согласно справочным страницам, это должно работать (по крайней мере, как я это понимаю), но иногда меня все равно затопляет один IP-адрес.
Я думаю, что вы действительно хотели чего-то, основанного на модуле hashlimit.
Ваш вопрос не имеет смысла, поскольку UDP действительно не имеет «соединений». Для каждого IP / порта источника настраивается только одна запись conntrack.
Что ж, это звучит довольно правдоподобно, что ваш клиент, о котором идет речь, использует менее трех соединений NFCT, чтобы завалить вас.