LinuxForum.Fans
Тема

Ограничение количество сессий для 1 IP

Автор: uaradio 50 сообщений 16283 просмотров
#89784

Всем добрый вечер!

Столкнулся с торентами... Необходимо ограничить количество сессий для одного ай пи адреса.

Система Дебиан, версия ядра 2.6.18.

Подскажите как в Iptables обрезать сессии... для конкретного айпи. а для остальных ничего не блокировать. Компьютеры работают в сети через НАТ.

#90039

TCP сессия открывается SYN пакетом, вот их и надо поставить на подсчет с этого или на этот IP, а потом блокировать их при привышении.
Это делается через примерно такую конструкцию -m recent --rcheck --seconds 60 --hitcount 2 -j DROP, здесь допускается не более одного в течении минуты.

#91301

iptables -t nat -I POSTROUTING -s %ip lan pc% -p tcp -m iplimit --iplimit-above 3 -j REJECT
наверное как то так, тут ограничение на 3 соединения

#124021

А можно подробнее
А что значит %ip и pc% ? Так в точности и нужно использовать или вместо них нужно что то вписывать?

#124032

Например
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -p tcp -m iplimit --iplimit-above 3 -j REJECT
Но я бы попробывал бы так
iptables -t nat -I PREROUTING -s 192.168.0.0/24 -p tcp -m iplimit --iplimit-above 3 -j REJECT
Но это не есть хорошо
Лучше для отдельного ип просто закрыть все порты и открыть токо нужные

#124041

Так получается что если я хочу для отдельного ип ограничить количество tcp сессий до 10, то мне нужно сделать примерно так
iptables -t nat -I PREROUTING -s 192.168.0.1 -p tcp -m iplimit --iplimit-above 10 -j REJECT

???

я так понял что правило Ваше ограничивает на подсеть 3 соединения...?

#124044

типо того надо ток проверить но ещё раз говорю это не есть хорошо

#124052

... а как будет хорошо?
чтобы просто для одного ип ограничивать количество сессий....

#124056

Смотря на что и для чего.

#124058

Есть ип которые количесвом tcp соединений забивают канал и инета нет из-за них...

#124060
astalavista написал:
Есть ип которые количесвом tcp соединений забивают канал и инета нет из-за них...

Забивают обычно тореннты и p2p сети.
Просто для начала надо закрыть все лишние порты и оставить ток необходимые.
Если дальше будут забивать надо смотреть чем забивают, тут лучше логирование.
Тут нескоко выходов или порты блокировать или по сайтам а насчёт ограниченний ссесий надо делать по портам (я так думаю не уверен что возможно ибо не было необходимости).

#124064

А поидее вот так tcp до 15 сессий (не проверял).

iptables -A FORWARD -s 172.16.0.0/12 -p tcp --syn connlimit --connlimit-above 15 -j REJECT

#124236

не ограничивает. У меня клиент по nat ходит. Может это имеет значение...

#124334

ИМХО проще сделать политику для всех цепочек DROP, а потом в FORWARD открывать только тем IP которым можно наружу, и только те порты, которые им нужны, например 80, и только по тем протоколам которые используются TCP или/и UDP и всё.
У меня так и никаких проблем с торентами нет.
[console]
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -p tcp -s 192.169.0.22 -d 188.120.241.125 -m multiport --dport 80,443 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s 192.169.0.22 -d 188.120.241.125 -m multiport --dport 80,443 -j ACCEPT
[/console]
IP -тут только для примера, подставьте свои.

#124490
Vadimsky написал:
ИМХО проще сделать политику для всех цепочек DROP, а потом в FORWARD открывать только тем IP которым можно наружу, и только те порты, которые им нужны, например 80, и только по тем протоколам которые используются TCP или/и UDP и всё.
У меня так и никаких проблем с торентами нет.
[console]
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A FORWARD -p tcp -s 192.169.0.22 -d 188.120.241.125 -m multiport --dport 80,443 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s 192.169.0.22 -d 188.120.241.125 -m multiport --dport 80,443 -j ACCEPT
[/console]
IP -тут только для примера, подставьте свои.

53 порт забыл)

#124971

Так не получается. торенты выдь разные порты используют, и если их разрешить то на количество соединений это никак не отобраиться. Получается что нет никакого решения для этого вопроса? Что бы определенному ip адресу клиента ограничить количество соединений ?

#125036

Чего-то не туда ушли. Закрытие портов к ограничению торрентов по нагрузке в сети никак проблему не решает, разве что радикально, т.е. отсутствию торрента.
Ограничить количество соединений можно средствами iptables, как уже было сказано. Но это окончательно не решит проблему нагрузки на канал, т.к. его можно нагрузить и одним соединением, тогда в помощь tc, т.е. шейпер.

#125154

Шейпер стоит! Но шейпер ограничивает скорость! Я понимаю что средствами iptables возможно это как то решить. Но как? Так как торент могут ставить на скачку по 20 штук сразу и это то и забивает канал из-за количества соединений!

#125271
astalavista написал:
Шейпер стоит! Но шейпер ограничивает скорость! Я понимаю что средствами iptables возможно это как то решить. Но как? Так как торент могут ставить на скачку по 20 штук сразу и это то и забивает канал из-за количества соединений!

Сначала найди проблему а потом решай

#125278
a-x написал:
разве что радикально

Конечно радикально.
Отрубил торенты и можно спокойно спать. Пусть дома качают.

Войдите или зарегистрируйтесь, чтобы ответить.