SASA DESIGN

Open Your mind, Open Your Source Code!

Превенция на MySQL инжекция атаки с GreenSQL на Debian Etch

27 октомври, 2008 – 7:04 am
Mysql
GreenSQL (или greensql-fw) е защитната стена на MySQL бази данни, за филтриране на SQL инжекция атаки. Той работи като reverse proxy. Взима Mysql заявките, проверява и ги предава на Mysql база данни и доставя обратно резултатите от MySQL база данни. Идва с уеб интерфейс (наричан greensql-console) така че да можете да управлявате GreenSQL през уеб браузър.

Това ръководство показва как можете да инсталирате GreenSQL и уеб интерфейса на Debian Etch сървър.

Не давам никакви гаранции, че това ще работи при вас!

1 Предварителна забележка

Това е тестван на Debian Etch сървър с вече инсталиран Apache и MySQL. Използван е виртуалния хост www.example.com с root /var/www/web1/web за инсталация на GreenSQL уеб интерфейс.

2 Инсталиране на greensql-fw

GreenSQL Проектът предвижда бинарен пакет за Debian Etch на http://www.greensql.net/public/releases/Debian_Etch/ (за различни дистрибуции може да немрите пакети на http://www.greensql.net/public/releases/)

Изтеглете и инсталирайте .deb пакета като:

cd /tmp
wget http://www.greensql.net/public/releases/Debian_Etch/i386/greensql-fw_0.9.2_i386.deb
dpkg -i greensql-fw_0.9.2_i386.deb

(това е за i386 система)
Ще видите следните въпроси:

What is the name of the server used to store GreenSQL configuration db (MySQL server)? <– localhost
What is the database name for the GreenSQL configuration? <– greendb
Would you like to set up the database and tables automatically? <– Yes
What is the username of the MySQL administrator? <– root
Enter the MySQL administrator password <– yourrootsqlpassword (replace this with your root MySQL password)
Confirm this password <– yourrootsqlpassword (replace this with your root MySQL password)
What is the GreenSQL db username? <– green
What is the GreenSQL user password? <– greensqlpassword (replace this with a password of your choice for the green MySQL user)

След инсталацията greensql-fw ще работи на адрес 127.0.0.1 с порт 3305 (по подразбиране MySQL порт е 3306). Можете да проверите:

netstat -tap | grep greensql

server1:~# netstat -tap | grep greensql
tcp 0 0 localhost.localdom:3305 *:* LISTEN 4499/greensql-fw
server1:~#

За да проверите дали greensql-fw работи добре, можете да опитате да се свържете с MySQL чрез GreenSQL proxy:

mysql -h 127.0.0.1 -P 3305 -u root -p

Въведете вашата MySQL root парола и би трябвало да сте логнати. greensql-fw вече е готов за работа.
Ако искате вашата уеб апликация да се свърже с MySQL чрез greensql-fw, вие трябва да промените техните MySQL настройки. Например ако имате PHP апликация с следващите редове (пр. config.php)…

[...]
$link = mysql_connect(‘localhost’, ‘mysql_user’, ‘mysql_password’);
[...]

… трябва да я смените с

[...]
$link = mysql_connect(’127.0.0.1:3305′, ‘mysql_user’, ‘mysql_password’);
[...]

3 Инсталиране на greensql-console

GreenSQL уеб интерфейс (greensql-console) може да се изтегли от http://sourceforge.net/project/showfiles.php?group_id=199511&package_id=236915
. За инсталация в /var/www/web1/web ще процедира по следния начин:

cd /var/www/web1/web
wget http://heanet.dl.sourceforge.net/sourceforge/greensql/greensql-console-0.4.2.tar.gz
tar xvfz greensql-console-0.4.2.tar.gz

Това създава поддиректория greensql-console в /var/www/web1/web. Сега трябва да коригираме greensql-console конфигурацията:

cd greensql-console
vi config.php

В config.php, уверете се, че правилно сте попълвали паролата за green MySQL потребител (в ред $db_pass):

<?

# Uncomment the following line to switch to demo version
#$demo_version = 1;

# greensql version
$version = "0.4.0";

# MySQL Database IP address
$db_host = "127.0.0.1";

#MySQL Database Port Value.
$db_port = 3306;

# MySQL database name used to store greensql confiuration and alerts
$db_name = "greendb";

# MySQL database user and password
$db_user = "green";
$db_pass = "greensqlpassword";

# If you run greensql-fw service on the same computer you can specify
# location of it's log file. It will be visible as part of the console.
$log_file = "/var/log/greensql.log";

# Number of lines to show when viewing log file.
$num_log_lines = 200;

# Generated web pages cache
$cache_dir = "templates_c";

?>

После направете templates_c/ директорията writable:

chmod 777 templates_c/

Отворете браузъра и отидете на http://www.example.com/greensql-console. Логнете се с потребител admin и парола pwd:
login
В GreenSQL уеб интерфейс, сега можете да видите кои MySQL запитвания са блокирани и с какъв рейтинг, за които можете да направите whitelist като казвате на greensql-fw какво да блокира и какво да разрешава за всяка отделна база данни. И да не забравите да промените паролата за admin потребителя.
fw
Стартиране и спиране на greensql-fw

/etc/init.d/greensql-fw stop
/etc/init.d/greensql-fw start

И може да намерите GreenSQL log в /var/log/greensql.log.

4 Връзки

Напиши коментар