Небесный 26 Опубликовано: 2008-08-26 12:06:26 Share Опубликовано: 2008-08-26 12:06:26 Суть такая, как можно ограничить абонента в сесиях. Ну, первая идея - это повесить в скрипте ОнКоннект. Но не знаю, как - ищу совета!!! Спасибо за внимание. Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-08-26 12:29:53 Share Опубліковано: 2008-08-26 12:29:53 тоже возникла идея, порезать кол-во потоков. с помощью ipfw как это правильно сделать, и что будет, если юзер превысит допустимое кол-во потоков? Ссылка на сообщение Поделиться на других сайтах
Sanito 129 Опубліковано: 2008-08-26 12:34:43 Share Опубліковано: 2008-08-26 12:34:43 А какая OS? Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2008-08-26 12:37:31 Автор Share Опубліковано: 2008-08-26 12:37:31 Линукс Федора 8. Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-08-26 14:14:46 Share Опубліковано: 2008-08-26 14:14:46 Ну у меня фря, фаерволл ипфв тока на фре по-моему Ссылка на сообщение Поделиться на других сайтах
911 140 Опубліковано: 2008-08-26 14:43:05 Share Опубліковано: 2008-08-26 14:43:05 тоже возникла идея, порезать кол-во потоков. с помощью ipfw как это правильно сделать, и что будет, если юзер превысит допустимое кол-во потоков? например так: ipfw add 1000 allow ip from 10.10.0.10 to any limit src-addr 10 когда превышает количество сессий, пакеты дропаются Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-08-26 15:16:24 Share Опубліковано: 2008-08-26 15:16:24 например так: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 так работать будет? и еще вопрос, сколько желательно сессий на юзера оставлять? Ссылка на сообщение Поделиться на других сайтах
911 140 Опубліковано: 2008-08-26 19:31:16 Share Опубліковано: 2008-08-26 19:31:16 У меня такие правила, ничего лишнего желательно не добавлять.тестить все это негде, потому и задаю вопрос 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 сессий )) Ссылка на сообщение Поделиться на других сайтах
Sanito 129 Опубліковано: 2008-08-27 04:08:48 Share Опубліковано: 2008-08-27 04:08:48 Недостаток этого метода в том, что правила надо создавать на всех клиентов, т.е. их количество будет пропорционально количеству клиентов. Как вариант, если сеть за nat-ом, можно перед ним ограничить общее кол-во сессий, хотя это будет не совсем корректно, т.к. один хлопчик с вирусом/трояном забъет всё что можно. Ну и как бы всё это не для линукса. Ссылка на сообщение Поделиться на других сайтах
loki 86 Опубліковано: 2008-08-27 04:46:44 Share Опубліковано: 2008-08-27 04:46:44 Для PF есть варианты у кого то ? Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2008-08-27 06:13:28 Автор Share Опубліковано: 2008-08-27 06:13:28 Эм, я так понял, что все это для Фрюшки, а для Федоры 8, как все это осуществить? Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-08-27 06:18:18 Share Опубліковано: 2008-08-27 06:18:18 Спасибо! А 50 потоков не много ли? Расчитываю на то, чтобы нормальные юзеры получали нормальный инет, а те, кто юзали торренты - пусть юзают, но не в 500 же потоков! Я думал около десяти, но этого наверное мало. Ссылка на сообщение Поделиться на других сайтах
Neelix 33 Опубліковано: 2008-08-27 07:17:21 Share Опубліковано: 2008-08-27 07:17:21 Эм, я так понял, что все это для Фрюшки, а для Федоры 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 Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2008-08-27 11:22:51 Автор Share Опубліковано: 2008-08-27 11:22:51 Neelix, верно, а какие модули требуются? И как их ставить? Ссылка на сообщение Поделиться на других сайтах
Neelix 33 Опубліковано: 2008-08-27 12:43:56 Share Опубліковано: 2008-08-27 12:43:56 пакет "patch-o-matic", кроме этих, там еще довольно много расширений Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-09-24 21:34:12 Share Опубліковано: 2008-09-24 21:34:12 во втором случае поменяй src-addr на dst-addr )))оставь 20-50 сессий )) чо-то криво как-то оно работает, скорость падает сильно, страницы открываются туго, это при 20 сессиях. Ссылка на сообщение Поделиться на других сайтах
SHARAHOME 26 Опубліковано: 2008-09-24 22:09:20 Share Опубліковано: 2008-09-24 22:09:20 А сколько стоит сесий на одного клиента у Укртелекома ? Около 300 ? Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-09-25 05:21:26 Share Опубліковано: 2008-09-25 05:21:26 А сколько стоит сесий на одного клиента у Укртелекома ? Около 300 ? ну чо так, тыщ 20 нормально работает. главное шоб мопед небыл роутером. Ссылка на сообщение Поделиться на других сайтах
gall 6 Опубліковано: 2008-09-25 05:22:18 Share Опубліковано: 2008-09-25 05:22:18 Если хорошенько подумать, то больше всего сессий плодят P2P приложения. Поэтому рекомендовал бы фильтровать их и резать сессии, все остальное не сможет так положить каналы ИМХО. Для этого можно использовать связку модулей ipp2p и connlimit. Когдато пробовал такой вариант iptables -A FORWARD -s $user_ip -m ipp2p --ipp2p -m connlimit --connlimit-above 5 -j DROP И все замечательно резало. Ссылка на сообщение Поделиться на других сайтах
gall 6 Опубліковано: 2008-09-25 05:23:36 Share Опубліковано: 2008-09-25 05:23:36 ну чо так, тыщ 20 нормально работает. главное шоб мопед небыл роутером. А в чем проблема мопеда-роутера? Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-09-25 05:26:57 Share Опубліковано: 2008-09-25 05:26:57 А в чем проблема мопеда-роутера? в том, что он не в силе столько держать. Фрибсдишный айпинат не смог держать более 30000 сессий, кстати, никто не знает, как это число увеличить? не пересобирая ядро? Ну и еще, как нормально рубать с помощью ipfw кол-во сессий? Ссылка на сообщение Поделиться на других сайтах
wifi_master 132 Опубліковано: 2008-09-25 13:22:05 Share Опубліковано: 2008-09-25 13:22:05 а как порезать на микротике кто-то знает? Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-09-25 15:21:38 Share Опубліковано: 2008-09-25 15:21:38 ответьте на мой вопрос... Ссылка на сообщение Поделиться на других сайтах
Neelix 33 Опубліковано: 2008-09-25 16:38:00 Share Опубліковано: 2008-09-25 16:38:00 а как порезать на микротике кто-то знает? таблица filter, смотри вкладки ответьте на мой вопрос... ipfw allow ip from $src_ip to $dst_ip limit src-addr N разрешается прохождение сетевых пакетов от $src_ip к $dst_ip и обратно, при этом $src_ip может поднять не более N сессий к $dst_ip Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-10-03 18:13:53 Share Опубліковано: 2008-10-03 18:13:53 В общем сделал почти так, как писали. Страницы открываются туго, качается медленнее, хз почему. Вот мой скрипт 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"); ?> Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас