Перейти до

Как резать сесии.


Рекомендованные сообщения

Суть такая, как можно ограничить абонента в сесиях. Ну, первая идея - это повесить в скрипте ОнКоннект. Но не знаю, как - ищу совета!!!

Спасибо за внимание.

Ссылка на сообщение
Поделиться на других сайтах

тоже возникла идея, порезать кол-во потоков. с помощью ipfw как это правильно сделать, и что будет, если юзер превысит допустимое кол-во потоков?

Ссылка на сообщение
Поделиться на других сайтах
тоже возникла идея, порезать кол-во потоков. с помощью ipfw как это правильно сделать, и что будет, если юзер превысит допустимое кол-во потоков?

например так:

ipfw add 1000 allow ip from 10.10.0.10 to any limit src-addr 10

когда превышает количество сессий, пакеты дропаются

Ссылка на сообщение
Поделиться на других сайтах
например так:

ipfw add 1000 allow ip from 10.10.0.10 to any limit src-addr 10

когда превышает количество сессий, пакеты дропаются

 

ipfw add 1 pipe 1 all from 10.10.1.1 to any

ipfw add 2 pipe 2 all from any to 10.10.1.1

 

У меня такие правила, ничего лишнего желательно не добавлять.

тестить все это негде, потому и задаю вопрос

ipfw add 1 pipe 1 all from 10.10.1.1 to any limit src-addr 10

ipfw add 2 pipe 2 all from any to 10.10.1.1 limit src-addr 10

так работать будет?

и еще вопрос, сколько желательно сессий на юзера оставлять?

Ссылка на сообщение
Поделиться на других сайтах
У меня такие правила, ничего лишнего желательно не добавлять.

тестить все это негде, потому и задаю вопрос

ipfw add 1 pipe 1 all from 10.10.1.1 to any limit src-addr 10

ipfw add 2 pipe 2 all from any to 10.10.1.1 limit src-addr 10

так работать будет?

и еще вопрос, сколько желательно сессий на юзера оставлять?

во втором случае поменяй src-addr на dst-addr )))

оставь 20-50 сессий ))

Ссылка на сообщение
Поделиться на других сайтах

Недостаток этого метода в том, что правила надо создавать на всех клиентов, т.е. их количество будет пропорционально количеству клиентов.

 

Как вариант, если сеть за nat-ом, можно перед ним ограничить общее кол-во сессий, хотя это будет не совсем корректно, т.к. один хлопчик с вирусом/трояном забъет всё что можно.

 

Ну и как бы всё это не для линукса.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо! А 50 потоков не много ли?

Расчитываю на то, чтобы нормальные юзеры получали нормальный инет,

а те, кто юзали торренты - пусть юзают, но не в 500 же потоков! Я думал около десяти, но этого наверное мало.

Ссылка на сообщение
Поделиться на других сайтах
Эм, я так понял, что все это для Фрюшки, а для Федоры 8, как все это осуществить?

через iptables

с ключами -m iplimit --iplimit-above 50 -j REJECT будет ограничение на 50 сессий.

iptables -A FORWARD -p tcp --syn -j DROP -m iplimit --iplimit-above 50 примерно так.

будет дропать уже на стадии SYN.

интересный ключ --iplimit-mask 24, ограничит на классовую сеть С.

-m limit --limit 20/sec будет дропать если будет превышено 20 пакетов в секунду, очень эффективно для борьбы со спам рассылками.

iptables -F FORWARD --connbytes 1000000 -j REJECT

так будет дропать сессии больше 1 000 000 байт.

 

p.s. возможно потребуется подгрузить модули для iptables

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
во втором случае поменяй src-addr на dst-addr )))

оставь 20-50 сессий ))

чо-то криво как-то оно работает, скорость падает сильно, страницы открываются туго, это при 20 сессиях.

Ссылка на сообщение
Поделиться на других сайтах
А сколько стоит сесий на одного клиента у Укртелекома ? Около 300 ?

ну чо так, тыщ 20 нормально работает. главное шоб мопед небыл роутером.

Ссылка на сообщение
Поделиться на других сайтах

Если хорошенько подумать, то больше всего сессий плодят P2P приложения.

Поэтому рекомендовал бы фильтровать их и резать сессии, все остальное не сможет так положить каналы ИМХО.

Для этого можно использовать связку модулей ipp2p и connlimit.

Когдато пробовал такой вариант

iptables -A FORWARD -s $user_ip -m ipp2p --ipp2p -m connlimit --connlimit-above 5 -j DROP

И все замечательно резало.

Ссылка на сообщение
Поделиться на других сайтах
А в чем проблема мопеда-роутера?

в том, что он не в силе столько держать. Фрибсдишный айпинат не смог держать более 30000 сессий, кстати, никто не знает, как это число увеличить? не пересобирая ядро?

Ну и еще, как нормально рубать с помощью ipfw кол-во сессий?

Ссылка на сообщение
Поделиться на других сайтах
а как порезать на микротике кто-то знает?

таблица filter, смотри вкладки

ответьте на мой вопрос...

ipfw allow ip from $src_ip to $dst_ip limit src-addr N

разрешается прохождение сетевых пакетов от $src_ip к $dst_ip и обратно, при этом $src_ip может поднять не более N сессий к $dst_ip

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

В общем сделал почти так, как писали. Страницы открываются туго, качается медленнее, хз почему.

Вот мой скрипт OnConnect

#!/usr/bin/php

<?php

$fwcmd="/sbin/ipfw "; //Путь к фаерволлу

$login=$argv[1];

$ID=$argv[4];

$id1=($ID*5+10001);

$id2=($ID*5+10002);

$id3=($ID*5+10003);

$id4=($ID*5+10004);

$id5=($ID*5+10005);

mysql_connect('*', '*', '*'); //Настройки БД

mysql_select_db('stargazer');

$q=mysql_query("SELECT `Note`, `IP`, `Tariff` FROM `users` WHERE `login`='$login'");

$arr=mysql_fetch_array($q, MYSQL_ASSOC);

$IP=$arr[iP];

$tariffspeed=explode("-", $arr[Tariff]);

#$tariffspeed[1]=($tariffspeed[1]/4);

$downstream="$tariffspeed[1]Kbit/s";

 

$upstream = ($tariffspeed[1]/8);

$upst=explode(".", $upstream);

$upstream="$upst[0]Kbit/s";

 

if ($arr[Tariff] == "Admin"){

$downstream="$arr[Note]";

$upstream="64Kbit/s";

}

 

 

shell_exec("$fwcmd pipe $id1 config bw $downstream >> /dev/null");

shell_exec("$fwcmd pipe $id2 config bw $upstream >> /dev/null");

 

shell_exec("$fwcmd add $id3 pipe $id2 all from $IP to any limit src-addr 30 >> /dev/null");

shell_exec("$fwcmd add $id4 pipe $id1 all from any to $IP >> /dev/null");

 

?>

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...