Externer Datenbank-Servern & Sicherheit

MySQL, PostgreSQL, SQLite
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 13:54

Hallo Leute,
folgende Situation:

server1.de mit ip 1.1.1.1 hier liegen alle wichitgen dienste
server2.de mit ip 2.2.2.2 hier liegt ein mysql-server

die php (u.a.) scripte sollen nur als Datenbank-Server server2 benutzen. Die Frage ist, wie ich MySQL konfigurieren soll, damit wirklich nur benutzer von localhost und von server1 auf die Datenbanken zugreifen können. Als erstes habe ich skip-networking ausgemacht und somit den Netzzugriff freigegeben. Das nächste Problem ist, dass die hosts-spalte der user-tabelle von mysql auf 'localhost' sitzt. Das macht ja auch sollange sinn, sollange scripte und mysql auf einem server laufen, ist jetzt ja aber nichtmehr zu benutzen. Wenn ich dort nun % eintrage, dann geht es zwar, jedoch kann von jedem PC der Welt aus auf den Datenbank-Server zugegriffen werden, also auch nicht mein Wunsch.

Deshalb meine Fragen:
1. Kann man in der host-spalte der user-tabelle mehrere Hosts eintragen? Die Doku schweigt sich aus, was wohl als nein zu interpretieren ist
2. Welche anderen Möglichkeiten habe ich? Ich habe zwar die Tabelle "host" gefunden, nur scheint die nicht den gewünschten Effekt bringen zu können, oder gehe ich es falsch an?
3. Wie sicher ist die Verbindung? Wenn mich nicht alles täuscht ist das unverschlüsselt oder? Wie kann man das ändern? Kann MySQL von sich aus verschlüsseln oder nutze ich besser einen SSH-Tunnel?

Ich würde gerne vermeiden, dass ich jeden User doppelt eintragen muß, das wäre meine Notlösung, gibt es keine bessere?

Danke für Hilfe
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 14:18

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 14:25

oki, danke, hatte ich gerade auch gefunden, scheint nicht ganz einfach auf debian zu sein, aber das bekomm ich schon hin, was bleibt ist die andere frage, die sache mit den zwei hosts. Das Rootforum hier macht es doch genauso (zwei Sever), wie ist es denn da gemacht? Zwei User für jeden host einen? Oder gibt es doch einen Trick?

Danke
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 14:38

Du musst einen weiteren "User" anlegen (klonen), welcher sich einzig durch das Host-Feld unterscheidet...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 14:39

hm, genau das wollte ich eigentlich vermeiden, weil meine user-liste jetzt schon sehr lange ist und dadurch ja doppelt so lange wird. Aber wenn es die einzige Lösung ist, dann werde ich das wohl oder übel machen müßen.

Danke
TO

bungeebug
Posts: 187
Joined: 2004-04-14 10:08

Re: Externer Datenbank-Servern & Sicherheit

Post by bungeebug » 2005-05-04 17:36

wie wärs mit nem vpn tunnel?

Einfach nen Vpn Host2Host und keine anderen Verbindung annehmen sondern nur die aus dem "Lan".

Rein theoretisch musste noch nicht einmal nen ssh Port offenlassen weil du durch den Tunnel connecten kannst, nur peinlich wenn der Tunnel zusammen klappt ... aber darum gehts ja erst mal nich.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 17:48

hm, da sitze ich gerade dran, weil die integrierte ssl-verschlüsselung ja leider keinen php-support hat, zumindest keinen ordentlichen. Deshalb habe ich mir überlegt ich öffnen auf dem WEb-server mit ssh einen port der auf den datenbank-server weiterleitet. Das habe ich mit dem Befehl gemacht:

ssh -2 -N -f -L 9999:localhost:3306 root@2.2.2.2

(ausgeführt auf server1)

Wie sieht es damit eigentlich mit der performance aus? Geht das viel verloren?

Ach und noch was:
Wie überzeuge ich mysql (clientbefehl) davon nicht per socket sondern per tcp zu verbinden? Ich habe schon den Socket-Verweis in der my.cnf gelöscht trotzdem igoniert mysql jegliche Port-Angabe wenn ich zu lokal-host verbinden will. Nicht sonderlich toll zum testen!



Danke
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 17:57

/etc/my.cnf

Code: Select all

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
user = mysql
port = 3306
bind-address = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 18:00

danke, aber was sagt mir das? Ich habe inzwischen ein bischen nachgebohrt:
immer wenn ich nach localhost verbinde spielt die portnummer garkeine rolle es wird immer der socket genommen. Dummerweise hält sich auch php daran. Wie kann ich das jetzt ändern? Oder muß ich überall localhost durch 127.0.0.1 ersetzten? Weil dann nimmt er wieder eine tcp verbindung. Und mein SSH-Tunnel ist nunmal TCP und kein Socket.

Danke
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 18:27

theomega wrote:Oder muß ich überall localhost durch 127.0.0.1 ersetzten?
Ja, steht übrigens auch im MySQL-Manual...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 18:28

ja, da habe ich meine weisheiten auch her, aber gibt es keine config-datei die mysql davon abbringen kann? 8O

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 18:34

Nein.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 18:35

mist, na dann, wie siehts mit der performance von so einem ssh-tunnel aus? und: als welche user lässt man den tunnel laufen? Zum einen der User auf Server1 der den Tunnel öffnet und zum anderen der user der den tunnel annimmt? root muß doch eigentlich nicht sein, wenngleich zumindest der annehmende user braucht ja einen shell, oder täusche ich mich?

Gruß
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-04 18:39

Da ich MySQL nur lokal verwende, kann ich Dir bezüglich Tunnel beziehungsweise MySQL-SSL/SSH nicht weiterhelfen, sorry.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: Externer Datenbank-Servern & Sicherheit

Post by theomega » 2005-05-04 18:40

klar, danke für alles, ist ja nicht so das es nur ein zweigespräch zwischen uns bleiben muß :-D

Gruß
TO

hanslinux
Posts: 19
Joined: 2005-02-22 23:57

Re: Externer Datenbank-Servern & Sicherheit

Post by hanslinux » 2005-05-21 17:59

Hallo,


ich habe das gleiche vorhaben und möchte meine Datenbank auf einen externen Server legen.

Ich habe auf mein Server Debian mit plesk laufen.

Dazu habe ich das hier gefunden :

http://dev.mysql.com/doc/mysql/de/conne ... ccess.html


â?¢ GRANT ALL PRIVILEGES on db.* to david@'192.58.197.0/255.255.255.0';

Irgendwie ist das Howto für fortgeschrittne

Ich habe es so verstanden :

â?¢ GRANT ALL PRIVILEGES on db.* to DatenbankUser@'IP_die_zum_server_verbinden_kann';

Ich hoffe das ihr mir helfen könnt.



Mit freundlichen Grüßen
Hans

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Externer Datenbank-Servern & Sicherheit

Post by Joe User » 2005-05-21 18:44

Zuerst muss MySQL abgesichert werden:

Code: Select all

/usr/bin/mysql_secure_installation
Danach legst Du den DB-User, welcher von extern zugreifen darf, inklusive Passwort an:

Code: Select all

mysql -uroot -p
GRANT ALL PRIVILEGES ON DB.* TO 'DB-User'@'External-Server-IP' IDENTIFIED BY 'DB-User-Password';
FLUSH PRIVILEGES;
QUIT;
Jetzt noch MySQL restarten und Du kannst Dich mit dem neuen User vom externen Server aus einloggen...

hanslinux
Posts: 19
Joined: 2005-02-22 23:57

Re: Externer Datenbank-Servern & Sicherheit

Post by hanslinux » 2005-05-21 19:50

Hallo Joe

So habe ich gemacht, aber komme extern nicht auf die DB :( .

Ich hatte bis jetzt Confixx und damit war es echt einfach, aber plesk macht in dieser Sache echt viel ärger.

Die Datenbank scheint erstell zu sein, denn wenn ich bei plesk eine Datenbank mit den gleichen Namen erstellen will sagt er mir, dass sie vorhanden ist, denn wiederum befindet sich in /var/lib/mysql nicht die erstellt Datenbank.


Wie kann ich denn unter plesk ein 2ten phpMyadmin installieren, habe es nach diesem http://www.debianhowto.de/de/howtos/woody/phpmyadmin HowTo versucht aber scheitere bei den Einstellungen.