Записи с меткой ‘mysql’
MySQL авторизация для Squid
Костяк базы:
base.sql
Код самого авторизатора можно взять здесь:
mysql_auth v.1.0
В mysql_auth.c на свой вкус меняем переменные DBHOST,DBUSER,DB,DBPASSWORD
и делаем make
Если все прошло успешно, то перемещаем бинарник в /usr/local/libexec
В конфиге Squid-а прописываем:
auth_param basic program /usr/local/libexec/mysql_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
Все, осталось только описать ACL и зделать reconfigure.
Добавление пользователя происходит через MySQL, примерно так:
INSERT INTO proxy_users VALUES(»,’kaba’,password(’123qwe’));
Написать Web интерфейс я думаю не составит большого труда :)
TODO:
дописать чтобы знаки [,],{,} и т.д могли восприниматся при передаче пароля
Ipa и Mysql
Вы наверное наслышаны или уже ставили себе эту утилиту учета IP трафика.
Если нет, то вам сюда http://www.simon.org.ua/ipa/
Утилита действительно очень хороша, но есть некоторые неудобства, например,
нецентрализованное хранение данных. Задумавшись над этим я написал небольшой
patch чтобы ipa могла отсылать статистику в MySQL базу.
Патч можно взять здесь:
Для версии 1.2.7
Для версии 1.2.9
Для версии 1.3
Костяк базы:
base.sql
Утилита для обновления статистики:
update_base.tar.gz
Примеры конфиг файлов:
ipa.conf
ipa.sql
Телодвижения, которые нужно cделать для функциональности:
1) Забираем все с моего сайта
2) Создаем базу в Mysql, например statistic
3) Берем base.sql и импортируем в базу
4) Создаем юзера в MySQL, например ipa и даем ему привелегии на write, read, update на базу statistic
5) Заносим значения в таблицу who, которая отвечает за индефикацию хоста, например:
insert into who values(1,'mylogin','mypassword','mymashine.domain.ua',0,0);
6) База готова, приступаем к самой ipa
cd /usr/ports/sysutils/ipa/files/
ls -la
total 6
drwxr-xr-x 2 root wheel 512 15 03:35 .
drwxr-xr-x 4 root wheel 512 13 16:20 ..
-rw-r--r-- 1 root wheel 1236 15 03:35 patch-aa
копирум патч взятый с моего сайта в эту дерикторию и переименовываем его как patch-ab (для примера). Если на этой машине будет находится MySQL,
то ставим его, если нет, то достаточно будет поставить только клиента.
Дальше:
cd /usr/ports/sysutils/ipa
make; make install
7) Переходим к конфигурированию ipa:
- копируем файлы ipa.sql и ipa.conf в /usr/local/etc
- редактируем файл ipa.sql: ставим правильный логин пользователя, пароль и базу
- назначаем привелегии:
-rw------- 1 root wheel 62 12 21:13 ipa.sql
- редактируем файл ipa.conf
Добавилось два поля:
who — это id_who в таблице who;
row — значения in или out, т.е. записивать как входящий трафик или как исходящий
- ставим соответствующие права на файл
8) Запускаем ipa и приступаем к update_base.tar.gz
Распаковываем, заходим в каталог, редактируем файл update_base.c, а именно строчки:
char *user="ipa";
char *passwd="ipa123";
char *host="localhost";
char *db="statistic";
Ставим свои значения и делаем make, получаем бинарник.
Ложим его, например, в /usr/local/sbin и в cron прописываем, чтобы он вызывался 1 раз в час, например:
58 * * * * /usr/local/sbin/update_base
Желательно это делать на той машине где стоит Mysql
9) Статистика собирается, теперь можно приступить к настройке страницы для ее просмотра. Берем ее здесь и распаковываем.
Требования: apache + php + mysql client + mrtg
10) Следуем указаниям в README.