Externe Datenbank

kc-systems

New Member
Guten Morgen :)

Also ich hab ein kleines Problem,

auf meiner kleinen Webseite ist keine Db dabei,
aber da ich einen root habe, sind die Dbs eigentlich kein problem.

Mein problem ist leider nur, dass ich den Root nicht frei bekomme,
so das ich von der Webseite aus entsprechend da drauf schreiben kann.
*leider*
Ich hab auch das Probem, wenn ich über Telnet den sql port teste,
kommt nicht wirklich was bei raus.

Was muss ich machen, um den Root "zu öffnen" ?
Und vorallem WIE mach ich das???



Vermutung: Das zur zeit die Firewall irgendwo den Externen zugriff stört, aber unter iptables -L sieht alles ok aus.

Danke schonmal im voraus für eure Geduld.

Andre

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



wenn ich : telnet ip 3306 mache, kommt leider nur folgendes raus:

Trying 84.1.1.1...
Connected to tld
Escape character is '^]'.
@
5.0.51a-3ubuntu5.4q6\LHc<@m,$fXfyMU@$2nTConnection closed by foreign host.
root@kc:~#



Root: Ubuntu. 8.04 lte mit Plesk 8.
Apache/2.2.8 (Ubuntu), mod_python/3.3.1
Python/2.5.2 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch
mod_ssl/2.2.8 OpenSSL/0.9.8g mod_perl/2.0.3 Perl/v5.8.8
 
Es funktioniert doch ;)
Du kannst allerdings nicht erwarten, dass Du mit telnet das MySQL-Protokoll emulieren kannst. Versuche mit einem MySQL-Client zuzugreifen und es wird funktionieren.

Nach Möglichkeit sollte man den MySQL-Port aber nicht für die ganze Welt freigeben, sondern besser einen ssh-Tunnel verwenden.
 
hm, dann muss ich gucken, dass ich einen Php-ssh Tunnel aufbaue...
weil sonst leider nichts bei der .de-Domain bei ist...

also bin ich doch nicht so blöd wie ich dachte XD


Aber das werd ich erst morgen testen... ;) Danke für die schnelle Antwort.
 
Mit PHP wirst Du nicht so einfach einen ssh-Tunnel aufbauen können. Als Alternative kannst Du aber auf dem Root-Server mit IP-Tables die Sichtbarkeit von Port 3306 soweit einschränken, dass nur noch der andere Webserver darauf zugreifen kann.
 
Wenn man einen User für den Zugriff vom Webspace anlegt und hinter @ die IP des Webspaces setzt, darf doch auch nur von diesem Webspace zugegriffen werden...?

Vielleicht ist das eine Möglichkeit.

Code:
CREATE USER 'user'@'aa.bb.cc.dd' IDENTIFIED BY PASSWORD 'passwort';
 
Wenn man einen User für den Zugriff vom Webspace anlegt und hinter @ die IP des Webspaces setzt, darf doch auch nur von diesem Webspace zugegriffen werden...?

Damit hat der Benutzer die gegebenen Rechte von der IP-Adresse aus. Dann besteht aber weiterhin das Problem, dass der MySQL-Port für die große weite Welt offen ist (iptables) und das der Datenstrom ungeschützt ist (SSH-Tunnel).
 
Vielleicht ist das eine Möglichkeit.

Code:
CREATE USER 'user'@'aa.bb.cc.dd' IDENTIFIED BY PASSWORD 'passwort';

das will der bei mir nicht ganz :)

#1372 - Password hash should be a 41-digit hexadecimal number

Aber was ich nicht verstehe ist,
die User haben "host" raus und "%" drin,
der Port ist wohl ansprechbar,
ABER es tut sich nichts...

Ich habe auch schon Überlegt, einen Frame zu nehmen und alles über eine andere Homepage laufen zu lassen, weil der ssh-tunnel will der PHP server nicht so wirklich.

Oder gibt es noch andere möglichkeiten eine "fremde/Externe DB" in eine Seite rein zu bekommen?


P.S.: Wäre es eigentlich nicht möglich anstatt
Code:
<?php
define ( 'DBHOST', 'localhost' );   # sql host
define ( 'DBUSER', '');  # sql user
define ( 'DBPASS', '');  # sql pass
define ( 'DBDATE', '');  # sql datenbank
define ( 'DBPREF', 'kc_'); # sql prefix
?>

die Datenbank abfragen in eine Datei "quasi" Umzuleiten?
 
Last edited by a moderator:
kann man überhaupt mit der Config.php SO wie sie JETZT ist,
überhaupt zu der DB connecten? vorallem wird der Port einfach nur an den Server drangehangen? ( tld.tld:3306)

Code:
<?php
define ( 'DBHOST', 'localhost' );   # sql host
define ( 'DBUSER', '');  # sql user
define ( 'DBPASS', '');  # sql pass
define ( 'DBDATE', '');  # sql datenbank
define ( 'DBPREF', 'kc_'); # sql prefix
?>
 
nicht schlimm,....

Jedoch habe ich noch keinen zugriff auf die Datenbank.
Ich habe es zwar mit einem PHP-SSH-Tunnel versucht, Jedoch habe ich keinen erfolg gehabt.. :-(

Hat wer noch ein PHP-SSH-Script "rumfliegen" ?
 
Sind der Webspace und der Root-Server beim gleichen Provider? Ansonsten hat der Provider vielleicht auch den MySQL-Port in seiner Firewall gesperrt, so daß du gar nicht bis zu deinm Root-Server kommst, um auf SQL zuzugreifen.
Den Port brauchst du in der Konfig gar nicht anzugeben, wenn du den Standard-Port bei deinem MySQL-Server nicht geändert hast. Servername, Username, Passwort und Datenbank reichen dann aus, um zu verbinden.
 
Wasn das für nen Webspace Anbieter der keine Datenbank anbietet? Lohnt es sich da vielleicht eher das Projekt ganz auf den Root zu ziehen oder den Anbieter zu wechseln? Es gibt Lösungen für PHP-SSH Tunnel, aber diese brauchen entweder zusätzliche Pakete oder exec/system Rechte. Im MySQL Forum gibt es eine Zusammenfassung: http://forums.mysql.com/read.php?30,249779,249779

Wie man einen SSH Tunnel für MySQL betreiben kann wird hier beschrieben: http://www.debianroot.de/server/mysql-ssh-tunnel-mit-autossh-1165.html
 
es war eigentlich nur als reine "info-seite" geplant.

Deswegen quasi nur reine Domain.

:) vorallem das es dann doch "mehr" geworden ist,
war eigentlich nicht geplant ;)

ich werd gleich direkt mal die Foren Wälzen :D

vielen dank.
 
leider sind das 2 verschiedene provider,

liegt daran, das mein Root provider nicht GANZ die Preislichen ansichten hat, wie ich diese habe...

erstmal hab ich das so gelöst, das ich über die Frames gehe.
quasi so, das die seite auf meinem Root liegt, und von dort aus mittels
frame angezeigt wird. ist zwar nicht die Eleganteste lösung, ABER besser als nichts ;)

so habe ich genug zeit um mich dem Thema php-ssh-tunnel zu witmen :)

Gruß Andre
 
Back
Top