Hallo Native Network!
Heute möchte ich euch Teil 1 meines kleinen Vortrages über den richtigen Weg zu den Daten in einer Datenbank vorstellen.
Erstmal aber, wieso überhaupt? Jeder von euch der einen Server besitzt, hat auch zu 99% einen Datenbank Server installiert. Egal ob MariaDB, MySql oder Drizzle. Datenbanken sind etwas tolles um Daten zu speichern, aber auch tolle Orte für neugierige Blicke. Also muss ein Weg her um mit dem DBServer zu kommunizieren, ohne jemanden eine Angriffsfläche.
Kurz und Knapp:
Der einfache Weg: Lokal auf dem Server, alles bleibt Lokal und verlässt nie den Server. Aber: Umständlich wie fi** wenn man von woanders auf die Daten zugreifen möchte
Der unsichere Weg: Port 3306/TCP ins Internet lassen. MySql unterstützt zwar die Limitierung eines Benutzers auf eine IP Adresse (siehe Hostname), aber dennoch unsicher.
Der sichere Weg: SSH Tunnel oder VPN. Es ist einfach und toll, beschränkt sich nicht nur auf den DBServer sondern auf das gesamte Netzwerk, somit lassen sich auch andere Dienste von dem Server sicher verwenden.
Welchen Weg wir nehmen liegt wohl auf der Hand, den sicheren natürlich!
Aber was ist der sichere Weg? Der sichere Weg ist ein Tunnel, eine Konvertierung und Übertragung eines Kommunikationsprotokolls der für den Transport in ein anderes Kommunikationsprotokoll eingebettet wird.
Whä!? Quatsch mal Deutsch alter!
Ihr (Client/Server) bepackt ein Rotes Auto (Mutter Protokoll *) am Anfang des Rennsteigtunnel in Thüringen mit Koffer (Tochter Protokoll **), die Koffer sind eure Daten die Ihr via Tunnel übertragen wollt. Am anderen Ende des Tunnels steht euer Freund (Server/Client), dem sagt Ihr das seine Koffer in dem Roten Auto sind. Das Auto transportiert die Koffer ans andere Ende, euer Freund Vorort stoppt das Auto und nimmt seine Koffer. Evola, ein Tunnel.
Man kann bspw. als Auto das TCP Protokoll verwenden und als Koffer das HTTP Protokoll eures Webservers. Es werden also HTTP Pakete via TCP Protokoll verschickt und am ende in der Software (Client) wieder in HTTP konvertiert. Mehr dazu aber in Teil 2.
Aber kann dann nicht einfach jemand im Tunnel stehen und das Auto anhalten und sich meine Koffer nehmen?
Nein, solange man die Authentifizierung nicht abschaltet. Ihr selber, die das Auto bepacken, müssen vorher durch eine Schleuse (Authentifizierung) in der Ihr euch Authentifiziert. Steht Ihr nicht drauf, kommt Ihr nicht rein. Die Authentifizierung erfolg via Benutzername und Passwort oder Zertifikat.
Erklärungen:
* Das Protokoll in dem die Daten/das Protokoll eingebettet werden
** Die Daten/Das Protokoll die wir einbetten wollen
Schaut euch bitte Teil 2 an!
Gruß Pac