防止MySQL注入攻击与GreenSQL在Debian蚀刻

在Debian Etch上防止使用GreenSQL进行MySQL注入攻击

版本1.0
作者:Falko Timme

GreenSQL (或greensql-fw )是用于过滤SQL注入攻击的MySQL数据库的防火墙。 它作为反向代理,即它需要SQL查询,检查它们,将它们传递到MySQL数据库,并从MySQL数据库返回结果。 它附带一个Web界面(称为greensql-console ),以便您可以通过Web浏览器来管理GreenSQL。 本指南介绍如何在Debian Etch服务器上安装GreenSQL及其Web界面。

我不会保证这将为您工作!

1初步说明

我已经在已经安装了MySQL和Apache的Debian Etch服务器上测试过这个。 我将使用文件root / var / www / web1 / web的虚拟主机www.example.com来安装GreenSQL Web界面。

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系统。)

您将看到以下问题:

用于存储GreenSQL配置数据库(MySQL服务器)的服务器的名称是什么? < - localhost
什么是GreenSQL配置的数据库名称? < - greendb
您要自动设置数据库和表吗? < - 是的
什么是MySQL管理员的用户名? < - 根
输入MySQL管理员密码 < - yourrootsqlpassword(将其替换为您的根MySQL密码)
确认此密码 < - yourrootsqlpassword(将其替换为您的根MySQL密码)
什么是GreenSQL数据库用户名? < - 绿色
什么是GreenSQL用户密码? < - greensqlpassword(将其替换为您选择的绿色MySQL用户的密码)

安装后,greensql-fw将在端口3305上运行127.0.0.1 (默认的MySQL端口为3306 )。 您可以通过运行来检查

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

要测试greensql-fw是否正常工作,您可以尝试通过GreenSQL代理连接到MySQL:

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

输入您的MySQL根密码,您应该登录。现在可以使用greensql-fw

如果您希望Web应用程序通过greensql-fw连接到MySQL,则必须更改其MySQL设置。 例如,如果您的PHP应用程序在其配置文件(例如config.php)中包含以下行:...

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

...把它改成

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

(重要的是连接到127.0.0.1而不是本地主机 ,因为greensql-fw支持TCP连接,而不支持Unix套接字!)

3安装greensql-console

GreenSQL Web界面( 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

这将在/ var / www / web1 / web中创建子目录greensql-console 。 接下来我们必须调整greensql-console配置:

cd greensql-console
vi config.php

config.php中 ,确保您填写了绿色 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 /目录world-writable:

chmod 777 templates_c/

打开浏览器并转到http://www.example.com/greensql-console 。 用用户名admin和密码pwd登录:

在GreenSQL Web界面中,您现在可以看到哪些MySQL查询被阻止,并且可以使用什么分数,您可以将MySQL查询列入白名单,告诉greensql-fw要阻止的内容以及每个数据库允许的内容,观察日志或更改管理密码对于GreenSQL的Web界面:

如果要更改greensql-fw为某些测试分配的点,可以通过修改greensql-fw配置文件/etc/greensql/greensql.conf来实现 。 更改文件后,必须重新启动greensql-fw

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

重启命令在我的系统上不起作用,似乎挂起来了)

您可以在/var/log/greensql.log中找到GreenSQL日志。

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏