ubuntuusers.de

Remote Access auf MySQL unterbricht Verbindung zu Tomcat

Status: Ungelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

zowo

Anmeldungsdatum:
23. Oktober 2011

Beiträge: 35

Hallo!

Ich habe heute versucht mir einen Remote Access auf die MySQL-Datenbank auf meinen Ubuntu-Server einzurichten. Bin nach diesen How-TO vorgegangen und eigentlich läuft bis jz alles ganz gut. Alle Seiten auf dem Apache laufen einwandfrei und ich kann auch über externe Tools wie z.B. MySQL-Workbench auf den Server zugreifen und darauf die Datenbank administrieren.

Einziges Problem, dass dadurch jz entstanden ist, ist jenes das Tomcat anscheinend keine Verbindung zur Datenbank bzw. zum MySQL-Service mehr aufbauen kann. Wenn ich nun tinyPM aufrufe, passiert nichts. Wenn ich nun die bind-address in der Datei /etc/mysql/my.conf wieder auf localhost ändere, klappt der Zugriff auf tinyPM bzw. Tomcat wieder einwandfrei.

Hat jemand einen Tipp was ich da machen kann? Hab schon rumgegoogelt, aber ich finde kaum brauchbare Sachen zu diesem Thema.

Danke ☺

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Ja ne, wundert mich auch nicht, wenn nach dieser Anleitung nicht mehr auf 127.0.0.1 gelauscht wird, aber der Tomcat sich da hin verbinden will. Remote Access ist sowieso verpönt und bringt dir nur Sicherheitsrisiken. Mach dir ne SSH-Portweiterleitung von lokal aufn Server und du kannst aufn MySQL zugreifen ohne diesen nach außen hin zu öffnen. Des weiteren ist dann auch die Verbindung sicher verschlüsselt. Alles andere ist Schmafu.

dr.gonzo

Avatar von dr.gonzo

Anmeldungsdatum:
17. Oktober 2004

Beiträge: 252

Generell würde ich MySQL aus Sicherheitsgründen nur an localhost binden, es sei denn, man muß wirklich mit einer anderen Anwendung auf einem anderen Rechner auf die DB zugreifen (damit meine ich nicht zum Entwicklen). Sehe ich das richtig, dass das von Dir verlinkte HowTo einen Weg beschreibt, einen Telnet-Port zu öffnen? Würde ich unterlassen, Telnet ist sehr unsicher (unverschlüsselt und keine Authoriesierung erforderlich). Besser ist es, sich per SSH auf den Rechner zu verbinden und in der Konsole eine MySQL-Shell zu öffnen.

Wenn sich Dein Rechner aber "nur" in einem LAN befindet, welches vertrauenswürdig ist, kannst Du einfach die bind-address in der mysql.conf auf 0.0.0.0 setzen. In dem Fall lauscht MySQL auf allen Interfaces auf Anfragen, und von jedem Rechner aus darf zugegriffen werden. Dann sollte Tomcat und telnet funktionieren.

Auf welche Andresse stellt du denn die bind-address in der mysql.conf überhaupt, wenn Tomcat nicht mehr funktioniert?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

dr.gonzo schrieb:

Generell würde ich MySQL aus Sicherheitsgründen nur an localhost binden, es sei denn, man muß wirklich mit einer anderen Anwendung auf einem anderen Rechner auf die DB zugreifen (damit meine ich nicht zum Entwicklen). Sehe ich das richtig, dass das von Dir verlinkte HowTo einen Weg beschreibt, einen Telnet-Port zu öffnen? Würde ich unterlassen, Telnet ist sehr unsicher (unverschlüsselt und keine Authoriesierung erforderlich). Besser ist es, sich per SSH auf den Rechner zu verbinden und in der Konsole eine MySQL-Shell zu öffnen.

Ein Telnet Port wird in diesem HowTo nicht aufgemacht, da wird nur per Telnet getestet ob der Port offen ist. Aber wie gesagt, ein SSH-Tunnel ist hier das Mittel der Wahl. nicht umsonst hat auch der "MySQL Administrator" die Option eine Verbindung per SSH-Tunnel herzustellen.

Wenn sich Dein Rechner aber "nur" in einem LAN befindet, welches vertrauenswürdig ist, kannst Du einfach die bind-address in der mysql.conf auf 0.0.0.0 setzen. In dem Fall lauscht MySQL auf allen Interfaces auf Anfragen, und von jedem Rechner aus darf zugegriffen werden. Dann sollte Tomcat und telnet funktionieren.

0.0.0.0 is evil 🤓

Auf welche Andresse stellt du denn die bind-address in der mysql.conf überhaupt, wenn Tomcat nicht mehr funktioniert?

Wenn er es wie im How-To gemacht hat, dann nur auf die externe IP, was ihm eben localhost Access zerbröselt. Hab eh schon ein ganz liebes Kommentar auf der Seite des How-To's hinterlassen 🤣

zowo

(Themenstarter)

Anmeldungsdatum:
23. Oktober 2011

Beiträge: 35

TheDarkRose schrieb:

Ja ne, wundert mich auch nicht, wenn nach dieser Anleitung nicht mehr auf 127.0.0.1 gelauscht wird, aber der Tomcat sich da hin verbinden will. Remote Access ist sowieso verpönt und bringt dir nur Sicherheitsrisiken. Mach dir ne SSH-Portweiterleitung von lokal aufn Server und du kannst aufn MySQL zugreifen ohne diesen nach außen hin zu öffnen. Des weiteren ist dann auch die Verbindung sicher verschlüsselt. Alles andere ist Schmafu.

danke für den Input, gewisse Sachen gegooglt man halt einfach und probiert es aus ... aber deshalb gibts ja hier die Profis, die einen daraufhinweisen 😉

Gibts für die SSH-Portweiterleitung irgendwo ein Tutorial?

Wenn ich die Einstellungen wieder zurücksetzte und z.B. in der MySQL-Workbench per SSH connecte, dann bekomme ich folgende Meldung

1
Could not connect to MySQL Server at root@server-ip

Was muss ich machen, damit ich nun per SSH über ein externes Tool zugreifen kann?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Siehe SSH (Abschnitt „SSH-Tunnel“)

 ssh -L 3306:localhost:3306 server 

Danach kannst du einfach über localhost dich auf den entfernten MySQL verbinden.

zowo

(Themenstarter)

Anmeldungsdatum:
23. Oktober 2011

Beiträge: 35

Hy TheDarkRose!

Danke für den Tipp, das hat gestern super geklappt und ich konnte mit MySQL-Workbench auf den Server connecten.

Heute wollte ich es wieder versuchen und wenn ich in putty den Befehl für das Öffnen des SSH-Tunnels eingebe kommt folgende Meldung

edit: muss die Fehlermeldung nochmals erweitern

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3306
Could not request local forwarding.

Dadurch kann ich auch jz über MySQL-Workbench nicht mehr auf den Server connecten. Serverseitig also MySQL mit Apache bzw. Tomcat funzt einwandfrei.

Woran kann das liegen? Muss ich die SSH-Connection irgendwie gesondert beenden?

Antworten |