• Homepage
  • >
  • Blog
  • >
  • GreenSQL – Implementierung einer SQL-Firewall

GreenSQL – Implementierung einer SQL-Firewall

SQL-Injections – also verdächtige SQL-Anfragen mit dem Ziel, eine Datenbank zu kompromittieren, sind eine der stetig zunehmenden Gefahren in Bezug auf die Sicherheit von Web-, Mail- und Datenbankservern. Waren die erstgenannten bisher das erste Ziel von Angriffen, so konnte man in den letzten Monaten beobachten, das auch Datenbanken immer häufiger Attacken von aussen ausgesetzt waren. Das GreenSQL-Projekt hat es sich zur Aufgabe gemacht, eine Firewallapplikation für MySQL- und PostgreSQL-Datenbank zu entwickeln, über deren serverseitige Implementierung ich an dieser Stelle in Form eines Tutorials einmal berichten möchte.

Grundlegend hat GreenSQL vier Betriebsmodi, die sich wie folgt aufschlüsseln und bereits viel über die Einsatzzwecke- und Möglichkieten der Software offenbaren:

  • Simulations-Modus (Intrusion Detection System)
  • Sperre verdächtiger Abfragen (Intrusion Prevention System)
  • Lern-Modus
  • Datenbank-Firewall

Auf die einzelnen Funktionen gehe ich an dieser Stelle nur stichpunktartig ein, da das Kompilieren und die damit verbundene grundsätzliche Funktion von GreenSQL im Vordergrund stehen, die Anwendungsebene bleibt dann dem Benutzer selbst überlassen, nachdem er dieses Tutorial durchgearbeitet hat.

Wie bei bisherigen Tutorials dieser Art haben wir grundsätzlich die Auswahl zwischen vorkompilierten und distributionsspezifischen RPM-Dateien oder aber dem Quellcode, den ich aus Gründen der eigenen Systemanpassung – sofern möglich – stets vorziehe. Die einzelnen Pakete können vorab unter http://www.greensql.net/download heruntergeladen werden, eine Registrierung ist nicht erforderlich (hilft den Autoren aber sicherlich!) und kann auf Wunsch durch Klicken auf die Option „Skip Registration“ übersprungen werden.

Gehen wir also vom aktuellen Quellcode aus, so führt dieser Link zum Ziel. Wie üblich speichern wir das Archiv unter /usr/local und entpacken dies durch Eingabe von

„tar zxvf greensql-fw-1.2.2.tar.gz“.

Anschliessend wechseln wir durch Eingabe von

„cd /usr/local/greensql-fw-1.2.2“

in das just entpackte Verzeichnis  und werfen den Kompilierungsvorgang durch schlichte Eingabe des Befehls

„./build.sh“

an.

Werden jetzt diverse Fehler ausgegeben, so fehlen der Applikation diverse Bibliotheken – in meinem Fall (Testsystem: openSUSE 11.2) waren das die Komponenten „flex“, „bison“, „postgresql-develop“, „pcre-devel“, „libmysqlclient-devel“ und „libevent-devel“. Diese schlüsselt die Installationsroutine wunderbar auf und nachdem diese nachinstalliert wurden, sollte auch der „make“-Befehl – sprich: Der eigentliche Kompilierungsvorgang – problemlos durchlaufen. Nun haben wir auf unserem Zielsystem ein neues RPM, wie zum Beispiel unter /usr/src/packages/RPMS/i586/greensql-fw-1.2.2-1.i586.rpm.

Dieses Paket lässt sich nun durch Eingabe von

„rpm -i /usr/src/packages/RPMS/i586/greensql-fw-1.2.2-1.i586.rpm“

installieren – nun teilt uns das frisch installierte Paket mit, das wir die Konfigurationsroutine unter

„/usr/sbin/greensql-config“

ausführen müssen, um die finale Anpassung des Programms an die eigene Betriebsumgebung zu beenden. Das ist ganz einfach, da die Routine alle benötigten Informationen in einem gewohnten Dialog abfragt, die benötige MySQL-Datenbank samt Benutzer anlegt und die GreenSQL-Konfigurationsdatei „greensql.conf“ im Verzeichnis /etc/greensql erstellt.

Nachdem auch dieser Schritt abgeschlossen ist, können wir GreenSQL per Eingabe von

„/etc/init.d/greensql-fw start“

starten – der Startvorgang sollte problemlos vonstatten gehen – überprüfen lässt sich dies freilich in der Logdatei /var/log/greensql.log.

Um nun das Webinterface für die Verwaltung von GreenSQL in Eurer Apache-Webserverkonfiguration zu aktivieren, müsst Ihr am Ende der httpd.conf den folgenden Eintrag einfügen

„Include /etc/greensql/greensql-apache.conf“

sowie in besagter Datei die Einträge

<IfModule mod_alias.c>
Alias /greensql „/usr/share/greensql-fw“
</IfModule>

aktivieren – sprich: Die Raute („Lattenkreuz“) vor diesen drei Zeilen löschen. Dann gilt es noch, der Anwendung volle Schreibrechte in das Cacheverzeichnis zu geben – dies geschieht durch Eingabe von

„chmod 0777 /usr/share/greensql-fw/templates_c“.

Voila, nun könnt Ihr Euch über Euren Browser (http://<IPEuresSystems>/greensql) auf der Konfigurationsoberfläche von GreenSQL einloggen und anfangen, mit dieser Lösung zu arbeiten. Die Standardlogindaten (soweit nicht von Euch während des Konfigurationsvorganges geändert) sind „admin“ mit dem Kennwort „pwd“ – nach dem ersten erfolgreichen Einloggen finde ich es – sofern noch nicht geschehen – obligatorisch, diese Daten dringendst zu ändern – aber das versteht sich ja von selbst, oder?

Letztendlich gilt es dann nur noch, anstatt Eures normalen Datenbankservers mit Port 3306 (Standard) die IP und den Port (3305) des Rechners, auf dem GreenSQL läuft, anzugeben und schon ist Eure SQL-Firewallapplikation (Stichwort: „Proxying“) aktiv. Die weitere Konfiguration der Anwendung überlasse ich nun – wo das Programm an sich problemlos funktioniert – einmal Euch, denn hier würde ich in diesem installationsfokussierten Tutorial ein, zwei Schritte zu tief in den anwenderspezifischen Bereich eindringen – wer mehr dazu wissen möchte, möge mir entweder per Kommentarfunktion oder Kontaktformular ein Feedback geben oder aber die Ressourcen auf der Herstellerhomepage zu Rate ziehen!

  • facebook
  • googleplus
  • twitter
  • linkedin
  • linkedin
  • linkedin

Stolzer Familienvater. Digital Native und chronischer Device-Switcher. Multimedia-Freak. UK-Fan, auch mit Brexit. Blogger mit stets zu wenig Zeit. Hobbyphilosoph. Musik-Enthusiast. Querdenker. Zyniker. Hauptberuflicher IT-Consultant- & Vertriebler. Auch zu finden bei XING. Dieser Artikel hat einen Job oder zumindest Euren Seelenfrieden gerettet und gegebenfalls sogar für Kurzweil gesorgt? Die PayPal-Kaffeekasse freut sich - dankeschön!

  • facebook
  • twitter
  • googleplus
  • linkedIn
  • instagram
  • telegram

Kommentar verfassen