thorti85
Goto Top

SSH Port umbiegen und Port Forwarding

Hallo allerseits,

ich habe folgendes Problem...
und zwar steht ein Server von mit hinter einer Firewall.
Bisher konnte ich nur über Port 80 sehen, was mein Tomcat hergibt.
Jetzt möchte ich noch per SSH auf diesen Server zugreifen.
Ich habe vorhin erst erfahren, dass die Firewall SSH auf Port z.B. "1022"zulässt.

Jetzt brauch ich eigentlich nur noch in der "sshd_config" den Port auf 1022 schalten dann dürfte ich ja theoretisch per SSH drauf kommen. Das versteh ich ja noch (muss es halt morgen noch ausprobieren face-wink )...

Aber jetzt will ich wissen, ob es auch möglich ist über diesen Port (1022) auf den standard mysql-Port 3306 zu "forwarden", damit ich nicht nur den Server per SSH, sondern auch per mysqlsoftware (z.B. mySQL-Administrator) auf die Datenbank zugreifen kann? Wenn ja, wie?
(klar, ich könnte auch per Kommandozeile die Datenbank bearbeiten, das wäre aber nicht so gut)
Falls das nötig ist.... OS ist Linux.

Vielen Dank für eure Antworten

T-Rule

Content-ID: 75210

Url: https://administrator.de/contentid/75210

Ausgedruckt am: 14.11.2024 um 01:11 Uhr

runlevel2
runlevel2 05.12.2007 um 10:35:56 Uhr
Goto Top
Hy T-Rule,

ein Port-Forwarding ist nur pro Dienst möglich. Bei Deinem Setup muß das Forwarding auf der Firewall eingerichtet werden.

SSH:
===
Wenn der SSH-Dämon deines Servers auf Port 1022 hört, kann man diesen Port auf der Firewall zu diesem Server forwarden. Dann geht aber nur SSH. Es ist auch möglich, die Firewall aussen auf Port 1022 hören zu lassen, und diesen als Port 22 an den Server zu forwarden. Das betrifft aber auch nur SSH.

MySQL:
Wie oben schon gesagt, ist das ein weiteres Forwarding; hat also mit SSH zunächst nix zu tun. Hier das gleiche Spiel: Wenn Du an der Firewall Port 3306 an den Server forwardest, kannst Du auf die MySQL-Datenbank zugreifen; sofern der MySQL-Server dafür konfiguriert ist. Bei den meisten Linuxen hört MySQL aus Sicherheitsgründen nur auf localhost. Der Netzwerk-Port muß erst in my.cnf freigeschaltet werden (Parameter bind-address).

Der Remote-Zugriff auf MySQL ist mit Sicherheit der komfortablste Weg. Ich muß Dich aber aus Sicherheitsgründen davor warnen. Meine Empfehlung wäre, die Datenbank über den SSH-Zugang mit dem MySQL-Client zu administrieren. Du solltest stets versuchen, so wenig Ports wie möglich, in Dein Netz zu forwarden.

Eine Möglichkeit, MySQL über eine verschlüsselte Verbindung zu fahren, ist stunnel. Allerdings kenne ich Deine Umgebung zu wenig. Hier ein Link zum Einlesen: http://linuxgazette.net/107/odonovan.html

Gruss, runlevel2
thorti85
thorti85 05.12.2007 um 11:35:29 Uhr
Goto Top
Vielen Dank für die Antwort.
Es funktioniert jetzt alles.
Mit dem Mysql...
Da baue ich mir einen SSH-Tunnel via port z.B. 10022 auf, gebe dabei "Source port 3306" und als "Destination localhost:3306" an. Das bewirkt, dass der Port 3306 des Servers auf meinen lokalen Port 3306 sozusagen "abgebildet".

Jetzt kann ich MysqlAdministrator nehmen und als Serverhost: "localhost" eintragen...und es funktioniert face-wink
Ok er meckert, dass "Startvariablen" und die "Dienstverwaltung" nicht funktionieren, diese funktionieren aber glaube ich nur, wenn ich wirklich auf meinem "localhost" bin.

Ich denke das des so in Ordnung ist...oder was hältst du davon, zu unsicher?

Viele Grüße
T-Rule
runlevel2
runlevel2 05.12.2007 um 12:56:15 Uhr
Goto Top
Hy nochmal,

das ist ungefähr die Funktionalität von stunnel. Dadurch hast Du zumindest eine verschlüsselte Verbindung zur Datenbank.

Generell hast Du aber einen oder zwei Ports offen, über die man mitten im LAN steht. Deshalb solltest Du die Logs gut nach fehlgeschlagenen Anmeldungen durchschauen. Die erfolgreichen Anmeldungen am Server solltest Du alle kennenface-wink.

Zu den Fehlern im MySQL-Administrator kann ich leider nichts Genaues sagen. Wenn Du auf dem Remoteclient auch eine Datenbank laufen hast, würde ich das Verhalten der Datenbank auf dem Server gut prüfen.

Gruss, runlevel2