Sicherheit bei mySQL und Client/Server-Verbindung

Post Reply
Message
Author
curana
Posts: 41
Joined: 27. Nov 2004 11:56

Sicherheit bei mySQL und Client/Server-Verbindung

#1 Post by curana »

Hallo.
Ich habe heute mal wieder ein paar Fragen, die ich versuche zu gliedern sodass sie einfach behandelt werden können:

1) Wie kann ich für eine webbasierte Client/Server-Verbindung sicherstellen, dass nur ein bestimmter PC Zugriff auf die Oberfläche hat?
-> Ich hab mal was von Zertifikaten für den IE oder Mozilla etc. gehört, die man installieren kann?! Welche Software muss man da einsetzen bzw. in welche Richtung muss ich da suchen?

2) Ist VPN die sicherste Möglichkeit?

3) Wie sicher würdet ihr eine Verbindung mit SSL (ist 128 Bit das höchste?) einschätzen?
-> Hier geht es nur um die Verbindung an sich, es ist klar dass SSL keine Authentifizierungsmethode ist!

4) Ist mySQL eine sichere Datenbank? Kann ich ohne das Admin-Passwort die Daten lesen, angenommen ich "klaue" die Festplatte?

Wäre schön, wenn ihr mir da ein paar Meinungen oder Tipps sagen/geben könntet.

Danke.

User avatar
elwood67
Posts: 232
Joined: 19. May 2004 10:03
Location: Nürnberg

Fragen

#2 Post by elwood67 »

zu 1)
Welche Oberfläche?
Zugriffe regelst Du am besten über die iptables Einstellungen. Hier kannst Du genau sagen, welche IP mit welchem Protokoll über welchen Port auf Deinen Dienst darf.

zu 2)
kommt darauf an, was Du vorhast. VPN ist ja auch nur ein Oberbegriff für verschiedene Szenarien und beschreibt eigentlich nur die Tunnelung von Verbindungen. Internet!

zu 3)
Auch bei SSL kann der Server vom Client ein Zertifikat verlangen, also auch eine Authentifizierung. Das mit den Zertifikaten kommt nicht immer nur vom Server.

zu 4)
Du kannst die Daten in einer mysql Datenbank verschlüsseln. Nur wo liegt dann dieser Schlüssel??!! Also wenn man Gefahr läuft, dass die Platte "geklaut" werden kann, dann muß man sich keine Gedanken mehr darum machen, ob mysql sicher ist...
Gruß Jürgen
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#3 Post by curana »

Danke, das hat mir schonmal weitergeholfen.

Mit Oberfläche meine ich bspw. eine Internetseite oder sowas. Will die eben bestmöglich nach außen schützen, bzw. den widerrechtlichen Zugriff auf die Datenbank.
Last edited by curana on 20. May 2007 22:54, edited 1 time in total.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#4 Post by klopskuchen »

> Mit Oberfläche meine ich bspw. eine Internetseite oder sowas.

Wenn du den Zugriff von nur bestimmten Clienten auf HTML-Dokumente meinst, über die
die Datenbank abgefragt werden kann- das fällt unter die Zugriffskontrolle des Webservers.
Bei Apache sind htaccess und htusers deine Freunde.
Die Rechteverteilung der Datenbanken selbst regelst du so wie den Rest des Systems-
mit den "stinknormalen" Lesr-, Schreib- und Ausführungsrechten.
Der mysql-client bietet zwar "eigene" Befehle für die Rechtekontrolle im Datenbankverzeichnis.
Allerdings nutzen die ohnehin die onboard-tools wie chmod usw.

MfG, Klopskuchen
When all else fails, read the instructions .

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#5 Post by curana »

Ich will im Grunde die HTML-Dokumente per PHP und mysql sichern, weil ich bei htaccess diese Abfragefenster nicht schön finde.
Außerdem will ich nicht nur per Passwort und Benutzername sichern.

Daher geht es mir primär auch um die Sicherheit der Datenbank.

Kann man per PHP an htaccess übergeben?

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#6 Post by klopskuchen »

> Ich will im Grunde die HTML-Dokumente per PHP und mysql sichern,
> weil ich bei htaccess diese Abfragefenster nicht schön finde.
Zum Verständnis: Möchtest du einen gesicherten Bereich im Dokumentenverzeichnis des Webservers einrichten,
auf den man nur mit Passwort Zugriff erhält?
Oder sind es mehr allgemeine "Sorgen" um deine Datenbanken?
Die Datenbankabfrage erfolgt über php-scripts die du schreibst. Anders kommt ein client (wenn alles iO. ist)
da nicht ran. Die Administration von mysql ist eine andere Geschichte. Die erfolgt über direkten Zugriff über
entweder tools wie mysqladmin auf Port 3306 (<-default) oder lokales Schreiben in den betreffenden Verzeichnissen
(eingeschränkt).
Das heisst also das ein webclient das bekommen kann was du mit einem phpscript zulässt. Die Filterung des Ports
auf dem mysql horcht ist eine andere Geschichte.
Apache sowie mysql haben eine sehr gute und umfangreiche Dokumentation dabei. Mit der kannst du dir so ziemlich
alles selbst beantworten. Das das aber nicht von heute auf morgen geht dürfte klar sein?!

MfG, Klopskuchen
When all else fails, read the instructions .

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#7 Post by curana »

Ich will, dass keiner auf die Datenbank zugreifen kann, wenn er nicht angemeldet ist über User/PW.

Das ist mein Hauptanliegen. Desweiteren würde ich gerne Dateien (PDFs oder sowas) gegen Zugriff von außen schützen, außer man ist eben angemeldet. Aber ich denke da ist das hier vielleicht das falsche Forum.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#8 Post by klopskuchen »

> Ich will, dass keiner auf die Datenbank zugreifen kann, wenn er nicht angemeldet ist über User/PW.
Na dann doch htaccess und htusers. Was ist so schlimm an den pop-ups? Irgendwo müssen die Zugangsdaten
ja eingegeben werden. Die Zugangsdaten können zwar mit der url mitgegeben werden, aber die meisten Leute
benutzen in erster Linie Bookmarks und/ oder Links.

> Desweiteren würde ich gerne Dateien (PDFs oder sowas) gegen Zugriff von außen schützen...
Du willst Dateien _bereitstellen_ aber wiederum nicht freigeben? Oder nur an bestimmte Clienten?
-> Zugriffskontrolle Apache
Such dir mit google mal ein paar HowTos zum Thema LAMP. Wenn du weisst wie das ganze überhaupt funktioniert
erledigen sich deine Fragen von selbst.

MfG, Klopskuchen
When all else fails, read the instructions .

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#9 Post by curana »

Ich hab das vielleicht bissl unklar dargestellt. Ich such mal in anderen Foren, vielleicht wird mir dann eher klar was ich brauche.

Mein Problem ist eigentlich nur das Schützen von "Nicht-Internetseiten", sozusagen. Bzw. das Problem ist das, dass ich nicht das htaccess-Fenster will.

Dennoch danke für deine Mühen.

User avatar
elwood67
Posts: 232
Joined: 19. May 2004 10:03
Location: Nürnberg

naja php halt....

#10 Post by elwood67 »

Nehmen wir an, es sollen user auf die Datenbank zugreifen.
Also eigtetnlich macht das ja PHP und nicht der User. ;-)

Hier mal eine kleine "Grafik" (Sind alles PHP Seiten):

[Startseite] ->Link-> [Loginseite] -> Login okay? -> [Datenausgabe]
-> Login falsch -> [Fehlerseite]. ----> !Kein Zugriff

Soll heissen, wenn der User/Passwort in der Datenbank existiert, darf er auch rein und bekommt die Seiten angezeigt. PHP wird auf dem Server "gemacht" und die fertigen Seiten zum Browser geschickt.

Es kommt keiner über den Browser auf Deine Datenbank....normalerweise nicht. Man sollte dann aber auch PHP so gestalten, dass "böse" Anhänge an Scripts nicht übernommen werden.
Gruß Jürgen
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#11 Post by curana »

Richtig. Genau so ist es.

Nur: Wie sicherst du nun Dokumente die in Verzeichnissen liegen? Das kannst du nicht über PHP machen, oder?

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#12 Post by klopskuchen »

Lesen!
When all else fails, read the instructions .

eyz
Posts: 2
Joined: 12. Feb 2005 1:47
Contact:

#13 Post by eyz »

hallo ihr :)

also, ich hab auch eine Frage zum Thema Sicherheit bei cgi/sql

Und zwar.. Ich hol mir Username/PWD über ein Formular mit $_REQUEST['username/pwd'] ab. Falls diese Daten mit Daten in der sql-datenbank übereinstimmen, wird eine session-variable registriert.. und ich kann über die session-variable sehen ob ein user oder ein admin eingeloggt ist.

Die Verbindungs-Daten stehen in einer datei, die in einem Ordner auf dem Sever liegt, der mit htaccess geschützt ist.

Seht ihr vielleicht eine Sicherheitslücke oder dergleichen?
Ich bin gerade dabei, mich über dieses Thema ausführlicher zu informieren.. Falls ihr ein paar nützliche Links parrat hättet, wäre ich euch super dankbar :)

mfg eyz

curana
Posts: 41
Joined: 27. Nov 2004 11:56

#14 Post by curana »

Da würde mich interessieren, ob du auf die Datei zugreifen kannst, wenn der Ordner per htaccess geschützt ist. Poppt dann nicht das htaccess-Fenster auf zum anmelden?

Ich versteh das nämlich einfach nicht. Ich dachte der htaccess-geschützte Ordner ist nicht zugänglich?! Oder für serverseitige Abfragen schon?

eyz
Posts: 2
Joined: 12. Feb 2005 1:47
Contact:

#15 Post by eyz »

was ich weiß, ist die Datei im geschützten Ordner (htaccess geschützt) nicht zum einsehen.. ausser man sitzt lokal am Rechner, dann ist alles möglich

auf die Datei kann ich aber zb.: über php: include() oder require() zugreifen, und die Daten auslesen

somit besteht für den client keine chance auf die "sicheren" Daten zuzugreifen

?!

mfg eyz

Post Reply