[vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

[vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

am 04.08.2006 09:53:17 von Hans Novak

Hi,

falls ich hier off topic bin, möchte ich mich vorab entschuldigen.
Ich habe auf meinem Web Server eine mysql db, die nur auf localhost
horcht. Ich möchte eine Tabelle der db aber aus dem Internet erreichen
können.
Gibt es da irgendeine Lösung ?
(Klar dassich die db auch auf die Inet Adresse der NIC horchen lassen
kann) - wäre mir aber unangenehm, da ständig irgendwelche Angriffe laufen.


mfg
Hans Novak

Re: [vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

am 04.08.2006 10:29:02 von Thomas Rachel

Hans Novak wrote:

> falls ich hier off topic bin, möchte ich mich vorab entschuldigen.

Soweit es die Zugriffsmöglichkeiten auf MySQL betrifft, dürfte das hier
online sein.


> Ich habe auf meinem Web Server eine mysql db, die nur auf localhost
> horcht. Ich möchte eine Tabelle der db aber aus dem Internet erreichen
> können.
> Gibt es da irgendeine Lösung ?
> (Klar dassich die db auch auf die Inet Adresse der NIC horchen lassen
> kann) - wäre mir aber unangenehm, da ständig irgendwelche Angriffe laufen.


Mal so spontan die Möglichkeiten aufgezählt, die sich mir darstellen:

* laufenden DB-Server so einstellen, daß er tatsächlich am Inet lauscht und
den Zugriff dann per Permissions einschränken - wäre eine Möglichkeit. Ob
man das will, und ob das hinreichend sicher ist, ist eine andere Sache.

* proprietäres Protokoll entwickeln, welches bspw. eine Liste von Spalten
und/oder Bedingungen entgegennimmt, diese in ein MysQL-Query umwandelt und
das Ergebnis dann zurückliefert.

* zweite DB-Instanz starten, die lediglich (z.B. per Symlink) diese Tabelle
kennt. Ob das wirklich empfehlenswert ist oder eher der beste Weg, die
Tabelle zu killen, weiß ich nicht. Ich meine, es gäbe sowas wie
Schutzmechanismen im Falle von MyISAM, aber da mußtest Du für Genaueres das
Handbuch konsultieren.

Ob es bei einem Readonly-Zugriff durch die 2. Instanz problemlos(er) ist,
weiß ich auch nicht, wäre aber eine mögliche Richtung, in der Du
weitersuchen könntest.


Thomas

Re: [vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

am 04.08.2006 11:10:10 von Christian Kirsch

Thomas Rachel schrieb:
> Hans Novak wrote:
>
>> falls ich hier off topic bin, möchte ich mich vorab entschuldigen.
>
> Soweit es die Zugriffsmöglichkeiten auf MySQL betrifft, dürfte das hier
> online sein.
>
>
>> Ich habe auf meinem Web Server eine mysql db, die nur auf localhost
>> horcht. Ich möchte eine Tabelle der db aber aus dem Internet erreichen
>> können.
>> Gibt es da irgendeine Lösung ?
>> (Klar dassich die db auch auf die Inet Adresse der NIC horchen lassen
>> kann) - wäre mir aber unangenehm, da ständig irgendwelche Angriffe laufen.
>
>
> Mal so spontan die Möglichkeiten aufgezählt, die sich mir darstellen:
>
> * laufenden DB-Server so einstellen, daß er tatsächlich am Inet lauscht und
> den Zugriff dann per Permissions einschränken - wäre eine Möglichkeit. Ob
> man das will, und ob das hinreichend sicher ist, ist eine andere Sache.
>
> * proprietäres Protokoll entwickeln, welches bspw. eine Liste von Spalten
> und/oder Bedingungen entgegennimmt, diese in ein MysQL-Query umwandelt und
> das Ergebnis dann zurückliefert.
>
> * zweite DB-Instanz starten, die lediglich (z.B. per Symlink) diese Tabelle
> kennt. Ob das wirklich empfehlenswert ist oder eher der beste Weg, die
> Tabelle zu killen, weiß ich nicht. Ich meine, es gäbe sowas wie
> Schutzmechanismen im Falle von MyISAM, aber da mußtest Du für Genaueres das
> Handbuch konsultieren.
>
>
Dann gibt's noch SSL- und SSH-Tunnel ...

Hallo

am 04.08.2006 11:11:44 von Hans Novak

Thomas Rachel schrieb:
> * laufenden DB-Server so einstellen, daß er tatsächlich am Inet lauscht und
> den Zugriff dann per Permissions einschränken - wäre eine Möglichkeit. Ob
> man das will, und ob das hinreichend sicher ist, ist eine andere Sache.

Mit "permissions" meinst Du die Benutzernamen und Passwörter der
Zugriffsberechtigungen auf die db ?
Das ist für alle Tabellen vorhanden - sprich: es gibt keinen ohne
User/Passwort.
Das Problem ist, das sich die anderen Benutzer und Passwörter nicht
kenne und diese möglicherweise "insecure" Passwörter benutzen, die das
System angreifbar machen ...

Oder ist "permissions" noch etwas anderes gemeint ?

mfg
Hans Novak

Hallo

am 04.08.2006 11:15:56 von Hans Novak

Christian Kirsch schrieb:

> Dann gibt's noch SSL- und SSH-Tunnel ...

ja, das hatte ich mir auch schon überlegt.
Einen linux Server habe ich hier auch. der müsste aber das routing so
umstellen, das die Windows Clients im hauseigenen Netz diesen Tunnel
benutzen, sobald eine db Verbindung gebraucht wird.
Alles andere soll ja nicht über den Tunnel gehen.
Das hatte ich mal versucht, aber bisher nicht hinbekommen.
Des weiteren muss der db-Server dann auf Localhost UND die Tunnel-IP
horchen! geht das ?


mfg
Hans Novak

Re: Hallo

am 04.08.2006 11:52:50 von Christian Kirsch

Hans Novak schrieb:

Warum änderst Du mitten im Thread das Subject?

> Christian Kirsch schrieb:
>
>> Dann gibt's noch SSL- und SSH-Tunnel ...
>
> ja, das hatte ich mir auch schon überlegt.
> Einen linux Server habe ich hier auch. der müsste aber das routing so
> umstellen, das die Windows Clients im hauseigenen Netz diesen Tunnel
> benutzen, sobald eine db Verbindung gebraucht wird.

Ich kann mit diesen Bemerkungen nichts anfangen. Schreib doch einfach
mal KOMPLETT auf, wie Deine Umgebung aussieht, statt hier
Informationsbröckchen zu verteilen.

Re: Hallo

am 04.08.2006 12:00:22 von Markus Mann

Hans Novak wrote:
> Christian Kirsch schrieb:
>
>> Dann gibt's noch SSL- und SSH-Tunnel ...
>
> [...]
> Das hatte ich mal versucht, aber bisher nicht hinbekommen.

Du möchtest dir dafür sehr wahrscheinlich OpenVPN ansehen.

> Des weiteren muss der db-Server dann auf Localhost UND die Tunnel-IP
> horchen! geht das ?

Jain. Man kann mysqld auf 1 Interface oder auf alle binden, mehrere
unterschiedliche Interfaces gehen IIRC noch nicht. Ist aber in deinem
Fall kein Problem, da der Socket extra behandelt wird. Du fügst also ein
bind-address $Tunnel-IP ein und bist damit aus dem Schneider (außer du
brauchst wirklich *IP* auf 127.0.0.1).

Ciao.
--
Markus Mann
];-)

Re: [vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

am 04.08.2006 12:10:50 von Hans Novak

Markus Mann schrieb:
> Jain. Man kann mysqld auf 1 Interface oder auf alle binden, mehrere
> unterschiedliche Interfaces gehen IIRC noch nicht. Ist aber in deinem
> Fall kein Problem, da der Socket extra behandelt wird. Du fügst also ein
> bind-address $Tunnel-IP ein und bist damit aus dem Schneider (außer du
> brauchst wirklich *IP* auf 127.0.0.1).

bisher stand dort "localhost" nicht die "127.0.0.1".
Ich bin mir nicht sicher, ob irgendeine Applikation da einen unterschied
macht. Und das merkt man natürlich erst nach einigen Tagen, wenn eine
der vielen Programme Blödsinn machen ;-)
Dennoch werde ich es mit dem Tunnel versuchen.


mfg
Hans Novak

p.s. sorry wegen dem Wechsel des Betreff. Mein Newsreader hat das da
rein gesetzt, ist mir erst aufgefallen, nachdem ich es abgeschickt habe.

Re: [vielleicht ot] Eine Tabelle der DB für das Internet (TCP/IP) öffnen

am 06.08.2006 12:07:13 von Dominik Echterbruch

Hans Novak wrote:
>
> falls ich hier off topic bin, möchte ich mich vorab entschuldigen.
> Ich habe auf meinem Web Server eine mysql db, die nur auf localhost
> horcht. Ich möchte eine Tabelle der db aber aus dem Internet erreichen
> können.
> Gibt es da irgendeine Lösung ?
>
> (Klar dassich die db auch auf die Inet Adresse der NIC horchen lassen
> kann) - wäre mir aber unangenehm, da ständig irgendwelche Angriffe laufen.

Für nur eine Tabelle sehe ich nur eine Chance: Replikation der Tabelle
auf eine getrennte MySQL-Instanz und die dann frei geben.

Alternativ könntest du über entsprechende Rechtevergabe innerhalb MySQL
nur diese eine Tabelle für den Benutzer, der aus dem Netz kommt
freigeben. Zusammen mit einem nicht ganz so bekannten Port (also z.B
54321, statt 3306) könntest du eine recht sichere Umgebung schaffen.


Grüße,
Dominik
--
Norbert Melzer in d.c.d.mysql:
F: Wie verstehe ich diese FAQ am besten?
A: Studieren Sie Datanbank-Design und lesen Sie anschliessend alles nochmal

Re: Hallo

am 06.08.2006 12:22:22 von Thomas Rachel

Hans Novak wrote:

>>> falls ich hier off topic bin, möchte ich mich vorab entschuldigen.
>>
>>Soweit es die Zugriffsmöglichkeiten auf MySQL betrifft, dürfte das hier
>>online sein.

ähm, gehts mir noch? Ich meinte natürlich ontopic. Argl...


> Mit "permissions" meinst Du die Benutzernamen und Passwörter der
> Zugriffsberechtigungen auf die db ?

Ja, das meinte ich.


> Das Problem ist, das sich die anderen Benutzer und Passwörter nicht
> kenne und diese möglicherweise "insecure" Passwörter benutzen, die das
> System angreifbar machen ...

Das System angreifbar machen oder nur ihre eigenen Tabellen?

Aber ich gebe Dir recht - den ganzen Port öffentlich zu machen, wäre mir
auch nicht ganz geheuer.


> p.s. sorry wegen dem Wechsel des Betreff. Mein Newsreader hat das da
> rein gesetzt, ist mir erst aufgefallen, nachdem ich es abgeschickt
> habe.

Und das hat er ganz von selbst getan? Wow... ;-)


Thomas
--
> Wieso soll die Katze verhungern? Die kann doch zum fressen / jagen
> immer mal wieder aus der Kiste heraustunneln
Womit Schrödingers Katze einen dreifachen Zustand hat: Tot/lebendig/
gerade-mal-rausgetunnelt. (Thomas Ohmeyer und Volker Gringmuth in
hd.talk)

Re: Hallo

am 08.08.2006 13:08:52 von Siegfried Schmidt

Hallo Hans,

> ja, das hatte ich mir auch schon überlegt.
> Einen linux Server habe ich hier auch. der müsste aber das routing so
> umstellen, das die Windows Clients im hauseigenen Netz diesen Tunnel
> benutzen, sobald eine db Verbindung gebraucht wird.

Am Routing wird bei ssh gar nichts geändert, bei den Clients wird lediglich
der Rechner mit dem ssh-Client als DB-Server eingetragen.

> Des weiteren muss der db-Server dann auf Localhost UND die Tunnel-IP
> horchen! geht das ?

Braucht er bei ssh auch nicht, der db-Server bekommt nur Zugriffe auf
localhost.


Siegfried
--
http://www.schmidt.ath.cx