SUCKUP.de

GreenSQL – MySQL Firewall

This blog post has been published on 2010-02-14 and may be out of date.

Was ist eine MySQL Firewall und wie funktioniert dies?

GreenSQL ist eine Open-Source-Datenbank-Firewall, um Datenbanken von SQL-Injection-Attacken zu schützen. Diese arbeitet als Proxy für SQL-Kommandos und hat eine eingebaute MySQL Unterstützung. Die Logik beruht auf der Auswertung von SQL-Befehlen, mit Hilfe eines Scoring-Risiko-Matrix sowie Sperrung bekannt db Verwaltungs-Befehle.

GreenSQL arbeitet als Reverse Proxy für MySQL-Verbindungen. Dies bedeutet, dass du dich anstatt direkt mit den MySQL-Server, zuvor mit GreenSQL verbindest. GreenSQL analysiert die SQL-Abfragen und wenn sie sicher sind, werden diese an den MySQL-Server durch-gereicht.

greenSQL

HowTo: Wie installiere ich die MySQL Firewall?

1. Download der Software

Das passende Paket von dieser Webseite herunterladen:

www.greensql.net/download

2. Installiere das entsprechende Paket

Debian/Ubuntu:

sudo dpkg -i PACKAGE_NAME.deb

Redhat/Fedora/CentOS/SuSe:

rpm -ihv PACKAGE_NAME.rpm

FreeBSD:

pkg_add PACKAGE_NAME.tbz

3. Datenbank anlegen & Konfiguration anpassen

Um die Konfiguration anzupassen und die Datenbank anzulegen, führst du nun folgendes Skript aus…

/usr/sbin/greensql-create-db.sh

und nun können wie die Firewall bereits starten

/etc/init.d/greensql* restart

4. Status der Firewall testen

um die Verbindung durch den MySQL-Proxy zu testen, führen wir folgendes Kommando aus…

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

5. Webseite mit einbinden

nun wird es Zeit, unsere Webseite in das Konstrukt mit einzubinden, dafür muss die Datei, wo die Verbindungseinstellungen zu MySQL eingestellt werden editiert werden.

Folgendes sollte in eine PHP-Datei zu finden sein und muss nun nur noch angepasst werden…

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

… wird zu …

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

Wichtiger Hinweis:
Keine Verbindung zu “localhost”, verwende stattdessen immer “127.0.0.1”.