Пришлось немного научиться извращениям и эксгумации. Не буду сильно распространяться о том, что такое GreenSQL. Если кратко, то это прокси, которая обрабатывает запросы к MySQL и пытается определить, на сколько они похожи на вредоносные и отбрасывает их. Как это выглядит на практике и востребовано ли - не в курсе. Кстати, обратите внимание, что это ПО - платное. Бесплатно распространяется только немного урезанная версия и ограниченная одной прокси. Основная масса всех руководств описывают установку на Linux. Но нам интересна установка именно на FreeBSD.
Приступим.
Для своей работы GreenSQL требует следующее программное обеспечение:
- bison
- libevent
- pcre
- mysql51-client
Для установки воспользуйтесь командой pkg_add -vr <ПО>.
Следующим шагом будет скачивание исходных текстов. Самое свежее находится на официальном svn.
svn co https://greensql.svn.sourceforge.net/svnroot/greensql greensql
Возможно, потребуется установка клиента для скачивания - pkg_add -vr subversion
После того, как исходный код скачался, приступим к внесению изменений в файлы. На момент написания статьи актуальная версия на svn - 688.
Все действия будут происходить из поддиректории greensql.new/trunk/greensql-fw/
1. В файле src/lib/Makefile заменяем:
CXXFLAGS:=-g -Wall -I/usr/local/include/
MYSQL_INC:=-I/usr/include/mysql/ -I/usr/local/include/mysql/
MYSQL_LIBS:=-L/usr/lib64/mysql -L/usr/local/lib/mysql -L/usr/lib/mysql -lmysqlclient
PGSQL_INC:=-I/usr/include/postgresql -I/usr/include/pgsql/
PGSQL_LIBS:=-lpq
на
CXXFLAGS:=-g -Wall -I/usr/local/include/
MYSQL_INC:=-I/usr/local/include/mysql/ -I/usr/local/include/mysql/
MYSQL_LIBS:=-L/usr/lib64/mysql -L/usr/local/lib/mysql -L/usr/local/lib/mysql -lmysqlclient
PGSQL_INC:=-I/usr/local/include/postgresql -I/usr/include/pgsql/
PGSQL_LIBS:=-L/usr/local/lib -lpq
2. В файле build.sh изменяем следующее:
build_bsd()
{
make clean >/dev/null 2>&1
make
cd freebsd
VIRTDIR=./usr/local
CURDIR=`pwd`
rm -rf $VIRTDIR
mkdir -p $VIRTDIR/sbin
cp ../greensql-fw $VIRTDIR/sbin/
cp ../scripts/greensql-create-db.sh $VIRTDIR/sbin/
mkdir -p $VIRTDIR/etc/greensql
cp ../conf/*.conf $VIRTDIR/etc/greensql/
mkdir -p $VIRTDIR/etc/rc.d
cp greensql-fw.sh $VIRTDIR/etc/rc.d/greensql-fw
mkdir -p $VIRTDIR/share/doc/greensql-fw
cp ../docs/greensql-mysql-db.txt $VIRTDIR/share/doc/greensql-fw/
cp ../docs/tautology.txt $VIRTDIR/share/doc/greensql-fw/
cp ../install.txt $VIRTDIR/share/doc/greensql-fw/
cp ../license.txt $VIRTDIR/share/doc/greensql-fw/
# mkdir -p $VIRTDIR/www/greensql-fw/
# cp -R ../../greensql-console/* $VIRTDIR/www/greensql-fw/
pkg_create -v -d pkg-descr -f pkg-plist -i pkg-install -S $CURDIR -p /usr/local greensql-fw.tbz
rm -rf ./usr
mv greensql-fw.tbz ../../
cd ../../
echo
echo "Package created in ../ directory !!!"
echo "Package file name is ../greensql-fw.tbz"
exit
}
на это:
build_bsd()
{
gmake clean >/dev/null 2>&1
gmake
cd freebsd
VIRTDIR=./usr/local
CURDIR=`pwd`
rm -rf $VIRTDIR
mkdir -p $VIRTDIR/sbin
mkdir -p $VIRTDIR/lib
cp ../src/lib/libgsql-mysql.so.1 $VIRTDIR/lib/
cp ../src/lib/libgsql-pgsql.so.1 $VIRTDIR/lib/
cp ../greensql-fw $VIRTDIR/sbin/
cp ../scripts/greensql-create-db.sh $VIRTDIR/sbin/
mkdir -p $VIRTDIR/etc/greensql
cp ../conf/*.conf $VIRTDIR/etc/greensql/
mkdir -p $VIRTDIR/etc/rc.d
cp greensql-fw.sh $VIRTDIR/etc/rc.d/greensql-fw
mkdir -p $VIRTDIR/share/doc/greensql-fw
cp ../docs/greensql-mysql-db.txt $VIRTDIR/share/doc/greensql-fw/
cp ../docs/tautology.txt $VIRTDIR/share/doc/greensql-fw/
cp ../install.txt $VIRTDIR/share/doc/greensql-fw/
cp ../license.txt $VIRTDIR/share/doc/greensql-fw/
mkdir -p $VIRTDIR/www/greensql-fw/
cp -R ../../greensql-console/* $VIRTDIR/www/greensql-fw/
pkg_create -v -c -comment -d pkg-descr -f pkg-plist -i pkg-install -S $CURDIR -p /usr/local greensql-fw.tbz
rm -rf ./usr
mv greensql-fw.tbz ../../
cd ../../
echo
echo "Package created in ../ directory !!!"
echo "Package file name is ../greensql-fw.tbz"
exit
}
3. В файле src/Makefile в строке LIBS:=-L/usr/local/lib -L/usr/lib -L/usr/lib64 -lpcre -levent -ldl удаляем "-ldl"
4. Приводим файл scripts/greensql-create-db.sh к виду FreeBSD - сводится к замене путей "/usr/share/" и "/etc/" на "/usr/local/share/" и "/usr/local/etc/" соответственно.
5. Файл freebsd/pkg-plist редактируем следующим образом:
перед строкой
@dirrm etc/greensql
добавляем:
lib/libgsql-mysql.so.1
lib/libgsql-pgsql.so.1
После чего запускаем сборку пакета:
Если все прошло успешно (иначе - пишите в комментарии, попробуем разобраться вместе. Где, что и как пропустил я, или вы =) то у вас появится файл greensql-fw.tbz в директории greensql/trunk.
Произведем установку: pkg_add greensql-fw.tbz
После окончания будет выведено сообщение:
Added group "greensql".
Added user "greensql".
Enabling log rotation for /var/log/greensql.log
GreenSQL database firewall is almost installed.
The last step is to configure database.
Just run the following script:
/usr/local/sbin/greensql-create-db.sh
Оно говорит о следующем: Создана группа и пользователь greensql, файлу /var/log/greensql.log требуется включить ротацию (на свое усмотрение). И самое интересное - для создания базы данных следует запустить скрипт /usr/local/sbin/greensql-create-db.sh
В скрипте все сводится к тому, что в интерактивном режиме выводятся вопросы, на которые следует адекватно ответить. После чего база будет создана.
В конфигурационном файле Apache добавляем:
Alias /greensql /usr/local/www/greensql-fw/
<Directory /usr/local/www/greensq-fwl>
AllowOverride All
RemoveHandler .php
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/local/www/greensql-fw:/usr/local/etc/greensql:/tmp:.:..:./:../
php_admin_value upload_tmp_dir /tmp
php_admin_value include_path /usr/local/etc/greensql:.:..
php_admin_value session.save_path /tmp
php_admin_value safe_mode off
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
И перезапускаем его:
- /usr/local/etc/rc.d/apache22 restart
После чего выполняем команду chmod 0777 /usr/local/www/greensql-fw/templates_c и заходим по адресу http://IP/greensql/ с указанными при запуске скрипта /usr/local/sbin/greensql-create-db.sh авторизационными данными.
Вот и все.
Если возникнут вопросы или затруднения в процессе установки - всегда к вашим услугам в комментариях или электронной почте.
Благодарности за помощь уходят в сторону reonaydo.
Зачем ты пропагандируешь
Зачем ты пропагандируешь неправоверный вэй pkg_add? юзать надо порты!
И да - у тебя, по умолчанию капча не показывается, приходится тыкать отправить ,потом вводить капчу, потом - опять отправить
Чем он не правоверен? Линуксы
Чем он не правоверен? Линуксы все давно =) пакетами пользуются и не пукают.
В данном примере рассматривается установка ПО. А каким методом оно будет устанавливаться решать уже тем, кто устанавливает. На маломощных сервачках и ВДС-ках предпочтительно использовать именно пакеты - быстрей и не так ресурсоемко.
Все правильно работает =
Все правильно работает =)
Mollom, если сомневается в спам/не спам - предлагает ввести капчу.
Добавить комментарий