У нас есть сервер websocket, который принимает соединения. К сожалению, по причине, которую нам еще предстоит определить, некоторые клиенты становятся мошенниками и подключаются / отключаются / подключаются ... в цикле с очень высокой частотой. Это беспорядок, с которым нужно иметь дело, и это наказывает других законных клиентов.
Я добавил записи IPTABLE, чтобы пропустить их трафик, но довольно скоро другой клиент начинает портить. В то же время клиент, который раньше вел себя плохо, может снова начать вести себя нормально. Редактировать IPTABLE вручную в течение всего дня не очень хорошо.
Есть ли способ динамически блокировать трафик от этих клиентов, которые пытаются подключиться слишком часто? Я бы предпочел избегать делать это на сервере websocket, потому что при этом, конечно, это забирает ресурсы у других законных клиентов.
Да, вы можете настроить iptables, чтобы блокировать определенную частоту запросов на подключение от клиента:
http://www.debian-administration.org/articles/187
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m latest --update --seconds 60 --hitcount 10 -j DROP
В основном ограничивает пользователей подключением только 10 раз в минуту.