# [ISPConfig3 MultiServer]Datenbanken von aussen sichern.



## PierreR32 (22. Juni 2010)

Hallo Leute, 

ich habe endlich meinen MultiServer im Betrieb und alles Läuft einwandfrei, soweit  

Nun habe ich aber ein kleines Sicherheit Problem. 
Da der DB Server auch extern und Standalone läuft muss er ja auf remoteZugriffe reagieren damit der WebServer auf Ihn zugreifen kann. 

Kann ich in MySql irgendwie NUR dem Webserver den Remote Zugriff erlauben ?

Gruß
Pierre


----------



## Burge (22. Juni 2010)

ich denke wenn du hinter dem benutzernamen der wahrscheinlich benutzer@% lautet das % durch die ip des webservers ersetzt.


----------



## PierreR32 (22. Juni 2010)

Naja wenn ich das für jeden Benutzer dann machen muss ist das schon mühseelig. 
Es soll halt nur die IP vom Webserver erlaubt sein.


----------



## Burge (22. Juni 2010)

dann ne ip tables rule erstellen die nur die ip vom webserver an den port glaube 3306 durchlässt.


----------



## Quest (22. Juni 2010)

Ich hab da schon mal ein Ticket zu dem Thema aufgemacht, wurde aber bisher noch nicht berücksichtigt.

http://bugtracker.ispconfig.org/index.php?do=details&task_id=1057


----------



## PierreR32 (22. Juni 2010)

Zitat von Burge:


> dann ne ip tables rule erstellen die nur die ip vom webserver an den port glaube 3306 durchlässt.


ja nur dann gehen die Remote Zugänge nicht mehr. 
Das ist alles nicht so einfach


----------



## Till (22. Juni 2010)

> Kann ich in MySql irgendwie NUR dem Webserver den Remote Zugriff  erlauben ?


Ja. Du brauchst nur die IP des Webservers beim anlegen der mysql DB in ISPConfig in das Feld allowed IP's eintragen.


----------



## Hallfred (23. Juni 2010)

Ich denke mal, da hat Quest schon alles wichtige im BugTracker drin.
Wird uns wohl nichts anderes übrig bleiben als auf eine Reaktion zu warten.

Es müsste ein genereller Remote-Zugriff auf den Datenbankserver vom
Webserver aus erlaubt werden.
Weiterhin sollte der Kunde die Möglichkeit haben den externen Zugriff auf
seine Datenbank zu regeln (Alle oder IPs)

Das wäre sehr wichtig wie ich finde.


----------



## Till (23. Juni 2010)

Und genau das geht bereits und das kann der user auch selbst einstellen. Siehe post #7. Der User kann das alles über das Feld "allowed IP's" in den Datenbank einstellungen regeln. Wenn das feld bei Dir nicht vorhanden ist, hast Du keine aktuelle ISPConfig Version installiert.


----------



## PierreR32 (23. Juni 2010)

Zitat von Till:


> Und genau das geht bereits und das kann der user auch selbst einstellen. Siehe post #7. Der User kann das alles über das Feld "allowed IP's" in den Datenbank einstellungen regeln. Wenn das feld bei Dir nicht vorhanden ist, hast Du keine aktuelle ISPConfig Version installiert.


OK kann man das Feld irgendwo manuell vorformatieren ? Weil bei paar 100 Datenbanken will ich nicht alles per hand eintragen. 

Gruß


----------



## Hallfred (23. Juni 2010)

Zitat von Till:


> Und genau das geht bereits und das kann der user auch selbst einstellen. Siehe post #7. Der User kann das alles über das Feld "allowed IP's" in den Datenbank einstellungen regeln. Wenn das feld bei Dir nicht vorhanden ist, hast Du keine aktuelle ISPConfig Version installiert.


Grundsätzlich richtig...

Dummerweise nur, sollte der User nun z.B. den Haken bei "Remote-Access" rausnehmen geht nix mehr. Von den Usern nun noch zu verlangen, die IP vom Webserver da jedesmal einzutragen halte ich nicht wirklich für kundenfreundlich  

Evtl hab ich mich nicht richtig ausgedrückt... ICH finde es an sich einfach und verständlich, nur man muss halt immer das Worst-Case-Szenario (DAU) im Auge haben 

Ich würde einiges darauf wetten, das sich durch diese Einstellungen die Anrufe auf der Hotline mindestens verdreifachen


----------



## Till (23. Juni 2010)

Zitat von PierreR32:


> OK kann man das Feld irgendwo manuell vorformatieren ? Weil bei paar 100 Datenbanken will ich nicht alles per hand eintragen.


Du kannst den default für Felder in der form Datei des jeweiligen Formulares eintragen. Also in diesem Fall in sites/form/database.tform.php


----------



## Till (23. Juni 2010)

> Dummerweise nur, sollte der User nun z.B. den Haken bei "Remote-Access"  rausnehmen geht nix mehr.


Und wenn er die Datnebank löscht, das Passwort ändert, seinen Rechner formatiert oder den Netzwerk Stecker seines DSL Modems zieht geht auch nichts mehr 

Außerdem ist die empfohlene Konfiguration (aus performance Gründen) dass die mysql DB des jeweiligen Webservers auf localhost ist. Es zwingt Dich ja niemand, einen remote SQL Server zu betreiben der dann ja auch noch performance Nachteile für Deine Kunden mit sich bringt. Lokale Sockets sind nunmal schneller als eine TCP Verbinung zu einem externen Server.


----------



## PierreR32 (23. Juni 2010)

Zitat von Till:


> Du kannst den default für Felder in der form Datei des jeweiligen Formulares eintragen. Also in diesem Fall in sites/form/database.tform.php


ok nochmal für doofe 

Wenn in dem Feld allow IPs eine IP Adresse drin steht dann darf nur die eine IP auf die Datenbank zugreifen ? 
Wenn der User jetzt hingeht und das häkchen bei remote Access weg macht geht nichts mehr. Oder ?

Wo ich eigentlich drauf hinaus will, gibt es keine Möglichkeit zb. MySQL direkt zusagen das er generell Anfragen auf alle User von der IP Adresse des Webservers zuerlauben ? 
Wenn der Kunde dann remote erlauben will oder nicht wäre dann egal der Webserver dürfte generell drauf zugreifen. 

Gruß


----------



## Till (23. Juni 2010)

> Wenn in dem Feld allow IPs eine IP Adresse drin steht dann darf nur die  eine IP auf die Datenbank zugreifen ?
> Wenn der User jetzt hingeht und das häkchen bei remote Access weg macht  geht nichts mehr. Oder ?


So steht es in der Beschreibung des Eingabefeldes.



> Wo ich eigentlich drauf hinaus will, gibt es keine Möglichkeit zb. MySQL  direkt zusagen das er generell Anfragen auf alle User von der IP  Adresse des Webservers zuerlauben ?


nein. MySQL regelt das pro User und DB.


----------



## PierreR32 (23. Juni 2010)

Sorry Till ich nochmal. 
Wo im Code muss da die IP HardCoded werden ?


```
'remote_ips' => array (
              'datatype'  => 'TEXT',
              'formtype'  => 'TEXT',
              'validators'  => array (  0 => array (  'type' => 'CUSTOM',
                                                      'class' => 'validate_database',
                                                      'function' => 'valid_ip_list',
                                                      'errmsg' => 'database_remote_error_ips'),
```
Danke für deine Hilfe. 

Gruß


----------



## Till (23. Juni 2010)

In dem Teil, den Du nicht gepostet hast, Die zeile heißt "default".


----------



## PierreR32 (23. Juni 2010)

Zitat von Till:


> In dem Teil, den Du nicht gepostet hast, Die zeile heißt "default".


Also der Bereich:


```
),
              'default' => '192.168.0.1',
              'value'   => '',
              'width'   => '60'
```
So wie mit der IP ?


----------

