Bind Adresse von mysql Server
am 12.04.2006 18:39:24 von Hans Novak
Hallo Ng,
ich wiss nicht, ob ich hier off Topic bin, denn ich habe keine Frage zu
SQL Queries, sondern zum Bind in der my.cnf.
Ich benötige für eine Tabelle und einen bestimmten User Zugriff aus dem
Internet auf mysql.
Wenn ich die bind-address auf meine IP einstelle dann geht das auch,
allerdings ist dies ja wie bekannt, nicht sehr sicher.
Das andere Problem ist, dass andere lokale (mysql) User KEINEN Zugriff
mehr auf den Server haben, da sie ihn mit localhost ansprechen und
dieser unter localhost nicht ansprechbar ist (telnet localhost 3306)
ergibt keine Antwort.
Ich kann doch nicht allen Mysql Usern Zugriff von ausserhalb geben, nur
damit sie auf die db zugreifen können !?
Hans
Re: Bind Adresse von mysql Server
am 12.04.2006 19:05:30 von Helmut Chang
Hans Novak schrieb:
> Ich benötige für eine Tabelle und einen bestimmten User Zugriff aus dem
> Internet auf mysql.
> Wenn ich die bind-address auf meine IP einstelle dann geht das auch,
> allerdings ist dies ja wie bekannt, nicht sehr sicher.
Den Zusammenhang sehe ich grade nicht wirklich. Dieser Parameter ist
doch dazu gedacht, den MySQL-Daemon auf einer Maschine mit mehreren
IP-Adressen an eine davon zu binden. Inwiefwern hilft das also beim
Zugriff von außen?
Zugriffsrechte vergibt man aber doch mit GRANT. Also warum nicht ein
GRANT [benötigte Rechte] TO @ ON
.. Und nicht mehr.
gruss, heli
Re: Bind Adresse von mysql Server
am 12.04.2006 19:19:18 von Sven Paulus
Helmut Chang wrote:
> Zugriffsrechte vergibt man aber doch mit GRANT. Also warum nicht ein=20
> GRANT [benötigte Rechte] TO @ ON=20
> .. Und nicht mehr.
Zusaetzlich sollte man aber vielleicht noch lokal mit einem
Paketfilter Zugriff nur von den externen IPs zulassen, die auch
zugreifen koennen sollen. So steht man nicht beim naechsten
MySQL-Protokoll-Exploit voellig nackt da ...
Re: Bind Adresse von mysql Server
am 12.04.2006 19:35:47 von Helmut Chang
Sven Paulus schrieb:
>> Zugriffsrechte vergibt man aber doch mit GRANT. Also warum nicht ein
>> GRANT [benötigte Rechte] TO @ ON
>> .. Und nicht mehr.
>
> Zusaetzlich sollte man aber vielleicht noch lokal mit einem
> Paketfilter Zugriff nur von den externen IPs zulassen, die auch
> zugreifen koennen sollen.
Stimmt. Das wäre dann "Und noch weniger" von meiner Warte aus (damit
keine Missverständnisse aufkommen). Ich meinte mit "Und nicht mehr"
nicht "mehr braucht man nicht tun", sondern mehr Rechte benötigt der
Benutzer nicht (d. h., auf die Tabelle beschränken) und der Benutzer
darf auch nur von einer bestimmten IP kommen (und nicht @'%', wie
oftmals gemacht wird, wenn Benutzer von außen zugreifen dürfen sollen).
gruss, heli
Re: Bind Adresse von mysql Server
am 13.04.2006 07:43:09 von Hans Novak
Helmut Chang schrieb:
> Benutzer nicht (d. h., auf die Tabelle beschränken) und der Benutzer
> darf auch nur von einer bestimmten IP kommen (und nicht @'%', wie
> oftmals gemacht wird, wenn Benutzer von außen zugreifen dürfen sollen).
hmmm... aber ich kann keine fetse IP angeben, weile sich meine IP alle
24 Stunden ändert (in @'[ip]').
Hans
Re: Bind Adresse von mysql Server
am 13.04.2006 09:01:47 von Helmut Chang
Hans Novak schrieb:
> hmmm... aber ich kann keine fetse IP angeben, weile sich meine IP alle
> 24 Stunden ändert (in @'[ip]').
Welche jetzt? Deine, wo der Server läuft oder die des Benutzers, der von
außen zugreifen soll? In beiden Fällen schlecht...
gruss, heli
Re: Bind Adresse von mysql Server
am 13.04.2006 09:08:00 von Thomas Rachel
Hans Novak wrote:
> ich wiss nicht, ob ich hier off Topic bin, denn ich habe keine Frage zu
> SQL Queries, sondern zum Bind in der my.cnf.
>
> Ich benötige für eine Tabelle und einen bestimmten User Zugriff aus dem
> Internet auf mysql.
> Wenn ich die bind-address auf meine IP einstelle dann geht das auch,
> allerdings ist dies ja wie bekannt, nicht sehr sicher.
Du könntest, je nach User, um den es sich handelt, mit einem SSH-Tunnel
arbeiten.
Richte einen Account auf Deiner Machine ein (so sie unter Deiner
Kontrolle steht), der evtl. auch eingeschränkt sein darf und hol Dir
beim Verbinden den Port 3306 auf die lokale Maschine. Den kannst Du dann
so nutzen, wie wenn er lkal verfügar wäre.
HTH,
Thomas
--
Und wir singen: Bye bye Miss American Pie
Ich hab's länger schon befürchtet, und jetzt ist es soweit
Madonna quietscht, und das Publikum schreit:
'This will be the day that I die'
(http://www.schlabonski.de/americanpie.html)
Re: Bind Adresse von mysql Server
am 13.04.2006 12:36:06 von Hans Novak
Thomas Rachel schrieb:
> Du könntest, je nach User, um den es sich handelt, mit einem SSH-Tunnel
> arbeiten.
>
> Richte einen Account auf Deiner Machine ein (so sie unter Deiner
> Kontrolle steht), der evtl. auch eingeschränkt sein darf und hol Dir
> beim Verbinden den Port 3306 auf die lokale Maschine. Den kannst Du dann
> so nutzen, wie wenn er lkal verfügar wäre.
ja, daran habe ich auch schon gedacht.
Welchen von den "tunneln" kannst du mir dafür empfehlen ? (OpenVpn ?)
Hans
Re: Bind Adresse von mysql Server
am 13.04.2006 16:05:59 von Thomas Rachel
Hans Novak wrote:
> ja, daran habe ich auch schon gedacht.
> Welchen von den "tunneln" kannst du mir dafür empfehlen ? (OpenVpn ?)
Ich persönlich verwende für solche Zwecke immer ssh.
Hängt natürlich von Deiner Konfiguration auf dem Server- und Client-Rechner
ab: ich gehe jetzt mal davon aus, daà es sich um ein
Unix-(ähnliches )System handelt. (Wenn nicht: für Windows gibt es m.W. auch
ssh-Server.)
Der neue, nur für diesen Zweck angelegte User bekommt als Shell in
der /etc/passwd entweder /bin/false oder, weils grad so schön
paÃt ;-), /usr/bin/mysql verpaÃt. (Wenn er hinreichend vertrauenswürdig ist
- oder Du es gar selbst bist, ist ein "normaler" Account natürlich auch
ok.)
Die Verbindung geht dan so vonstatten, daà der Clientrechner einen
ssh-Client startet (unter Linux: ssh, unter Windows beispielsweise was aus
dem PuTTY-Umfeld) mit der MaÃgabe, daà der lokale Port 3306 (oder auch ein
beliebiger anderer) auf der Gegenseite weitergeleitet werden soll auf
localhost:3306. Fertig.
Allerdings muÃt Du Dich von MySQL dann nach 127.0.0.1 verbinden, weil
localhost ja versucht, den Socket zu verwenden.
HTH,
Thomas
Re: Bind Adresse von mysql Server
am 21.04.2006 18:15:50 von Hans Novak
Thomas Rachel schrieb:
> Die Verbindung geht dan so vonstatten, daà der Clientrechner einen
> ssh-Client startet (unter Linux: ssh, unter Windows beispielsweise was aus
> dem PuTTY-Umfeld) mit der MaÃgabe, daà der lokale Port 3306 (oder auch ein
> beliebiger anderer) auf der Gegenseite weitergeleitet werden soll auf
> localhost:3306. Fertig.
>
> Allerdings muÃt Du Dich von MySQL dann nach 127.0.0.1 verbinden, weil
> localhost ja versucht, den Socket zu verwenden.
aha .... !?
also es handelt sich um 2 Linux Rechner (beide Debian).
Der eine ist hier bei mir und über DSL angeschlossen, der andere, auf
dem der mysql Server läuft ist mit einer festen, öffentlichen IP im Netz
verfügbar.
Die Anforderung ist folgende:
Auf meinem PC (windows) läuft eine Anwendung, welche den entfernetn
mysql Server nutzen muss.
Ich dachte mir, dass ich über meinen hauseigenen linux Server auf den
entfernten rechner zugreifen könnte.
Ich hatte zwischenzeitlich versucht, openVPN mit beiden Linux Servern zu
verwenden - aber das richtet auf den Rechnern eine virtuelle
Netzwerkkarte mit IP ein.
So müsste ich dann dem mysql Server sagen, er soll auf Localhost UND der
virtuellen IP horchen, was irgendwie aber nicht geht.
Wie würde das denn mit dem SSH funktionieren ?
Hans
Re: Bind Adresse von mysql Server
am 22.04.2006 08:41:06 von Thomas Rachel
Hans Novak wrote:
> aha .... !?
> also es handelt sich um 2 Linux Rechner (beide Debian).
> Der eine ist hier bei mir und über DSL angeschlossen, der andere, auf
> dem der mysql Server läuft ist mit einer festen, öffentlichen IP im
> Netz
> verfügbar.
Voraussetzung für SSH ist natürlich, daà Du auch Shell-Zugriff auf diesen
Rechner hast.
> Die Anforderung ist folgende:
> Auf meinem PC (windows) läuft eine Anwendung, welche den entfernetn
> mysql Server nutzen muss.
Dann verbindest Du Dich mittels PuTTY bzw. einem seiner begleitenden
Programme von Deinem Windows-Rechner auf den MySQL-Server und läÃt Port
3306 weiterleiten. Ãber diesen Tunnel kannst Du dann lokal auf 3306
zugreifen, das wird dann dorthin weitergeleitet und für den dortigen
MySQL-Server ist es, als käme die Anfrage von lokal.
Hier zwar offtopig, ist aber offenbar eine häufig nachgefragte
Funktionalität.
Thomas