Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Чт Июн 30 2005 10:41 Заголовок сообщения: Billing, SQUID, autorization etc |
|
|
Всем добрый день\утро\вечер!
Поставил Linux FC3.
Поднял DNS. OK
Поднял sendmail. OK
Поднял fetchmail. OK
Поднял Squid. OK
Далее встает вопрос о биллинге, хотя бы в минимальных размерах по Squid'у.
Переворошил кучу инфы по биллинговым системам, и так до меня и не дошло:
1. Что в них подразумевается под их собственными парами пользователь\ его IP ? Жесткая привязка пользователя к определенным IP и, следовательно, при дальнейшем подсчете трафика, если N-байт получены для такого-то IP, значит, они получены для этого пользователя?
Но как быть в случае с DHCP или если пользователь зашел с другой\десятой машины?
2. Насколько я понял, один из основных вопросов при биллинге как раз и есть динамическое разрешение имени в IP для корректного подсчета. Для этого биллинговые системы используют специальный способ, когда клиент не просто напрямую лезет, например, к Squid'у, но вначале авторизуется у биллинговой системы непрозрачным способом, т.е. клиента необходимо спец. образом настраивать, к примеру, настраивая VPN (для NetUp, например)?
Как же быть в следующем простом случае:
В локалке работает DHCP под Windows-сервером
Установлен Squid на шлюзе в Инет.
Задача: считать трафик http(хотя бы только!) и обрубать юзеров согласно лимита.
Дополнительные навороты на клиентах не приветствуются.
И вот тут я вижу свежий топик http://forum.citforum.ru/viewtopic.php?t=36568&start=0&postdays=0&postorder=asc&highlight=
где в т.ч. советуется использовать спец. скрипт для авторизации вместо обычного ncsa_auth
Т.е. как бы такая общая схема:
1. Squid отдает имя\пароль скрипту.
2. Скрипт сначала проверяет имя\пароль, затем смотрит либо в БД, либо даже в текстовом файлике, сколько юзер уже получил и сколько у него установлен лимит. Возвращает Сквиду ответ.
3. В кроне висит некий анализатор логов Сквида, который и пишет в БД статистику по юзерам.
Конечно, в этой схеме я не увижу трафика кроме как http...
И совсем не убежден, что мне удастся самостоятельно написать соответствующие скрипты (разве что через годик ). Есть ли что-либо подобное готовое, что можно использовать с минимальными изменениями? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Чт Июн 30 2005 19:37 Заголовок сообщения: |
|
|
Делать подсчет трафика на squid - это знаете ли.... Гадание на кофейной гуще более точная наука.
На opennet.ru поройся. Там много всякого. |
|
Вернуться к началу |
|
|
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Пт Июл 01 2005 10:56 Заголовок сообщения: |
|
|
Тэк-с.
Для таких же юных пингвинов, как и я, наткнувшихся на сей топик
(если что не так, гуру поправят):
1. Малой кровью обойтись не удастся. Большинство более-менее серьезных биллинговых систем используют свою систему авторизации через PPP, PPPoE, VPN etc, что хорошо для провайдера, но не вполне есть здорово для локалки офиса.
2. Простую систему с учетом ВСЕГО трафика(не только http) и без доп. настроек у клиента я не нашел.
3. Нашел вот это http://pb.pils.ru/ Почти в точности, как на схеме 2 мессагами выше.
Буду пробовать сначала это, тем более, что такая уж точность до байта мне не требуется и 95% трафика - именно http. Если не получится\не понравится\захочется большего, попробую Stargazer http://stargazer.dp.ua/ |
|
Вернуться к началу |
|
|
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Вт Июл 12 2005 10:06 Заголовок сообщения: |
|
|
Отчет по настройке squid-pb.
1. Скачал, распаковал.
2. Смотрим, под какой учеткой работает сквид.
3. Корректируем Makefile.
4. Компилируем. Не копмилируется. Путем 4-часовых поисков в Инете определяем, что ВРОДЕ-БЫ не хватает строки -L/usr/lib/mysql в makefile исходников. Добавляем. Компилируем. ОК.
5. Make install, затем создаем БД, устанавливаем веб-интерфейс (php) и прописываем его в апаче. ОК.
6. Проверяем работу веб-интерфейса. Нормально работает только просмотр, не редактируется. После долгих 2-дневных разборок выясняется, что прямая передача параметров между модулями в современных версиях php отключена по умолчанию, нужно пользоваться $_GET и $_POST. Редактируем все скрипты(отродясь на php не писал!). Заводим тестового юзера admin с паролем admin. ОК.
6. Редактируем squid.conf, меняя ncsa-auth на pb-auth. Запускаем сквид. Авторизация не проходит (даже запроса к БД нет). Колупаем и так и сяк - не авторизует. Запускаем напрямую pb_auth admin admin - OK.
С тихим бешенством сравниваем исходники ncsa_auth и pb_auth (отродясь на С не писал!) Сразу бросается в глаза, что имя\пароль, полученные от сквида, сначала проходят функцию rfc1738_unescape
Добавляем и функцию, и ее вызов. Компилируем, копируем. Под сквидом не авторизует, вручную ОК. Зато запрос к БД уже есть. Сравниваем исходники далее. Обращаем внимание, что если в ncsa_auth после возвращения OK или ERR ничего больше нет, то pb_auth еще пишет фразу ошибки на stderr или обнуляет результат SQL-запроса. Убираем\переносим. Компилируем, копируем. Ну наконец-то! ОК.
7. Корректируем /etc/rc.d/init.d/squid на предмет запуска парсера.
Проверяем работу. Все запросы валятся в лог ошибок. Смотрим исходники парсера и догадываемся, что ему не нравится имя вместо адреса парент прокси в логах сквида. Корректируем сквид.конф, таг cache_peer. Проверяем.
Работает!!!!
Уррррр-рааааа!!! Наши взяли водокачку!!!
Теперь еще осталось с десяток собственных php-скриптов для разнообразной статистики и всякой всячины накропать - и дело в шляпе .....
Комментарии\комплименты приветствуются ) |
|
Вернуться к началу |
|
|
sedfom
Зарегистрирован: 04.11.2002 Сообщения: 309 Откуда: Moscow
|
Добавлено: Вт Июл 12 2005 14:45 Заголовок сообщения: |
|
|
squid и mysql-сервер установлены на одном компьютере?
Что за компьютер (железо)?
Сколько планируется клиентов пропускать?
Ну и напоследок - я правильно понял статистика сквида будет храниться в mysql? |
|
Вернуться к началу |
|
|
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Ср Июл 13 2005 05:19 Заголовок сообщения: |
|
|
1. На одном, конечно. (мне с одним-то Линуксом сладить едва-едва удается )
2. Железо пока старое, 2-х проц. П-300, 128 ОЗУ. Отлажу прокси и всякую всячину на нем, потом перенесу систему на Атлон 2800\512
3. Клиентов будет до сотни, не более. Сейчас 35.
4. Да, статистика будет МуSQL.
А что? Есть подозрения, что будет тормозить? |
|
Вернуться к началу |
|
|
sedfom
Зарегистрирован: 04.11.2002 Сообщения: 309 Откуда: Moscow
|
Добавлено: Ср Июл 13 2005 21:57 Заголовок сообщения: |
|
|
1. Сквид вещь прожорливая
2. Mysql - аналогично.
Попытка не пытка. Попробуйте. Я бы порекомендовал поместить Mysql внутрь локальной сети на отдельную машину (в идеале на прокси сервер ставится отдельная сетевая карта и уже к ней цепляется Mysql). |
|
Вернуться к началу |
|
|
FreeZer
Зарегистрирован: 22.07.2005 Сообщения: 2
|
Добавлено: Пт Июл 22 2005 12:50 Заголовок сообщения: |
|
|
Pingvinenok писал(а): | 1. На одном, конечно. (мне с одним-то Линуксом сладить едва-едва удается )
2. Железо пока старое, 2-х проц. П-300, 128 ОЗУ. Отлажу прокси и всякую всячину на нем, потом перенесу систему на Атлон 2800\512
3. Клиентов будет до сотни, не более. Сейчас 35.
4. Да, статистика будет МуSQL.
А что? Есть подозрения, что будет тормозить? |
Если а старенькой машине проделаешь то что хочешь, при массовом конекте клиентов тормоза точно будут....
а Атлон 2800\512 примерно потянет при нормальной загруженности около 70 клиентов, но нужно пробовать и тестить... |
|
Вернуться к началу |
|
|
|