LINUX.ORG.RU
ФорумAdmin

Ограничение пакетов


0

1

С помощью гугла и бубна сделал скрипт для ограничения пакетов:

iptables -A FORWARD -s 1.1.1.30 -m conntrack --ctstate NEW -m limit --limit 500/minute --limit-burst 1 -j ACCEPT

iptables -A FORWARD -s 1.1.1.30 -m conntrack --ctstate NEW -j LOG

iptables -A FORWARD -s 1.1.1.30 -m conntrack --ctstate NEW -j DROP

Но, когда кто-то превышает лимит разрывает всех пользователей. Как сделать так, что бы разрывало только того кто превысил лимит? Буду очень благодарен, заранее спасибо.


sysctl net.netfilter.nf_conntrack_tcp_loose=1
?

И очередь советую побольше поставить, хотя бы сравнимую по величине со значением лимита.

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

«И очередь советую побольше поставить, хотя бы сравнимую по величине со значением лимита. »

--limit-burst 1 -j ACCEPT очередь это где единица? Мне просто надо не больше 500 в минуту, это ничего не изменит?

sysctl net.netfilter.nf_conntrack_tcp_loose=1 в sysclt.conf не нашел этого параметра, как посмотреть дефолтное? Или надо ставить 1?

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

>--limit-burst 1 -j ACCEPT очередь это где единица? Мне просто надо не больше 500 в минуту, это ничего не изменит?

Да. Когда длина очереди больше или равна числу в лимите, она работает более плавно.

sysctl net.netfilter.nf_conntrack_tcp_loose=1 в sysclt.conf не нашел этого параметра


Ты думал, там все параметры обязательно указаны? Их до синей задницы, скажу тебе по секрету. В sysctl.conf обычно приводятся только примеры.

как посмотреть дефолтное?


Внезапно, «sysctl net.netfilter.nf_conntrack_tcp_loose».

Или надо ставить 1?


Надо.

nnz ★★★★
()

Как сделать так, что бы разрывало только того кто превысил лимит?

Если вам надо ограничить max кол-во соединений по IP, используйте «iptables -m connlimit» с маской /32.

разрывает всех пользователей

Это невозможно, т.к. правила касаются только новых пакетов, установленные соединения будут жить.

spirit ★★★★★
()

spirit, на линуксе стоит сервер онлайн игры и каждый пользователь постоянно получает и отдает пакеты. Мне надо что бы он не смог отдать в течении минуты не больше 500 пакетов.

nnz, параметр sysctl net.netfilter.nf_conntrack_tcp_loose и так стоит 1.

Все еще не решил проблему...

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