LINUX.ORG.RU

Re: Squid + SARG + Rejik

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

W ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от W

Re: Squid + SARG + Rejik

Пробовал как то sarg испольховать... так он каждый раз разные результаты выдавал, при том что в это время инетом никто не пользовался...

nau ()

Re: Squid + SARG + Rejik

Вполне обхожусь своими "костылями". На отработку лога squid-а в 25М тратится 2-3 сек. При превышении лимита трафика юзверя выкидывает из passwd. Интервал по крону - 5 минут. Дёшево и сердито, и главное начальство довольно :)

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

ну-ну, продолжайте строить и использовать подпорочки и костыльчики. :)

anonymous ()

Re: Squid + SARG + Rejik

Дизайн какой-то чудный - под сам текст треть места на странице, остальное фон.

fagot ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

Кто юзал Rejik - чем оно лучше (и лучше ли) squidGuard'a ?

anonizmus ()

Re: Squid + SARG + Rejik

Эх. Помню как года 3 назад писал программку для обсчета логов в реальном времени для Internet-кафе. Пронцип как у "tail -f".
Как только пользователь привысил лимит - его сразу отрубают. И не надо ждать 5 минут и нагружать процессор при обсчете логов.
Программа до сих пор считает трафик в этом заведении. Все довольны.

Так что и на Squid'e можно нормально обсчитвать трафик. Без всяких "костылей".

PS.
Sarg - всегда правильно обсчитывал логи.

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

А если юзер поставил тянуться десятигигабайтный файл, который вытянется целиком и попадет в лог одной строкой.
А лимит, к примеру 100M.
Как твоим методом достигается нужный результат?

green ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

Ну как. Объясняешь начальству -- так, мол, и так... не доглядели :( Ну и вазелинчику баллон трёхлитровый за спиной держишь... Так, на всякий ;)

Хорошо бы в реальном времени трафф считать ;)

vovans ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

а можно указать в squid.conf delay_parameters, например если он запрашивает файлы больше N то снижать скорость до 1200kbs, пусть тянет :-)

anonizmus ()
Ответ на: Re: Squid + SARG + Rejik от anonizmus

Re: Squid + SARG + Rejik

Ну это не вариант. И к тому же размер файла не всегда заранее известен

green ★★★★★ ()

Re: Squid + SARG + Rejik

Люди, расскажите как _правильно_ сделать учёт трафика. Если быть совсем точным, то нужен не только учёт трафика, а полноценный биллинг.
Условия задачи таковы:
есть комп подключённый к инету через кабельный модем (eth0) и к локальной сетке в 20 компов (eth1). На компе с инетом стоит линукс с 2.6 ядром, на остальных компах в сетке винда 98/XP. Хочется дать народу из сетки инет, но обязательно нужен нормальный учёт трафика, т.к. цена за Мб инета довольно высока и на шару давать пользовать инет у меня нет ни средств, ни желания.
Требования к системе учёта:
1. нужно считать сколько мегабайт входящего и исходящего трафика использовал каждый из пользователей;
2. нужно дать возможность народу пользоваться как можно большим кол-вом различного сетевого софта использующего разные протоколы (http, ftp, irc, icq, jabber, ssh, smtp, pop3, imap4 и т.д.). Следовательно учёт трафика через squid'овские логи отпадает;
3. необходимо также сделать систему учёта устойчивой к попыткам пользователей поменять свой ip и/или mac адрес. Юзера они ведь хитрые некоторые точно попытаются посидеть в инете на халяву и/или за чужой счёт. :(
4. биллинг скорее всего должен быть организован по prepaid схеме, т.е. ко мне приходит юзер и оплачивает наперёд 100 Мб трафика, после этого он может пользоваться интернетом до тех пор, пока он не израсходует эти 100 Мб. Как только он исчерпал свой лимит интернет для него сразу же обрубается;
5. нужен хотя бы простенький веб интерфейс, через который каждый пользователь смог бы посмотреть кол-во использованного инета, а также сколько мегабайт у него осталось.

Согласно пункту 2 подходящим решением является учёт трафика с помощью цепочек iptables. Может быть существуют ещё какие-нибудь варианты учёта? Мне кто-то говорил про пакет net-acct в дебиане, это может помочь?
По пункту 3 есть подозрение что для этого нужно использовать pptpd. Так ли это? Что ещё можете посоветовать?

Очень прошу помочь, т.к. народ без инета страдает :) Прошу прощения если где-то в своих рассуждениях я неправ - для меня это новая тема.

SKYRiDER ★★★ ()
Ответ на: Re: Squid + SARG + Rejik от SKYRiDER

Re: Еще раз о входящем трафике

По п.3 - лучше вместо pptpd выбрать pppoe. Ко всему прочему обезопасишь себя от подмены пользователем IP-шника твоего маршрутизатора.

По существу: именно такая схема - pppoe+iptables+mysql+web с завязкой на состояние лицевого счета клиента поднимается мной по заказу знакомого на его маршрутизаторе. Так что будут вопросы - пиши на vitalka_at_technodesign.ru.

VitalkaDrug ★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Еще раз о входящем трафике

> А если юзер поставил тянуться десятигигабайтный файл, который вытянется целиком и попадет в лог одной строкой. А лимит, к примеру 100M.

Для сквида есть патчик, после которого информация в access.log попадает кусочками (см. ftp://services.td-net.ru/pub/squid4mysql/). Так что можно закачки блокировать и в процессе.

VitalkaDrug ★★ ()
Ответ на: Re: Squid + SARG + Rejik от SKYRiDER

Re: Squid + SARG + Rejik

dlja traffika : ipac-ng dlja togo ctobi authit i sledit ctob ne obdurjali ja slishal cto radius server horosh

sleon ()
Ответ на: Re: Squid + SARG + Rejik от annonymous

Re: Squid + SARG + Rejik

Спмописным биллингом, ясное дело. В этом деле каждый изобретает свой собвственный велосипед. У меня велосипед образца 1998го года, с костыляи образцов 2000го и 2001го годов ;)

green ★★★★★ ()
Ответ на: Re: Еще раз о входящем трафике от VitalkaDrug

Re: Еще раз о входящем трафике

Этот патч проблему не решает. Ну то есть да - мы можем узнать что юзер превысил лимит гораздо раньше, однако каким образом предлагается дропнуть превышающий коннекшен? squid restart - не вариант.

green ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от SKYRiDER

Re: Squid + SARG + Rejik

Я бы стал работать на уровне файрволла - применительно к FreeBSD ipfw > лог на всех интерфейсах. Извини, с Линуксом никогда не работал, думаю пакеты там тоже можно считать, а потом обрабатывать статистику.

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

Кстати на фре(в 4 и 5) почему-то сквид если redirect указан выпадает с ошибкой типа не могу еще задачу поднять. Сам перегружается - далее работает нормально. С правами все нормально - иначе он бы вообще не поднялся. Все работает, но это бесит! В чем причина, так и не понял ((( Причем squid -k reconfigure нет проблем. Кто мне скажет где я что не дописал и в чем я не прав?

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

помню пару лет назад что-то подобное было
кажется решилось все увеличением параметра redirect_children

HellAngel ★★ ()

Re: Squid + SARG + Rejik

Господа, а чем Вам не нравится NetAMS для подсчета трафика? Работает чУдно, считает все, что нужно. Документация на русском, примеры конфигов есть. А что еще то нужно?

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от SKYRiDER

traffic

> man arp - ключ -f либо как правильно советуют - PPPoE, а кто говорит что 20 PPPoE сеансов - пусть очнётся - PIV/Opteron стоит меньше 150USD.
как альтернатива - P100-166 и мать с socket5/7 + 4xdlink-580tx - получаете 16 портов + ещё можно пару isa 3c509b воткнуть:-)
> биллинг скорее всего должен быть организован по prepaid схеме
PPPoE опять же решает эту проблему - фактически можно применить dial-up технологии (RADIUS), под которых написана просто ТУЧА программ да даже можно и свою написать (как сделали мы для обычного dial-up, применив FreeRADIUS и написав небольшой скрипт для pppd для учёта предоплатников)
для PPPoE - всё точно также. на самом деле - RADIUS - это тоже круто. только сразу с БД завяжитесь - проще будет стат-ку снимать и редактировать записи.
> с помощью цепочек iptables
советую посмотреть на QUEUE - я писал прогу под это для учета в игровом клубе под asta - это несложно.
net-acct - плоха тем что полузется pcap со всеми вытекющими.
у ipac-ng - свои гуси но по крайне мере меня он устроил.:-)
с bugtraq: "pptpd flawed by design".:-)

mumpster ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

traffic

> Попробуй netbilling
он труп.
по сравнению с ipac-ng - отстой.

mumpster ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

traffic

> чем Вам не нравится NetAMS
сложный он в настройке и какой-то слишком монстроидальный (c++?)

mumpster ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

>А лимит, к примеру 100M.
>Как твоим методом достигается нужный результат?
Никак. Заказчик был предупрежден об этом.
Это его как раз и устраивает.

Как еще кроме squid'а (или дрyгого proxy) с авторизацией вести учет, если некоторые пользователи работают на терминальном сервере или по X11-протоколу.

anonymous ()
Ответ на: traffic от mumpster

Re: traffic

Ну так сразу и URL на патчи бы дал или ключевые слова для гугля ;)

green ★★★★★ ()

Re: Squid + SARG + Rejik

Ну с "дискретным биллингом все ясно" - есть некие счетчики (iptables, ipfw, traffd - по вкусу) и вы раз в час с них статистику снимаете. А вот как организовать эффективный (не жрущий все процессорное время) биллинг в реальном времени? поделитесь опытом/идеями?

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Traffic

> дискретным биллингом
в смысле - дискретынй?
он в любом случае - дискретный. по определению.
Вы имеете, наверное, в виду т.н. :"online billing"?
дык с помошью iptables можно это легко организовать:
QUEUE и своя прога - руби пожалуйста на лету!
вопрос лишь в том чтобы праивльно организовать быстрый просмотр таблицы в памяти (видимо hash/btree, может ещё что-то типа patricia)
недоделанный образец можно взять на моём хомяке.

mumpster ★★★★★ ()
Ответ на: Traffic от mumpster

Re: Traffic

в смысле на лету? вот тут поподробней плиз :) принимая через пайп информацию о пакетах? и записывая каждый пакет в БД? а мускуль раком не встанет?

anonymous ()
Ответ на: yo от mumpster

Re: nani mo arimasen

Что-то я там не нашел ничего подходящего. Ну то есть патч для сброса лока кусочками в fifo я там таки нашел, но как решать проблему с тем что вот лимит превышен, но есть еще открытые коннекшены у ентого юзера, по которым он что-то продолжает активно тянуть - не вижу.

green ★★★★★ ()
Ответ на: Re: nani mo arimasen от rusxakep

Re: nani mo arimasen

У разных юзеров, разумеется, разный лимит. И этот лимит не статический, само собой.

green ★★★★★ ()
Ответ на: Re: Traffic от anonymous

yo

> через пайп
я где-то это слово сказал?
я сказал QUEUE. это RTNETLINK. man iptables.
каждый - не надо. но вот лимиты через QUEUE сделать - элементарно.

mumpster ★★★★★ ()
Ответ на: Re: nani mo arimasen от green

traffic

> лимит превышен, но есть еще открытые коннекшены
если по превышению лимита делать -k reconfigure - то точно сбросит :-)
а вообще - таки-да, проблемка. честно говоря - мне ещё лично не надо было этим заниматься. всё равно начальство обычно устраивает по границе дня.

mumpster ★★★★★ ()
Ответ на: traffic от mumpster

Re: traffic

-k reconfigure таки не вариант, потому как он всех сбросит. И далеко не все коннекшены которые он собросит можно будет потом попытаться открыть заново.

green ★★★★★ ()
Ответ на: yo от mumpster

Re: yo

у меня нет iptables ;-) у меня есть ipfw, ipf, pf ;-) или traffd

anonymous ()
Ответ на: Re: yo от anonymous

traffic

ну и чо вы тут делаете тогда?
я вам ничем не помогу.

mumpster ★★★★★ ()

Re: Squid + SARG + Rejik

чем логи мурыжить не проще ли собрать сквид с snmp и выковыривать время от времени суммарный трафик по каждому IP командой типа:

snmpwalk -Cc -O u -c public -v 1 localhost:3401 .1.3.6.1.4.1.3495.1.5.2.1.3

получаем вывод типа : enterprises.3495.1.5.2.1.3.172.21.2.113 = Counter32: 722 enterprises.3495.1.5.2.1.3.172.24.4.123 = Counter32: 3231 enterprises.3495.1.5.2.1.3.172.23.17.123 = Counter32: 6569 enterprises.3495.1.5.2.1.3.172.23.32.117 = Counter32: 2835 enterprises.3495.1.5.2.1.3.172.23.18.120 = Counter32: 29 enterprises.3495.1.5.2.1.3.172.23.35.130 = Counter32: 15 enterprises.3495.1.5.2.1.3.172.19.43.132 = Counter32: 1087 enterprises.3495.1.5.2.1.3.172.23.23.119 = Counter32: 9034

выковыриваем адрес и килобайты, сравниваем с заданным порогом, попал за порог - айпишник в файл, http_access deny all _файл_, squid -k reconfigure. вот такое имхо

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

и рестарт сквиду в 12 ночи для сброса счетчиков

anonymous ()
Ответ на: Re: Squid + SARG + Rejik от anonymous

Re: Squid + SARG + Rejik

Этот вариант предполагает расчет и лимитирование траффика по IP.
Но в некоторых местах с одного IP в разное время могут работать разные пользователи.
И лимитировать нужно именно пользователей. Вот тут и приходится парсить логи.

green ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

Грин, а ведь можно сделать правило по привязке к id юзера.

Что нибудь типа, это для OpenBSD.

pass in on fxp0 inet proto tcp from any to any port www user lenka \

keep state

Потом смотришь счетчик по этому правилу, и принимаешь решение

ИМХО гораздо более оперативнее и проще чем логи парсить.

Sun-ch ()
Ответ на: Re: Squid + SARG + Rejik от Sun-ch

Re: Squid + SARG + Rejik

А кто сказал что юзера локальные? юзера ходят с совсем других тачек. Через squid. Откуда firewall узнает для какого там юзера сейчас squid тянет ентот файл... Нет, пускать всех напрямую тоже не предлагать (да и как оно узнает что то что для x.x.x.10 сейчас тянется э то для юзера вася, а юзер лена оттуда ушел 5 минут назад)

green ★★★★★ ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

Дык юзер авторизоватся должен через соху, тогда правило станет активным

и сколько ему отдали по этому правилу и считается.

А откуда реально трафик идет из инета или из локального кеша его не

касается вроде так?

Sun-ch ()
Ответ на: Re: Squid + SARG + Rejik от green

Re: Squid + SARG + Rejik

И вообще логи парсить под большой нагрузко - тухлое дело.

Статистику со сквида можно собирать чере SNMP, глянь на файл mib.txt

CacheClientEntry ::= SEQUENCE {

Там счетчики типа cacheClientHttpKb и т.д.

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