Mysql Zugriff von anderen Servern

MySQL, PostgreSQL, SQLite
ckaos
Posts: 9
Joined: 2007-04-17 21:10
Location: Berlin

Mysql Zugriff von anderen Servern

Post by ckaos » 2007-05-13 02:54

Hallo
Ich habe die Aufgabenstellung 1-2 anderen Servern den Zugriff auf die DB zu erlauben.
Ich weis das es per my.cnf mit auskommentieren der "bind-address" und entsprechenden angaben in "mysql.db" und "mysql.user" geht.
Wie sicher ist es wenn ich in "mysql.db" und "mysql.user" nur die jeweiligen IP-Adressen angebe und nicht per wildcard % den Zugriff erlaube?
"bind-address" lässt ja nur eine IP zu.

Es geht nicht hierbei nicht um die Sicherheit der Daten ansich sei hier noch erwähnt, eher um die Öffnung nach aussen.

Eure Meinung ist also gefragt.

guwapo
Posts: 42
Joined: 2007-01-21 15:07

Re: Mysql Zugriff von anderen Servern

Post by guwapo » 2007-05-13 03:24

mittels "bind-address" tut man eigentlich nur mysql an eine bestimmten lokalen IP festlegen. Hat dein MYSQL-Server also die IP 192.168.2.1 und 192.168.2.2 kannst du mittels "bind-address 192.168.2.1" den Server so einstellen, dass er nur Anfragen über diese IP entgegen nimmt und beantwortet.

Willst du also explizit den Zugriff für eine bestimmte aussenstehende IP erlauben, reicht es dem user entsprechende Zugriffskontrolle zu geben.

Denke daran, falls dein MYSQL-Server über einen Firewall verfügt entsprechende Regeln zu lockern (port 3306).

Theoretisch gesehen ist jede "Portöffnung" bzw. "offener Dienst" auch eine mögliche Sicherheitslücke.

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Mysql Zugriff von anderen Servern

Post by daemotron » 2007-05-13 08:54

Das ist wohl eine der berühmten Ausnahmen, bei denen ich tatsächlich auf iptables zurückgreifen würde. Du kannst zwar den mysqld per bind-address an ein bestimmtes Interface binden, aber wenn das nicht lo ist, dann kann natürlich jeder Rechner, der routingtechnisch auf besagtes Interface gelangt, auch mit MySQL sprechen.

MySQl verfügt zwar über eine hostgebundene Authentifizierung auf der Anwendungsschicht. Damit das zum tragen kommt, muss aber erst mal ein Dialog zwischen Client und Server zustande kommen, und wenn der Client nur einen Buffer Overflow ausnutzen möchte, könnte das schon ausreichend sein.

Ein Paketfilter (entweder auf der Maschine selbst oder besser auf einem vorgeschalteten Rechner) könnte die Pakete von unerwünschten Clients schon auf Layer 3 wegschnappen. Alternativ fällt mir noch tcp_wrappers ein, weiß aber nicht, ob man MySQL mit tcp_wrappers Unterstützung hinbekommt.

ckaos
Posts: 9
Joined: 2007-04-17 21:10
Location: Berlin

Re: Mysql Zugriff von anderen Servern

Post by ckaos » 2007-05-13 10:15

Willst du also explizit den Zugriff für eine bestimmte aussenstehende IP erlauben, reicht es dem user entsprechende Zugriffskontrolle zu geben.
Dachte ich auch aber funktioniert nicht, durch viel gegoogle wurde immer wieder auf "skip-networking" und "bind-address" auskommentieren hingeweisen.
"skip-networking" ist bei mir an dieser Stelle nicht vorhanden also auch nichts zum auskommentieren.
Kann es denn an der Firewall liegen?
Eigentlich müsste diese ja auch greifen wenn ich "bind-address" entferne,
tut sie aber nicht es funktioniert.

@jfreund
Da ich ja leider von der localen Maschine und 1-2 externen mit MySQL sprechen muss reicht es per "bind-address" nicht aus und wie oben beschrieben funktioniert "nur" ein Eintrag in "mysql.db" und "mysql.user" nicht aus.
Ich werd wohl deine 'berühmte Ausnahme' nehmen.