Remote Zugriff auf MySQL-Datenbank

xadoX

New Member
Hey Leute,

hab bei 1blu einen vServer L.
Zum Einsatz kommt dort Plesk Panel 9.5.
Ich habe dort eine Datenbank "test_".

Im phpMyAdmin-Bereich habe ich einen User "testuser" und dessen Host auf "%" und die globalen Rechte auf "ALL PRIVILEGES" gesetzt.

Wenn ich jetzt versuche via telnet auf meine IPAdresse (88.84.153.166) und Port 3306 zuzugreifen bekomme ich folgende Fehlermeldung:

"Connection closed by remote host"

Für mich bedeutet das, dass der Datenbankserver gar nicht auf Port 3306 horcht.
Oder liegt ich da falsch?

Wäre über jegliche Hilfe dankbar :)

Gruß
 
Bei mir gehts. Hast du IP-Port korrekt in Telnet mittels "telnet 88.84.153.166 3306" angegeben?
 
Bist du des Wahnsinns?

Du kommunizierst mit MySQL über eine unverschlüsselte Verbindung!

Ich geb dir einen Denkanstoß: SSH Tunnel via PuTTY oder OpenVPN / PPTP VPN.

PS: Ich war vor 2 Monaten auf dem selben Node ;) (Meine damalige IP: 88.84.153.167)
 
Es ist ein potentielles Sicherheitsproblem da es nur durch jemanden mit Zugriff auf die entsprechenden Netzbereiche durch welche die Daten fliessen ausgelesen werde kann und nicht von einem Scriptkiddy irgendwo auf dem Globus.
Als "wahnsinnig" wuerde ich eine remote-Connection nicht beschreiben auch wenn ein Superuser mit freier Hostwahl doch nicht so ganz das Wahre ist ;)
 
Ok, bei mir klappts auch, Verbindung wird zwar immer nach einigen wenigen Sekunden wieder geschlossen, aber ok.

Bzgl. des Sicherheitsaspekts. Was könnt ihr mir da raten? Was soll ich ändern?

Der testuser hat btw. nur auf einer Testdatenbank die globalen Rechte auf "ALL PRIVILEGES"
 
Last edited by a moderator:
Es ist ein potentielles Sicherheitsproblem da es nur durch jemanden mit Zugriff auf die entsprechenden Netzbereiche durch welche die Daten fliessen ausgelesen werde kann und nicht von einem Scriptkiddy irgendwo auf dem Globus.
Als "wahnsinnig" wuerde ich eine remote-Connection nicht beschreiben auch wenn ein Superuser mit freier Hostwahl doch nicht so ganz das Wahre ist ;)

Das denke ich ist Ansichtssache :rolleyes:

Ich bin eben etwas paranoid.
 
Ja, aber das Passwort wird unverschlüsselt übertragen, kann also evtl. abgehört werden. Dagegen hilft in der Tat ein SSH-Tunnel oder eine VPN-Verbindung - und wenn MySQL keinen offenen Port ins Internet hat, besteht auch deutlich weniger Angriffsfläche bei einer Lücke im MySQL-Server.
 
http://www.fedorawiki.de/index.php/SSH-Tunnel

3. Treffer bei einer bekannten Suchmaschiene mit "ssh tunnel"

Der wirklich saubere Weg wäre, die Datenbank nicht ins Netz zu öffnen und eine API für das Abfragen der Daten zu basteln, z.B. per REST oder SOAP. Das ganze dann per https anbieten und alles ist sauber. Damit stellst du sicher, dass niemand frei in die Datenbank fassen kann.
 
Das ganze dann per https anbieten und alles ist sauber. Damit stellst du sicher, dass niemand frei in die Datenbank fassen kann.
Du gehst davon aus dass der Code sauber ist. Es ist verrueckt wieviele (zumal Skriptsprachen-basierte) Schnittstellen zB bei PHP verify_peer auf Off und allow_self_signed auf On stellen sowie jedgliche andere Zertifikatueberpruefung wie CN_match und cafile ueberspringen.
Somit hast du also keine Sicherheit da jedgliche Man-in-the-middle mit selbstsignierten Keys problemlos laufen.
 
Mach den ganze Unsinn doch bitte rückgängig und verwende z.B. einfach Navicat Lite. Das gibt es hier kostenlos zum Download:

http://www.navicat.de/download/download.html

Das hat SSH-Tunneling bereits mit dabei und bietet dir funktional genau das, was du scheinbar suchst. Remotezugriff auf deine Datenbank, aber auf einem relativ sicheren Weg.
 
Ich entwickle momentan ein System in Java, welches auf die Datenbank zugreifen muss. Wüßte nicht wie ich Navicat Lite da einbauen könnte.

Gibt es keine ganz simple und schnell umsetzbare Lösung?
Das ganze ist für eine Bachelor-Arbeit und sollte eigentlich nur einen kleinen Teil einnehmen.
 
Ok, dann habe ich da was falsch verstanden.

Wenn das ein standalone Java-Client ist, dann könntest du z.B. auch eine JSP-Seite (wenn die in der Java-Welt bleiben möchtest) auf deinem Server laufen lassen, die die ganzen DB-spezifischen Dinge für dich tut und die du dann über deinen Client aufrufst (via https). Oder du realisierst das ganze, wie bereits mehrfach angesprochen, via SSH-Tunneling. Mit etwas Eigeninitiative finden sich dazu auch passende Code-Schnipsel im Internet und in der Javadoc soll darüber auch etwas stehen, habe ich mir sagen lassen. ;)

http://www.example-code.com/java/sshTunnel_database.asp
 
Last edited by a moderator:
Gerade in der Java-Welt wird sich doch etwas finden, um ein Daten-Backend per API (SOAP, XML-RPC, ...) verfügbar zu machen.
 
Back
Top