Если уже данный вопрос всплывал или не туда отписался, извините.Мучался долго с SAMS настроить так и не удалось и решил сделать свою разработку.
Написал я подобие биллинга для сквида.
скрипт считает сколько юзер использовал трафика по access.log
Но это не суть важно. Столкнулся с фактом, что в access.log пишется инфа о скачаном после того как она скачалась, тоесть если одной сессией качается 1 гиг, то в access.log попадут данные после того как этот гиг скачают.
Я посредством ulogd хочу считать, чтоб пользователь превысивший лимит рубанулся правилом в iptables и не продолжил качать. Натыкался на подобное в инете, но никто не расписывал решение.
в iptables настроил чтоб все пакеты идущие от прокси к пользователям попадали в
базу ulogd.
-A OUTPUT -s 192.168.2.147 -d 192.168.0.0/255.255.0.0 -o eth0 -p tcp -m tcp --sport 3128 -j ULOG --ulog-prefix "SQUID_OUT" --ulog-cprange 48 --ulog-qthreshold 50
нашел метод как вычислить по логам ulogd сколько трафика взял определенный ip.
результат совпадает с данными access.log
экспериментировал на ya.ru, yandex.ru, пока вычислял формулу для расчетов.
зайдя на другой сайт, формула сразу не работает, и начинает когда много раз данный сайт откроешь.
КАК Я ПОНЯЛ по экспериментам, что через squid некешированные(squidом) данные попадают в ulogd 2 раза.
вот и застрял я на том, что не знаю как отбросить вторичное попадание пакета в лог ulogd!
подсобите ПЛЗ!
понимаю что можно не использовать кеш, но это не выход!
прокся стоит внутри сети, машина с 1 интерфейсом