Einführung
MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem und Teil des beliebten LAMP-Stacks. Die mysql_secure_installation
Mit dem Skript können Sie die Sicherheit des MySQL-Servers erheblich verbessern.
In dieser Anleitung erfahren Sie, wie Sie einen MySQL-Server sichern.

Voraussetzungen
- Ein Linux-System, auf dem MySQL installiert ist (Sie verwenden ein anderes Betriebssystem? Sehen Sie sich an, wie MySQL auf einem Windows-Server, CentOS 7 oder CentOS 8 installiert und konfiguriert wird).
- Zugriff auf das Terminal (Strg+Alt+T ).
- Eine Netzwerkverbindung.
- Ein Konto mit Administratorrechten.
mysql_secure_installation-Befehl
Nach der Installation ist die MySQL-Serverinstanz auf Ihrem Computer unsicher und anfällig für Angriffe. mysql_secure_installation
ist ein Shell-Skript, das zur Sicherung der MySQL-Server-Installation auf Unix-Systemen entwickelt wurde. Das Skript konfiguriert Sicherheitseinstellungen und ermöglicht Ihnen Folgendes:
- Legen Sie ein Passwort für Root-Konten fest (siehe MySQL-Root-Passwort zurücksetzen oder ändern)
- Entfernen Sie die Root-Konten, auf die von außerhalb des lokalen Hosts zugegriffen werden kann.
- Anonyme Benutzerkonten entfernen.
- Löschen Sie die Testdatenbank, auf die anonyme Benutzer zugreifen können.
- Laden Sie die Benutzerberechtigungstabellen neu.
Die [option]
Argumente sind optional und werden im folgenden Abschnitt behandelt.
1. Führen Sie die mysql_secure_installation
aus Skript mit der folgenden Syntax:
sudo mysql_secure_installation [option]
2. Geben Sie Ihr Passwort ein und drücken Sie Y
um das VALIDATE PASSWORD
einzurichten Komponente, die prüft, ob das neue Passwort stark genug ist.
3. Geben Sie als nächstes 0
ein , 1
, oder 2
abhängig von der Passwortstärke, die Sie einstellen möchten:
0
- Niedrig . Das Passwort besteht aus mindestens 8 Zeichen.1
- Mittel . Das Passwort besteht aus mindestens 8 Zeichen (einschließlich Ziffern, Groß- und Kleinschreibung und Sonderzeichen).2
- Stark . Das Passwort besteht aus mindestens 8 Zeichen (einschließlich Ziffern, gemischter Groß- und Kleinschreibung und Sonderzeichen und vergleicht das Passwort mit einer Wörterbuchdatei).
4. Wenn Sie die erforderliche Stärke angegeben haben, geben Sie das Kennwort ein und wiederholen Sie es.

5. Das Programm wertet die Stärke Ihres Passworts aus und verlangt eine Bestätigung mit Y
weitermachen.

6. Als nächstes müssen Sie die folgenden Sicherheitsmerkmale beantworten:
- Anonyme Benutzer entfernen?
- Root-Anmeldung aus der Ferne verbieten?
- Testdatenbank und Zugriff darauf entfernen?
- Berechtigungstabellen jetzt neu laden?
Um das Skript mit der Standardeinstellung auszuführen, lautet die empfohlene Antwort auf alle diese Fragen Y
.
mysql_secure_installation-Optionen
Die mysql_secure_installation
-Skript akzeptiert bestimmte Optionen, die MySQL-Sicherheitskonfigurationen anpassen. Geben Sie die Optionen in der Befehlszeile oder im [client]
an Gruppe der Optionsdatei.
Die am häufigsten verwendete mysql_secure_installation
Optionen sind --host
und --port
.
Beispielsweise können Sie MySQL so konfigurieren, dass IPv6-Verbindungen von Clients zugelassen werden, die sich über Port 3307 mit dem lokalen Server verbinden. Dazu müssen Sie den ::1
hinzufügen lokale Hostadresse und ändern Sie den Standardport (3306) in 3307.
Daher würden Sie beim Ausführen des Installationsskripts den folgenden Befehl verwenden:
mysql_secure_installation --host=::1 --port=3307
Weitere unterstützte Optionen sind:
--basedir=dir | Geben Sie das Basisverzeichnis an. |
--print-defaults | Die Liste der Programmargumente drucken und beenden. |
--no-defaults | Verhindert, dass das Skript die Standardoptionen aus einer Optionsdatei liest. |
--defaults-file=# | Weist das Skript an, nur die angegebene Optionsdatei zu lesen # . |
--defaults-extra-file=# | Liest die angegebene Datei # nach dem Lesen der üblichen Optionsdateien. |
--defaults-group-suffix=str | Liest die üblichen Optionsgruppen, aber auch Gruppen mit den üblichen Namen und einem str Suffix. |
--help | Zeigt eine Hilfemeldung an und beendet sich. |
--host=host_name | Verbindet sich mit dem MySQL-Server auf dem angegebenen Host. |
--no-defaults | Verhindert, dass Skript Optionsdateien liest (außer .mylogin.cnf Datei). |
--password | Das Skript akzeptiert diese Option, ignoriert sie aber immer. Daher fordert das Skript bei jedem Aufruf zur Eingabe eines Passworts auf. |
--port=# | Geben Sie die TCP/IP-Portnummer an, zu der eine Verbindung hergestellt werden soll. |
--print-defaults | Druckt den Programmnamen und die Standardoptionen. |
--protocol={#} | Geben Sie ein Transportprotokoll an, das für die Verbindung zum Server verwendet werden soll {TCP | SOCKET | PIPE | MEMORY} . |
--socket=path | Geben Sie die Unix-Socket-Datei oder Windows named_pipe an Variable zum Verbinden mit localhost . |
--ssl=[1 | 0] | Aktiviert bzw. deaktiviert die Verbindungsverschlüsselung. Die Optionen beginnend mit --ssl kann auch den Pfad zu SSL-Schlüsseln und -Zertifikaten angeben. |
--ssl-ca=filename | Geben Sie die Datei an, die die Liste der vertrauenswürdigen SSL-Zertifizierungsstellen enthält. |
--ssl-capath=dir | Geben Sie den Verzeichnispfad an, der vertrauenswürdige Zertifikatsdateien der SSL-Zertifizierungsstelle enthält. |
--ssl-cert=filename | Der Pfad zu der Datei, die das Client-SSL-Public-Key-Zertifikat enthält. |
--ssl-cipher=list | Eine Liste zulässiger Chiffren für die Verbindungsverschlüsselung. |
--ssl-crl=filename | Der Pfad zu der Datei mit den Zertifikatsperrlisten. |
--ssl-crlpath=dir | Das Verzeichnis, das die Zertifikatssperrlistendateien enthält. |
--ssl-key=filename | Der Pfad zu der Datei, die das private SSL-Schlüsselzertifikat des Clients enthält. |
--ssl-mode=mode | Geben Sie einen der Sicherheitsstatus der Serververbindung in der Reihenfolge zunehmender Strenge an:[DISABLED | PREFERRED | REQUIRED | VERIFY_CA | VERIFY_IDENTITY] . |
--ssl-verify-server-cert | Weisen Sie den Client an, die Identität des Hostnamens anhand des Serverzertifikats zu überprüfen, das die Common Name-Identität enthält. |
--tls-version=list | Geben Sie eine durch Kommas getrennte Liste zulässiger TLS-Protokolle für verschlüsselte Verbindungen an. |
--use-default | Das Skript wird ohne Interaktion ausgeführt. |
--user=username | Geben Sie den Benutzernamen des MySQL-Kontos für die Verbindung zum Server an. |