In der Handbuch wird davon ausgegangen. Die folgenden Befehle in diesem Unterabschnitt sollen auf der Shell des Servers ausgeführt werden. Lassen Sie uns MySQL schnell installieren und auf Ubuntu einrichten.
$ sudo APT UpdateDer letzte Befehl wird ein Skript ausführen, um einige der unsicheren Standardeinstellungen von MySQL zu ändern. Erstens wäre eine Aufforderung zur Installation eines Kennwort -Validierungs -Plugins. Dies würde überprüfen, ob das neue Passwort, das Sie für Benutzer einstellen, stark genug ist oder nicht. Sie können dieses Plugin abmelden, wenn Sie möchten. Danach werden Sie aufgefordert, MySQL Root -Benutzerkennwort festzulegen. Legen Sie ein starkes Stammbenutzerkennwort fest.
Drücken Sie Y | Y für Ja, eine andere Taste für Nein: nDanach kann man so ziemlich sagen Ja Zu jeder anderen Eingabeaufforderung in diesem Skript, wenn das Skript den Testbenutzer beseitigt, die Testdatenbank entfernt, die Remote -Root -Anmeldung deaktiviert und schließlich seine Berechtigungstabelle neu lädt. Sobald dies erledigt ist, erstellen wir eine Datenbank und einen neuen Benutzer, der auf diese Datenbank auf diese Datenbank zugreifen kann, ohne dass SSH (oder Anmeldung) in die UNIX/Linux -Shell des Servers zugänglich ist. Aber bevor wir das tun, überprüfen wir, ob unser Aufbau von MySQL TLS integriert hat oder nicht.
Überprüfen Sie, ob TLS verfügbar ist
TLS ist nur in MySQL erhältlich, wenn MySQL so kompiliert wird, dass es in sie eingebaut ist. Es gibt kein dynamisches Modul zum Laden. Wenn Sie sich also nicht sicher sind, dass Ihr MySQL -Paket TLS installiert hat oder nicht, können Sie dies durch Ausführen überprüfen:
$ sudo mysqlWenn es heißt, dass die Variablen HABE_OPENSSL Und HABE_SSL Werte einstellen auf BEHINDERTE Dann haben Sie SSL und können gut gehen (Sie müssen es nur aktivieren, indem Sie weiter lesen). Wenn die Werte auf festgelegt sind NEIN, Dann müssen Sie eine andere Version von MySQL in Ihrem Paketmanager oder anderswo erhalten.
MySQL> BeendenMySQL konfigurieren
Standardmäßig hört MySQL Server nur auf der Loopback -Schnittstelle zu, dh in der Adresse 'localhost' oder '127 heißt es.0.0.1 ', für Remote -Verbindungen möchten wir, dass es auch auf die öffentliche statische IP zuhört. Öffnen Sie dies die Datei, /etc/mysql/mein.CNF und fügen Sie die folgenden Zeilen am Ende an.
…Hier ersetzen Sie die mit der tatsächlichen IP Ihres Servers. Wenn Sie Zweifel daran haben, welche IP zu verwenden ist, können Sie 0 verwenden.0.0.0, um auf allen Schnittstellen zu hören. Starten Sie nun den Server neu, damit die neue Konfiguration stattfinden kann.
$ sudo Service MySQL NeustartRemote -Benutzer erstellen
Hinweis: Wenn Sie die Datenbank in der Produktion verwenden möchten, besteht die Möglichkeit, dass der Client, der eine Verbindung zu dieser Datenbank herstellt - Ihr Front -End - eine statische IP hat. Wenn dies der Fall ist, ersetzen Sie das Prozentsatz "%" -Symbol durch die entsprechende Client -IP. "%" ist nur eine Wildcard, was "einen beliebigen Wert" bedeutet. Wir werden unsere konfigurieren MyUser Damit sich es von jeder IP -Adresse anmelden kann (z. B. die sich ändernde IP -Adresse Ihrer inländischen Breitbandverbindung), die wohl unsicher ist.
$ sudo mysqlErsetzen 'Passwort' mit einem tatsächlichen starken Passwort und wir haben einen Benutzer namens benannt MyUser Dies hat einen vollständigen Zugriff auf die Datenbank mydatabase.
TLS aktivieren (auch als "SSL" bekannt))
Während Sie als MySQL -Root -Benutzer bei der MySQL -Shell angemeldet sind, können Sie den Verbindungsstatus überprüfen, indem Sie \ s eingeben:
MySQL> \ sAchten Sie auf die hervorgehobenen Linien über Verbindung und SSL. Während dieser Zustand für eine lokale Anmeldung des Stammbenutzer MyUser Der Verbindungstyp ist über TCP/IP kein Rohbuchse und eine SSL -Chiffre wird verwendet. Es gibt einen einfachen Befehl, um dies zu erreichen. Aber zuerst verlassen wir unsere MySQL -Eingabeaufforderung.
MySQL> BeendenJetzt rennen,
$ sudo mysql_ssl_rsa_setup --uid = mysql
Sobald dies erledigt ist, können Sie sich das ansehen HABE_SSL Variable nochmal.
Anmelden von einem separaten MySQL -Client
Es gibt neue Parameter, die darauf hinweisen, dass TLS -Zertifikat und der Schlüssel vorhanden sind und TLS aktiviert ist. Jetzt können Sie sich von diesem Computer anmelden, einen MySQL -Client auf Ihrem lokalen Computer öffnen. Wenn Sie keinen (und verwenden Debian oder Ubuntu), erhalten Sie einen MySQL -Shell -Client:
$ sudo apt installieren Sie MySQL-ClientErsetze das MyUser Und Geben Sie mit Ihrem tatsächlichen Benutzernamen und Ihres Server -IP Ihr ausgewähltes Kennwort ein und Sie sollten in der Datenbank angemeldet werden. Überprüfen Sie die Verbindung:
MySQL> \ sSie können sehen, dass jetzt RSA verwendet wird, um Ihren Verkehr zu verschlüsseln, und die Verbindung zu einer bestimmten IP über TCP/IP ist. Jetzt ist Ihre Verbindung zu dieser MySQL -Datenbank sicher.
Dies ist der einfachste Weg, um Ihre Remote -MySQL -Verbindungen mit TLS zu sichern. Denken Sie daran, dass dies nicht dasselbe ist wie die Sicherung eines Phpmyadmin -Clients gegenüber TLS. Das ist TLS und HTTP zusammen und benötigt, um die Weboberfläche zu sichern. Die Verbindung zwischen dem PhpMyAdmin, der Ihre Web -Benutzeroberfläche und die Datenbank möglicherweise noch unverschlüsselt ist, was in Ordnung ist, solange sie sich auf demselben Server befinden.
Sie können mehr über die TLS -Verbindung, die zugrunde liegenden CAS, Zertifikate und das Schlüsselmanagement in den offiziellen Dokumenten von MySQL erfahren.