Sicherheitsfrage MySQL-Server

Cruel

New Member
Hallo alle zusamme.
Bevor ich meine Frage stelle, wollte ich mich mal kurz vorstellen da ich neu
im Forum bin. Mein Name ist Michel und ich bin 21 Jahre alt. Zur Zeit Studiere
ich Software Engineering im 3ten Semester.

Also nun zu meinem "Problem". Privat arbeite ich gerade an einer Webapplikation die mit einem MySQL-Server in verbindung steht. Da ich meistens nie nur an einem PC an dem Projekt arbeite, fällt es mir schwer das Datenbankschema also die generelle Datenbank ansich zu transportieren. Heißt also wenn ich lokal auf meinem Rechner einen MySQL-Server installiere, dann muss ich bei meinem Laptop z.B. die Dateien immer hin und her kopieren damit ich am Projekt arbeiten kann.

Um das Problem zu lösen dachte ich mir das ich einfach meinen MySQL-Server auf meinem Rootserver dazu missbrauche um dort mit der Datenbank zu arbeiten. Jedoch damit ich auf dem externen Rootserver, der 24/7 läuft, eine Datenbank verwenden kann, benötige ich externe Zugriffsrechte auf dem MySQL-Server. Das widerum ist ein hohes Sicherheitsrisiko da sich nun jeder X beliebige an meinen Server ranmachen kann. ;)

Meine Idee war nun sozusagen zwei unterschiedliche MySQL-Server-Dienste auf meinem Rootserver laufen zu lassen. Der eine sozusagen als Testserver und der andere als lauffähiger und sicherer MySQL-Server. Nur leider bin ich mir nicht genau sicher ob das so eine gute Idee ist?
Meine Frage ist also: Ist das wirklich sicher dann? Kann ein hacker durch diese Sicherheitslücke an weitere Dienste meines System gelangen? Ist das überhaupt möglich? Oder kennt jemand von Euch evtl. eine bessere Lösung für mein Problem?

Mit freundlichen Grüßen
Michel aka Cruel
 
Hallo und willkommen hier im Forum!

Ich selbst entwickle auch Webapplikationen und arbeite ebenfalls parallel an zwei Rechnern. Ich habe es so gelöst, dass ich die Entwicklungsumgebung, also die Projektdaten von Zend, den Vhost, usw. synchronisiere. Von beiden Standorten greift die Applikation auf den MySQL-Server laufend auf dem Root zu. Dort ist ein eigener MySQL User, speziell für die Entwicklung angelegt. Lediglich für diesen User (und noch andere die es zwingend benötigen) ist externer Zugriff freigegeben. Sofern du phpMyAdmin verwendest, kannst du dies ganz einfach unter dem Menüpunkt Rechte festlegen.
 
MOD: Fullquote entfernt.

Danke für Deine Antwort Andreas.
Ja so ähnlich habe ich das derzeit auch. Jedoch dieser User, der über externen Zugriff verfügt, ist nachdem was ich gelesen habe eine sehr große Sicherheitslücke. Generell den SQL-Server auf externe Zugriffe zuzulassen soll schon keine gute Idee sein. Stimmt das so oder ist das schwachsinn?

Mit freundlichen Grüßen
Michel
 
Last edited by a moderator:
wie üblich: kommt drauf an.

Wenn man es richtig macht ist ein ext. Zugriff auf MySQL kein Problem, wenn man es falsch macht, dann schon.

Alternativ: ssh-Tunnel oder VPN zwischen Client und Server aufbauen.
 
Warum ist der externe Zugriff auf MySQL überhaupt ein Problem?
Ich meine ohne Passwort kann man ja trotzdem nicht auf die DB zugreifen.
 
naja, jede nach außen verfügbare Anwendung bietet eine Chance auf den Exploit des Gesamtsystems.

... und wenn man dann noch den menschlichen Faktor einkalkuliert (DB-User hat das gleiche PW wie der ssh-User, ...) sind da schon einige kritische Szenarien denkbar. Abgesehen von dem "per default" Klartext bei SQL-Anweisungen...
 
Danke für die Antworten. Jedoch wurde leider eine meiner Fragen noch nicht ganz beantwortet.
Sofern ich bei meinem MySQL-Server ein anderes Passwort gesetzt habe als z.B. bei meinem root-login ist es nicht möglich durch einen externen Zugriff in das System zu gelangen oder?

Grüße
Michel
 
Der Witz bei solchen Sachen ist ja gerade, dass sie in der Regel vor der massenhaften Ausnutzung nicht bekannt sind.

Ich habe insgesamt drei Fehler in MySQL miterlebt, die über das Netzwerk ausnutzbar waren und dem Angreifer zumindest die Privilegien des MySQL-Systembenutzers gegeben haben. Wer sagt mir, dass es solche Fehler in der aktuellen Version nicht gibt oder in einer der kommenden Versionen eingeschleppt werden?

Wenn ich MySQL nicht unbedingt über das Netzwerk erreichen muss oder ein Tunnel zu aufwendig ist, dann binde ich den mysqld doch nicht trotzdem an ein externes Interface, auf dem jeder, der Lust hat, sich austoben kann…
 
Einige (wie ich) sehen externen MySQL-Zugang als 'durchschnittlich kritisch' an - wenn man es braucht sollte man es anschalten und benutzen, andernfalls nicht.
Andere finden (zu Recht) dass jedes Eingriffstor im Server eins zu viel ist.
Allerdings gibt es noch viele andere Dienste auf den meisten Server, es ist also nur ein Sorgenkind unter vielen und somit nicht unbedingt einer besonderen Beachtung wert.

Falls du eine statische IP hast kannst du in Iptables nur den Zugriff von dieser freigeben (oder zB ueber ein Skript immer deine aktuelle IP freigeben), respektiv mit Tunnelier ueber SSH den Port 127.0.0.1:3306 des Servers auf deinen lokalen Rechner forwarden.

Ich habe insgesamt drei Fehler in MySQL miterlebt, die über das Netzwerk ausnutzbar waren und dem Angreifer zumindest die Privilegien des MySQL-Systembenutzers gegeben haben. Wer sagt mir, dass es solche Fehler in der aktuellen Version nicht gibt oder in einer der kommenden Versionen eingeschleppt werden?
MIr kommen jetzt spontan nur Fehler welche einen eingeloggten Benutzer voraussetzen in den Sinn, nicht anonyme. Aber mein Verhalt ist auch nicht das Wahre =)
 
Back
Top