Документация по ОС FreeBSD
Суббота, 29.11.2025, 07:51
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Squid
Руководство по установке squid2mysql под FreeBSD [2010]
Данная статья описывает этапы и особенности установки исправленной версии squid2mysql под FreeBSD.
Что такое Squid2MySQL? Это авторизация и учет трафика пользователей в Интернете. Есть proxy-сервер Squid и база данных MySQL, Squid занимается кэшированием информации, а MySQL хранит информацию о пользователе (имя, пароль, скаченные URL и т.д).
Связующее звено — это Squid2MySQL 1.0.0 от Eugene V. Chernyshev для Linux. Для тех, кто использует Linux в качестве OS для серверов, лучше будет посетить сайт автора Squid2MySQL и использовать информацию с авторского сайта. Я лишь портировал squid2mysql под FreeBSD и исправил несколько ошибок, о них было сообщено автору в переписке по e-mail.
Данная статья описывает этапы и особенности установки исправленной версии squid2mysql под FreeBSD.
Поехали…
1) Должен быть установлен MySQL, Squid и Perl. Проверьте работоспособность данных программ: зайдите в MySQL, сделайте простой запрос к таблице mysql; проверьте Perl командой perl -v; не забудьте сделать для Squid базы командой squid -z. Проверьте DNS командой nslookup host, если с DNS будут проблемы, то не будет работать Squid.
2) Скачайте архив squid2mysql под FreeBSD (~600 Kb) и распакуйте:
# tar -zxvf squid2mysql_v.tar.gz
3) Зайдите в появившийся каталог squid2mysql_v. Перейдите в подкаталог for_perl и установите модули для Perl: DBI-1.42.tar.gz и Msql-Mysql-modules-1.2219.tar.gz или скачайте более новые:
# tar -zxvf DBI-1.42.tar.gz
# cd DBI-1.42
# perl Makefile.PL
# make
# make test
# make install
Аналогично установите модуль Msql-Mysql-modules-1.2219.tar.gz.
4) Прочтите файл squid2mysql_v/install_info/INSTALL. Скопируйте perl-скрипт squid2mysql и sh-скрипт sqauth в каталог с squid. Например:
# cp squid2mysql /usr/local/squid/sbin/squid2mysql
# cp sqauth /usr/local/squid/sbin/sqauth
Измените при копировании путь к squid, если он у вас в другом каталоге.
Perl-скрипт squid2mysql разбирает логи от Squid и заносит в базу MySQL. Sh-скрипт sqauth — авторизационный скрипт; проверяет имя, пароль и сравнивает скаченный объем с лимитом. Если все в порядке, то скрипт возвращает OK и пускает Squid в Интернет, иначе — ERR. Этот скрипт писал я (оригинальный скрипт больше и позволяет лимитировать по дням и неделям), так что по его работе претензии предъявляйте мне на e-mail.
5) Создайте командой mkfifo pipe-канал:
# mkfifo /var/log/squid/access.log
Рекомендую путь оставить таким, какой он есть. Автор применил красивый ход. Вместо текстового файла будет находится pipe-канал. Ничего не подозревающий Squid будет писать логи о пользователях в один конец трубы, а perl-скрипт squid2mysql считывать из другого конца трубы, разбирать и заносить в базу данных MySQL. Если MySQL будет не доступен, то информация временно будет записана в файл /var/log/squid/backup.log.
6) Скопируйте mysql.sh и squid.sh из каталога squid2mysql_v/install_info/ в каталог /usr/local/etc/rc.d/. Сделайте эти скрипты запускаемыми для автозапуска MySQL и Squid после перезагрузки FreeBSD:
# chmod +x mysql.sh
# chmod +x squid.sh
Посмотрите содержимое squid.sh с комментариями:
#!/bin/sh
case "$1" in # разбираем параметр
start)
/usr/local/squid/sbin/squid2mysql < /var/log/squid/access.log &
/usr/local/squid/sbin/squid # запускаем Squid
echo "Squid starting" # информируем
;;
stop)
/usr/local/squid/sbin/squid -k shutdown # останавливаем Squid
echo "Squid stoping" # информируем
;;
*)
/usr/local/squid/sbin/squid -k reconfigure # рестартуем Squid
echo "Squid restarting" # информируем
;;
esac
exit 0
7) Каталог site_php — это web-интерфейс для управления пользователями. Для их работы нужно установить Apache и PHP, нужно в php.ini прописать globalregister = on. Мне удобнее управляться с помощью SQL-запросов непосредственно к базе данных или с помощью графических программ, поэтому я отказался от их использования. С помощью данных скриптов вы можете дать возможность пользователям менять свой пароль и смотреть свою (и только свою) статистику. Отредактируйте include.php по своему усмотрению. Если у вас возникают вопросы по поводу работы web-интерфейса для squid2mysql, то обращайтесь на авторский сайт.
8) Скопируйте squid2mysql_v/var_arch/sqlogarch в /var/arch/squid/sqlogarch и squid2mysql_v/var_arch/sqlogupload в /var/arch/squid/sqlogupload. Данные скрипты используются в php-скриптах web-интерфейса для управления backup и restore логов.
9) Для того, чтобы Squid работал с squid2mysql, нужно в squid.conf прописать следующие параметры:
# параметры авторизации
auth_param basic program /usr/local/squid/sbin/sqauth
# путь с скрипту, который возвращает OK или ERR
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
# ВСЕХ загоняем под proxy
acl all src 0.0.0.0/0.0.0.0
acl users proxy_auth REQUIRED
http_access allow users
http_access deny all
# Заставляем Squid проверять, не перекачал ли кто?
authenticate_ttl 60 seconds
10) Запустите /usr/local/mysql/bin/mysql. Если вы достаточны сильны в MySQL, то подредактируйте файл squid2mysql.sql. Например, такая строка разрешает подсоединяться к базе под именем vasilisc и паролем 123456 c любого хоста сети:
GRANT ALL PRIVILEGES ON *.* TO vasilisc@"%" IDENTIFIED BY '123456';
Такая строка дает по умолчанию 30 Mb в месяц лимит:
maxmonthly bigint(15) NOT NULL default '31457280'
Примените схему, которая создаст необходимые таблицы:
mysql>\. /path_to/squid2mysql_v/install_info/squid2mysql.sql
Могут появляться сообщения об ошибках, но это нормально, так как схема squid2mysql.sql содержит SQL-команды удаления таблицы (DROP TABLE) и создания новой (CREATE TABLE) с таким же именем. Но в первый раз таких таблиц НЕТ, поэтому появляются сообщения об ошибках.
11) Рекомендую сделать в squid.conf следущее:
cache_effective_user nobody
cache_effective_group nogroup
То есть Squid будет работать от пользователя nobody и группы nogroup.
Не забудьте сделать nobody владельцем каталога Squid:
# chown -R nobody:nogroup /usr/local/squid/
Обеспечьте доступ пользователю nobody в каталоги /var/log/squid/ и /var/arch/squid/.
12) Добавьте тестового пользователя в базу данных либо с помощью php-скриптов из каталога site_php, либо непосредственно с консоли MySQL:
mysql>\u squidlog
mysql>INSERT INTO auth VALUES('vasilisc',PASSWORD('123456'),'N',0,0,31457280);
mysql>INSERT INTO usernames VALUES('vasilisc','Alekseenko V N','simple user','OVIT','11-22-33','s@s.ru','2004-08-01');
Или подправьте файл insert_user.sql и вызовите его:
mysql>\. /path_to/insert_user.sql
Проверьте работоспособность! Если не заработало, пройдите все этапы еще раз внимательно. Прочтите логи Squid, MySQL, FreeBSD. Просмотрите содержимое файлов, особенно include.php, sqauth, perl-скрипт squid2mysql, squid.conf. Загляните на официальные сайты продуктов, прочтите FAQ.
Мои комментарии:
1) Я изменил во всех скриптах имя пользователя для подключения к MySQL. Был пользователь squidroot с паролем sqroot, стал root (это не FreeBSD root, а root MySQL — это разные вещи) c пустым паролем. Это связано с тем, что портирование под FreeBSD происходило нелегко, прибавьте баги в оригинальных скриптах.
2) sqauth — написанный мной авторизационный sh-скрипт. Его работоспособность на моей совести. Он пока упрощен до определения месячного лимита, хотя оригинальный скрипт проверял недельный и дневной лимиты.
3) perl-скрипт squid2mysql был мной изменен, так как там был баг с удвоением первой URL. Вы посетили сайт первый раз в этот день и размер скаченой html удваивался, потом проблема исчезала до следущего дня.
Вот и все, надеюсь, все установилось и работает вам на благо!
Cкажите спасибо Eugene V. Chernyshev за Squid2MySQL.
Источник:
http://www.nixp.ru/articles/Руководство-по-установке-squid2mysql-под-FreeBSD.html
Категория:
Squid
| Добавил:
oleg
(07.05.2010) | Автор:
vasilisc
Просмотров:
1111
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025