<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oliver Pifferi &#187; mysql</title>
	<atom:link href="http://www.oliver-pifferi.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oliver-pifferi.com</link>
	<description></description>
	<lastBuildDate>Wed, 18 Jan 2012 20:42:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GreenSQL &#8211; Implementierung einer SQL-Firewall</title>
		<link>http://www.oliver-pifferi.com/2010/02/greensql-implementierung-einer-sql-firewall/</link>
		<comments>http://www.oliver-pifferi.com/2010/02/greensql-implementierung-einer-sql-firewall/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:44:45 +0000</pubDate>
		<dc:creator>Oliver Pifferi</dc:creator>
				<category><![CDATA[Techblog]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[kompilieren]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rhino]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://rttheme10.templatemints.com/?p=97</guid>
		<description><![CDATA[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...]]></description>
			<content:encoded><![CDATA[<p>SQL-Injections &#8211; 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 <a title="GreenSQL" href="http://www.greensql.net" target="_blank">GreenSQL-Projekt</a> 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.<span id="more-97"></span></p>
<p>Grundlegend hat GreenSQL vier Betriebsmodi, die sich wie folgt aufschlüsseln und bereits viel über die Einsatzzwecke- und Möglichkieten der Software offenbaren:</p>
<ul>
<li>Simulations-Modus (Intrusion Detection System)</li>
<li>Sperre verdächtiger Abfragen (Intrusion Prevention System)</li>
<li>Lern-Modus</li>
<li>Datenbank-Firewall</li>
</ul>
<p>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.</p>
<p>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 &#8211; sofern möglich &#8211; 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 &#8220;Skip Registration&#8221; übersprungen werden.</p>
<p>Gehen wir also vom aktuellen Quellcode aus, so führt <a title="GreenSQL 1.2.2" href="http://www.greensql.net/download/get?os=Source_Code&amp;platform=Any&amp;filename=greensql-fw-1.2.2.tar.gz" target="_blank">dieser</a> Link zum Ziel. Wie üblich speichern wir das Archiv unter /usr/local und entpacken dies durch Eingabe von</p>
<blockquote><p>&#8220;tar zxvf greensql-fw-1.2.2.tar.gz&#8221;.</p></blockquote>
<p>Anschliessend wechseln wir durch Eingabe von</p>
<blockquote><p>&#8220;cd /usr/local/greensql-fw-1.2.2&#8243;</p></blockquote>
<p>in das just entpackte Verzeichnis  und werfen den Kompilierungsvorgang durch schlichte Eingabe des Befehls</p>
<blockquote><p>&#8220;./build.sh&#8221;</p></blockquote>
<p>an.</p>
<p>Werden jetzt diverse Fehler ausgegeben, so fehlen der Applikation diverse Bibliotheken &#8211; in meinem Fall (Testsystem: openSUSE 11.2) waren das die Komponenten &#8220;flex&#8221;, &#8220;bison&#8221;, &#8220;postgresql-develop&#8221;, &#8220;pcre-devel&#8221;, &#8220;libmysqlclient-devel&#8221; und &#8220;libevent-devel&#8221;. Diese schlüsselt die Installationsroutine wunderbar auf und nachdem diese nachinstalliert wurden, sollte auch der &#8220;make&#8221;-Befehl &#8211; sprich: Der eigentliche Kompilierungsvorgang &#8211; 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.</p>
<p>Dieses Paket lässt sich nun durch Eingabe von</p>
<blockquote><p>&#8220;rpm -i /usr/src/packages/RPMS/i586/greensql-fw-1.2.2-1.i586.rpm&#8221;</p></blockquote>
<p>installieren &#8211; nun teilt uns das frisch installierte Paket mit, das wir die Konfigurationsroutine unter</p>
<blockquote><p>&#8220;/usr/sbin/greensql-config&#8221;</p></blockquote>
<p>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 &#8220;greensql.conf&#8221; im Verzeichnis /etc/greensql erstellt.</p>
<p>Nachdem auch dieser Schritt abgeschlossen ist, können wir GreenSQL per Eingabe von</p>
<blockquote><p>&#8220;/etc/init.d/greensql-fw start&#8221;</p></blockquote>
<p>starten &#8211; der Startvorgang sollte problemlos vonstatten gehen &#8211; überprüfen lässt sich dies freilich in der Logdatei /var/log/greensql.log.</p>
<p>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</p>
<blockquote><p>&#8220;Include /etc/greensql/greensql-apache.conf&#8221;</p></blockquote>
<p>sowie in besagter Datei die Einträge</p>
<blockquote><p>&lt;IfModule mod_alias.c&gt;<br />
Alias /greensql &#8220;/usr/share/greensql-fw&#8221;<br />
&lt;/IfModule&gt;</p></blockquote>
<p>aktivieren &#8211; sprich: Die Raute (&#8220;Lattenkreuz&#8221;) vor diesen drei Zeilen löschen. Dann gilt es noch, der Anwendung volle Schreibrechte in das Cacheverzeichnis zu geben &#8211; dies geschieht durch Eingabe von</p>
<blockquote><p>&#8220;chmod 0777 /usr/share/greensql-fw/templates_c&#8221;.</p></blockquote>
<p>Voila, nun könnt Ihr Euch über Euren Browser (http://&lt;IPEuresSystems&gt;/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 &#8220;admin&#8221; mit dem Kennwort &#8220;pwd&#8221; &#8211; nach dem ersten erfolgreichen Einloggen finde ich es &#8211; sofern noch nicht geschehen &#8211; obligatorisch, diese Daten dringendst zu ändern &#8211; aber das versteht sich ja von selbst, oder?</p>
<p>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: &#8220;Proxying&#8221;) aktiv. Die weitere Konfiguration der Anwendung überlasse ich nun &#8211; wo das Programm an sich problemlos funktioniert &#8211; einmal Euch, denn hier würde ich in diesem installationsfokussierten Tutorial ein, zwei Schritte zu tief in den anwenderspezifischen Bereich eindringen &#8211; 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!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliver-pifferi.com/2010/02/greensql-implementierung-einer-sql-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; Kompilieren eigener Binaries</title>
		<link>http://www.oliver-pifferi.com/2010/01/mysql-kompilieren-eigener-binaries/</link>
		<comments>http://www.oliver-pifferi.com/2010/01/mysql-kompilieren-eigener-binaries/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 00:00:30 +0000</pubDate>
		<dc:creator>Oliver Pifferi</dc:creator>
				<category><![CDATA[Techblog]]></category>
		<category><![CDATA[datenbank]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[kompilieren]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://rttheme10.templatemints.com/?p=1</guid>
		<description><![CDATA[MySQL hat sich über die Jahre zu einer DER Datenbanken schlechthin entwickelt - die große Portabilität zwischen verschiedenen Systemen, die Stabilität und Flexibilität sowie die unschlagbare Geschwindigkeit haben dieser Datenbank im Laufe der Zeit zu einem hervorragenden Ruf verholfen...]]></description>
			<content:encoded><![CDATA[<p>MySQL hat sich über die Jahre zu einer DER Datenbanken schlechthin entwickelt &#8211; die große Portabilität zwischen verschiedenen Systemen, die Stabilität und Flexibilität sowie die unschlagbare Geschwindigkeit haben dieser Datenbank im Laufe der Zeit zu einem hervorragenden Ruf verholfen.</p>
<p>Es ist also an der Zeit, sich einmal intensiver mit dem Thema &#8220;MySQL&#8221; beschäftigten und nachdem ich im Laufe der letzten Jahre verschiedene Distributionen mit vorkompilierten Binaries getestet habe, kam irgendwann der Zeitpunkt, wo ich MySQL speziell an mein System anpassen und auch nicht mehr mit der mitgelieferten Version Vorlieb nehmen wollte.</p>
<p>Fazit : Der Quellcode musste her, ein wenig Wissen musste angelesen werden und als Resultat erhielt ich letztendlich dann die speziell auf mein jeweiliges System angepasste Version von MySQL.</p>
<p>Als erstes sollte sich der geneigte Linux-User daher das Source-Package von http://www.mysql.com besorgen, im Falle dieses Workshops hieß die aktuelle Version &#8220;mysql-5.1.42.tar.gz&#8221; und stellte den blanken Sourcecode dar. Dieser ist mit dem Kommando</p>
<blockquote><p>&#8220;tar zxvf mysql-5.1.42.tar.gz&#8221;</p></blockquote>
<p>zu entpacken.</p>
<p>Wechselt nun in das neu enstandene Verzeichnis &#8220;mysql-5.1.42.tar.gz&#8221;. Nun muß erstmal der Standard-MySQL-User und die Standardgruppe angelegt werden. Dies geschieht durch Eingabe der folgenden Kommandos :</p>
<blockquote><p>&#8220;groupadd mysql&#8221; und<br />
&#8220;useradd -g mysql mysql&#8221;</p></blockquote>
<p>Anschließend müsst Ihr erst einmal das &#8220;Configure&#8221;-Skript ablaufen lassen, das Eure Systemumgebung prüft und aus dem Ergebnis das Makefile generiert. Werden hier Fehler ausgegeben, müssen über die jeweiligen Paketmanager oder manuell die fehlenden Module- bzw. Bibliotheken nachinstalliert werden. Wollt Ihr Eure MySQL-Version also beispielsweise unter &#8220;/usr/local/mysql&#8221; installieren, so gilt folgende Eingabe :</p>
<blockquote><p>&#8220;./configure &#8211;prefix=/usr/local/mysql&#8221;</p></blockquote>
<p>Dies sollte im Normalfall (von dem ich jetzt hier einfach einmal ausgehe) problemlos vonstatten gehen (meine Tests fanden bei älteren MySQL-Distributionen unter anderem auf Debian 2.1, Red Hat 6.2 &amp; 7.0 sowie SuSE 7.2, alle Versuche, den aktuellen 5&#8242;er Stamm der Open Source-Datenbank zu erstellen unter SuSE  11.2 statt), weswegen ihr anschließend das eigentliche Kompilieren in Angriff nehmen könnt. Tippt also</p>
<blockquote><p>&#8220;make&#8221; und<br />
&#8220;make install&#8221;</p></blockquote>
<p>und fertig sind eure eigenen, selbstkompilierten MySQL-Binaries &#8211; vorausgesetzt, Compiler und die notwendigen Bibliotheken sind installiert. Falls nicht, gilt auch hier: Nachinstallieren!</p>
<p>Ihr könnt nun die MySQL-Standarddatenbank, in der unter anderem die Benutzer verwaltet werden, durch die Eingabe von</p>
<blockquote><p>&#8220;scripts/mysql_install_db&#8221;</p></blockquote>
<p>erstellen.</p>
<p>Nun müssen noch die jeweiligen Benutzerrechte auf das &#8220;mysql&#8221;-Verzeichnis und die darunterliegenden Pfade gesetzt werden. Dies geschieht durch die folgenden Befehle :</p>
<blockquote><p>&#8220;chown -R root /usr/local/mysql&#8221;,<br />
&#8220;chown -R mysql /usr/local/mysql/var&#8221; und<br />
&#8220;chgrp -R mysql /usr/local/mysql&#8221;.</p></blockquote>
<p>Nun sind wir fast am Ende &#8211; als vorletzten Punkt müssen wir nur noch ein Standard-Konfigurationsfile in das &#8220;/etc&#8221;-Verzeichnis unseres Linux-Systems kopieren. Als Standard nimmt man die vordefinierte Konfigurationsdatei &#8220;my-medium.cnf&#8221;, die für ziemlich alle Plattformen den besten Kompromiss bietet. Natürlich stehen für langsamere oder auch High-End-Rechner ebenfalls Musterkonfiguration zur Verfügung, aber wir wählen auf unserem Testsystem (Core2Duo-CPU 2,53 GHz, 4 GB RAM) einfach mal die Medium-Datei. Gebt also folgendes Kommando ein, während ihr euch noch im Sourcepfad befindet :</p>
<blockquote><p>&#8220;cp support-files/my-medium.cnf /etc/my.cnf&#8221;</p></blockquote>
<p>Damit habt ihr die Hürde der ersten eigenen MySQL-Installation bereits genommen. Startet nun &#8220;euer&#8221; Werk durch Eingabe von</p>
<blockquote><p>&#8220;/usr/local/mysql/bin/mysqld_safe &#8211;user=mysql &amp;&#8221;</p></blockquote>
<p>und die Datenbank läuft. Wollt ihr es euch dann noch ganz einfach machen, kopiert die die Datei &#8220;mysql.server.sh&#8221; in euer &#8220;/etc/init.d&#8221;-Verzeichnis</p>
<blockquote><p>(&#8220;cp support-files/mysql.server.sh /etc/init.d/mysql&#8221;),</p></blockquote>
<p>paßt sie gegebenenfalls an Euer System an und macht das Skript durch die Eingabe von</p>
<blockquote><p>&#8220;chmod +x /etc/init.d/mysql&#8221;</p></blockquote>
<p>ausführbar.</p>
<p>Anschliessend teilen wir dem System mit, das in den Standardrunleveln 2, 3, 4 und 5 das MySQL-Startskript abgearbeitet werden soll. Das geschieht einmalig durch Eingabe des Befehls</p>
<blockquote><p>&#8220;/sbin/chkconfig -add mysql&#8221;.</p></blockquote>
<p>Nun wird euer MySQL-Dämon bei jedem Neustart des Systems automatisch mitgestartet, sofern Ihr die oben genannte Datei noch per Editor (vi etc.) in den Variablen &#8220;basedir&#8221; und &#8220;datadir&#8221; wie folgt anpasst (angelehnt an unsere Standardinstallationspfade):</p>
<blockquote><p>&#8220;basedir=/usr/local/mysql<br />
datadir=/usr/local/mysql/var&#8221;</p></blockquote>
<p>Was nun noch geändert werden sollte, nachdem der Dämon läuft ist &#8211; selbstverständlich &#8211; das leere Standardkennwort für den MySQL-Root-Benutzer. Dies geschieht durch Eingabe von</p>
<blockquote><p>&#8220;/usr/local/mysql/bin/mysql -u root -p&#8221;</p></blockquote>
<p>Nach Drücken der &#8220;Enter&#8221;-Taste (schliesslich ist das aktuelle Kennwort eigentlich noch gar keins) befindet Ihr Euch dann auf der MySQL-Konsole. Nun kann durch Eingabe des Befehls</p>
<blockquote><p>&#8220;set password=password(&#8220;neues passwort&#8221;);&#8221;</p></blockquote>
<p>das neue Kennwort (bitte entsprechend und selbstverständlich den Tag &#8220;neues passwort&#8221; ersetzen!) gesetzt werden. Durch die Eingabe des Befehls &#8220;exit&#8221; gelangt Ihr dann wieder auf die Linux-Shell.</p>
<p>So, ich denke mal, das sollte für den ersten Einstieg in die Installation einer MySQL-Datenbank gereicht haben und ich hoffe, das dieser Workshop auch einigermaßen verständlich aufgebaut ist &#8211; falls nicht, bin ich immer für irgendwelche Verbesserungsvorschläge, Fragen, Anregungen aber auch Kritik immer empfänglich ! Denkt immer dran, das dies ein kleiner Schritt in das Kompilieren von MySQL-Binaries ist und erst einmal eine funktionsfähige Datenbankstruktur liefert. Wer mehr benötigt, kann den anfänglichen &#8220;configure&#8221;-Befehl entsprechend anpassen und so all die Module einkompilieren, die in diesem Standard-Tutorial aus Zeit- und Platzgründen unerwähnt blieben.</p>
<p>Die hier angegeben Pfade müssen sich natürlich nicht mit euren Einstellungen decken und wenn ihr zum Beispiel alle Binärdateien oder Datenbanken in andere Verzeichnisse installieren wollt, empfehle ich die Option</p>
<blockquote><p>&#8220;./configure -help&#8221; ,</p></blockquote>
<p>wo wirklich jede kleinste Option für eure persönliche Installation genauestens dokumentiert ist. Als kleine Notiz am Rande sei angemerkt, das dieses Tutorial in dieser Form bereits seit MySQL 3.23.42 besteht, sich über all die Monate und Jahre in der eigentlichen Grundinstallationsroutine keine nennenswerten Änderungen ergeben haben &#8211; zumindest nicht für die blanke Grundinstallation!</p>
<p>Zuguterletzt hier noch die URL&#8217;s zu zwei Tools, mit denen sich die Verwaltung eurer MySQL-Datenbank zu einem Kinderspiel entwickelt :</p>
<p>Webmin : <a title="http://www.webmin.com" href="http://www.webmin.com" target="_blank">http://www.webmin.com</a></p>
<p>phpMyAdmin : <a title="http://www.phpmyadmin.net" href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliver-pifferi.com/2010/01/mysql-kompilieren-eigener-binaries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

