LINUX.ORG.RU

iptables -m limit для одного IP


0

0

Есть tcp сервер, необходимо ограничить количество запросов для каждого клиента.

Попытался использовать iptables -m limit и фильтровать syn пакеты, но эти правила действуют для сервера в целом.

Возможно ли составить правила так, что если один клиент исчерпал свои 5 запросов в секунду, другие клиенты могли присылать запросы на протяжении этой секунды?


Ответ на: комментарий от zenter

Спасибо, это то что нужно. Только мне на VPS, похоже, нельзя загружать дополнительные модули ядра.

А можно ли подобное сделать, если /proc/net/ip_tables_matches содержит только:

length
ttl
tcpmss
tos
multiport
multiport
udp
tcp
owner
limit
icmp

rmap
() автор топика
Ответ на: комментарий от rmap

А в чем проблема? Создаете отдельную цепочку с нужнным ограничением, а туда пробрасываете из основной цепочки INPUT только нужный ip.

Valmont ★★★
()
Ответ на: комментарий от Valmont

Я думал об этом, только не знаю iptables достаточно хорошо, чтоб динамически добавлять в цепочку каждый подключившийся IP.

Нашел еще hashlimit, он вроде в стандартный дистрибутив включен, так что провайдеру должно быть достаточно просто добавить его в VPS ...

В любом случае был бы благодарен за пример динамического добавления IP адресов в iptables :)

rmap
() автор топика
Ответ на: комментарий от rmap

Я неправильно понял вас, мой вариант отпадает.

Valmont ★★★
()
Ответ на: комментарий от LifeWins

iptables -A FORWARD -p tcp --syn --dport 55555 -m connlimit ! --connlimit-above 5 -j ACCEPT
Но это вообще каждому не более 5 коннектов

Jaizer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.