Vorwort:Das Jahr neigt sich dem Ende zu. Ist es nicht an der Zeit, Ihre Datenbank zu überprüfen? Bei den Überprüfungen geht es im Allgemeinen um Aspekte der Kennwortsicherheit, wie etwa die Einstellungen zur Kennwortkomplexität und ob diese regelmäßig geändert werden. Insbesondere bei der Durchführung von Sicherheitsbewertungen verlangt die Bewertungsstelle eine kryptografische Sicherheitsstrategie. Tatsächlich kann das MySQL-System selbst die Kennwortkomplexität und Richtlinien zum automatischen Ablauf festlegen, es wird jedoch möglicherweise selten verwendet und die meisten Studenten verstehen es nicht im Detail. In diesem Artikel erfahren Sie, wie Sie die Kennwortkomplexität und die Richtlinie zum automatischen Ablauf des Datenbankkontos festlegen. 1. Richtlinieneinstellungen für die KennwortkomplexitätDas MySQL-System verfügt über ein Plugin „validate_password“, mit dem die Kennwortstärke überprüft werden kann. Kennwörter, die die angegebene Stärke nicht erfüllen, dürfen nicht festgelegt werden. MySQL 5.7 und 8.0 scheinen dieses Plug-In nicht standardmäßig zu aktivieren, was uns erlaubt, Passwörter nach Belieben festzulegen, wie etwa 123, 123456 usw. Wenn wir die Passwortstärke von der Wurzel aus regulieren möchten, können wir dieses Plug-In aktivieren. Sehen wir uns an, wie man die Passwortkomplexitätsrichtlinie über dieses Plug-In einstellt. 1) Überprüfen Sie, ob dieses Plugin installiert ist Geben Sie die MySQL-Befehlszeile ein und verwenden Sie „show plugins“ oder überprüfen Sie die mit „validate_password“ verbundenen Parameter, um festzustellen, ob dieses Plug-In installiert wurde. Wenn kein relevanter Parameter vorhanden ist, bedeutet dies, dass dieses Plug-In nicht installiert ist # Vor der Installation prüfen. Wenn es leer ist, bedeutet dies, dass dieses Plug-In nicht installiert ist.mysql> Variablen wie „validate%“ anzeigen; Leerer Satz (0,00 Sek.) 2) Installieren Sie das Plugin validate_password # Dieses Plugin kann mit dem Befehl INSTALL PLUGIN installiert werden. # Das Dateinamensuffix ist für jede Plattform unterschiedlich. Für Unix und Unix-ähnliche Systeme ist es .so und für Windows .dll mysql> PLUGIN INSTALLIEREN validate_password SONAME 'validate_password.so'; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,28 Sek.) # Mit „validate_password“ verbundene Parameter anzeigenmysql> Variablen wie „validate%“ anzeigen; +--------------------------------------+--------+ | Variablenname | Wert | +--------------------------------------+--------+ | validate_password_check_user_name | EIN | | Passwortwörterbuchdatei validieren | | | Passwortlänge validieren | 8 | | Anzahl der Passworteinträge in gemischter Groß- und Kleinschreibung validieren | 1 | | Anzahl_der_Passwort_validierungsnummern | 1 | | Passwortrichtlinie validieren | MITTEL | | Anzahl der Sonderzeichen für Passwortvalidierung | 1 | +--------------------------------------+--------+ 7 Zeilen im Satz (0,00 Sek.) 3) Erläuterung der Parameter zur Passwortstärke Nach der Installation des Plugins validate_password werden einige zusätzliche Parameter zur Kennwortstärke hinzugefügt. Diese Parameter sind anhand ihrer wörtlichen Bedeutung leicht zu verstehen. Im Folgenden finden Sie eine kurze Erläuterung einiger wichtiger Parameter. 1. Passwortrichtlinie validieren Stellt die Kennwortrichtlinie dar. Der Standardwert ist MEDIUM. Die konfigurierbaren Werte sind wie folgt:
2. validiere_Passwort_Wörterbuchdatei Eine Wörterbuchdatei zum Konfigurieren von Passwörtern. Wenn validate_password_policy auf STRONG gesetzt ist, kann eine Passwortwörterbuchdatei konfiguriert werden. Passwörter in der Wörterbuchdatei dürfen nicht verwendet werden. 3. validiere_Passwortlänge Wird verwendet, um die Mindestlänge des Passworts festzulegen. Der Standardwert ist 8 4. validate_password_mixed_case_count Wenn validate_password_policy auf MEDIUM oder STRONG eingestellt ist, die Anzahl der Klein- und Großbuchstaben im Kennwort. Der Standardwert ist 1 und der Mindestwert ist 0; der Standardwert ist, dass mindestens ein Klein- und ein Großbuchstabe vorhanden sein müssen. 5. validate_password_number_count Wenn validate_password_policy auf MEDIUM oder STRONG eingestellt ist, ist die Mindestanzahl der Ziffern im Passwort 1 und die Mindestanzahl 0. 6. validate_password_special_char_count Wenn validate_password_policy auf MEDIUM oder STRONG eingestellt ist, ist die Mindestanzahl von Sonderzeichen im Passwort 1 und die Mindestanzahl 0. 4) Spezifische Einstellungen für die Kennwortkomplexitätsrichtlinie Nachdem wir die oben genannten Parameter kennengelernt haben, können wir die Kennwortkomplexitätsrichtlinie entsprechend unserer eigenen Situation festlegen. Wenn ich beispielsweise möchte, dass das Kennwort mindestens 10 Zeichen lang ist und Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält, kann ich es wie folgt festlegen. 5) Testen Sie die Passwortkomplexität Die Kennwortkomplexitätsrichtlinie ist erst nach ihrem Inkrafttreten für Vorgänge gültig. Wenn Sie beispielsweise zuvor ein Konto mit dem Kennwort 123 hatten, können Sie das Konto weiterhin verwenden. Wenn Sie das Kennwort jedoch erneut ändern, muss es der Komplexitätsrichtlinie entsprechen. Als Nächstes testen wir die spezifische Auswirkung der Richtlinie zur Kennwortkomplexität. # Erstellen Sie einen neuen Benutzer und legen Sie das Passwort fest mysql> create user 'testuser'@'%' identified by '123'; FEHLER 1819 (HY000): Ihr Passwort erfüllt nicht die aktuellen Richtlinienanforderungen mysql> Benutzer ‚Testbenutzer‘@‚%‘ erstellen, identifiziert durch ‚ab123‘; FEHLER 1819 (HY000): Ihr Passwort erfüllt nicht die aktuellen Richtlinienanforderungen mysql> Benutzer ‚Testbenutzer‘@‚%‘ erstellen, identifiziert durch ‚Ab@123‘; FEHLER 1819 (HY000): Ihr Passwort erfüllt nicht die aktuellen Richtlinienanforderungen mysql> Benutzer ‚Testbenutzer‘@‚%‘ erstellen, identifiziert durch ‚Bsdf@5467672‘; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) # Passwort ändernmysql> alter user 'testuser'@'%' identified by 'dfgf3435'; FEHLER 1819 (HY000): Ihr Passwort erfüllt nicht die aktuellen Richtlinienanforderungen mysql> Benutzer „Testbenutzer“@„%“ ändern, identifiziert durch „dBsdf@5467672“; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) 2. Legen Sie fest, dass das Passwort automatisch abläuftZusätzlich zum Festlegen von Richtlinien zur Kennwortkomplexität können wir auch ein automatisches Ablaufen des Kennworts festlegen. Beispielsweise läuft das Kennwort alle 90 Tage ab und muss geändert werden, bevor es erneut verwendet werden kann. Auf diese Weise wird unser Datenbankkonto sicherer. Sehen wir uns an, wie man den automatischen Ablauf von Passwörtern einrichtet. Legen Sie die Ablaufzeit eines bestimmten Kontokennworts separat fest Verwenden Sie die Anweisung ALTER USER, um das Kennwort eines einzelnen Kontos ablaufen zu lassen oder den Ablaufzeitpunkt des Kontos zu ändern. # Überprüfen Sie den Status des Datenbankkontos über die Systemtabelle mysql.usermysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user; +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | Benutzer | Host | Passwort abgelaufen | Passwortlebensdauer | Passwort zuletzt geändert | Konto gesperrt | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | expuser | % | N | NULL | 05.01.2021 14:30:30 | N | | Wurzel | % | N | NULL | 30.10.2020 14:45:43 | N | | Testbenutzer | % | N | NULL | 04.01.2021 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.session | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | root | localhost | N | NULL | 30.10.2020 14:38:55 | N | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ 7 Zeilen im Satz (0,01 Sek.) # Sorgen Sie dafür, dass das Kennwort des Expuser-Kontos sofort abläuftmysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> wähle Benutzer, Host, Passwort abgelaufen, Passwortlebensdauer, letzte Passwortänderung, Konto gesperrt aus mysql.user; +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | Benutzer | Host | Passwort abgelaufen | Passwortlebensdauer | Passwort zuletzt geändert | Konto gesperrt | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | expuser | % | Y | NULL | 05.01.2021 14:30:30 | N | | Wurzel | % | N | NULL | 30.10.2020 14:45:43 | N | | Testbenutzer | % | N | NULL | 04.01.2021 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.session | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | root | localhost | N | NULL | 30.10.2020 14:38:55 | N | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ 7 Zeilen im Satz (0,00 Sek.) # Ändern Sie das Kontokennwort, sodass es nie abläuft mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE NEVER; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) # Legen Sie das Kennwort für dieses Konto so fest, dass es in 90 Tagen abläuftmysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE INTERVAL 90 DAY; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> wähle Benutzer, Host, Passwort abgelaufen, Passwortlebensdauer, letzte Passwortänderung, Konto gesperrt aus mysql.user; +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | Benutzer | Host | Passwort abgelaufen | Passwortlebensdauer | Passwort zuletzt geändert | Konto gesperrt | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ | Exposeur | % | N | 90 | 05.01.2021 14:41:28 | N | | Wurzel | % | N | NULL | 30.10.2020 14:45:43 | N | | Testbenutzer | % | N | NULL | 04.01.2021 17:22:37 | N | | mysql.infoschema | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.session | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | mysql.sys | localhost | N | NULL | 30.10.2020 14:37:09 | Y | | root | localhost | N | NULL | 30.10.2020 14:38:55 | N | +------------------+----------+------------------+----------------------+----------------------------------+----------------+ 7 Zeilen im Satz (0,00 Sek.) # Lassen Sie dieses Konto die globale Standardrichtlinie zum Ablauf von Passwörtern verwenden mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE DEFAULT; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) Die Systemtabelle mysql.user zeichnet die relevanten Informationen jedes Kontos auf. Wenn der Wert im Feld password_expired „Y“ ist, bedeutet dies, dass das Kennwort abgelaufen ist. Sie können sich mit einem abgelaufenen Kennwort noch anmelden, aber keine Vorgänge ausführen. Wenn Sie Vorgänge ausführen, wird Ihnen folgende Meldung angezeigt: FEHLER 1820 (HY000): Sie müssen Ihr Kennwort mit der Anweisung ALTER USER zurücksetzen, bevor Sie diese Anweisung ausführen. Sie müssen das Kennwort ändern, bevor Sie normale Vorgänge ausführen können. Bei einem Konto mit einer bestimmten Ablaufzeit, z. B. 90 Tagen, vergleicht das Datenbanksystem die Differenz zwischen der aktuellen Zeit und der Zeit, zu der das Kennwort zuletzt geändert wurde. Wenn seit der letzten Kennwortänderung mehr als 90 Tage vergangen sind, wird das Kontokennwort als abgelaufen markiert und das Kennwort muss geändert werden, bevor ein Vorgang ausgeführt werden kann. Festlegen der globalen Ablaufrichtlinie Um eine globale Richtlinie zum automatischen Ablauf von Passwörtern zu erstellen, verwenden Sie die Systemvariable default_password_lifetime. Vor Version 5.7.11 betrug der Standardwert von default_password_lifetime 360 (das Kennwort muss ungefähr einmal im Jahr geändert werden) und in späteren Versionen beträgt der Standardwert 0, was bedeutet, dass das Kennwort nicht abläuft. Die Einheit dieses Parameters ist Tag. Wir können diesen Parameter beispielsweise auf 90 setzen, was bedeutet, dass die globale Richtlinie für den automatischen Ablauf von Passwörtern 90 Tage beträgt. # Legen Sie die globale Ablaufrichtlinie fest. Ändern Sie sie zuerst manuell und fügen Sie sie dann der Konfigurationsdatei hinzu. mysql> SET GLOBAL default_password_lifetime = 90; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Variablen wie „default_password_lifetime“ anzeigen; +-----------------------------------------+----------+ | Variablenname | Wert | +-----------------------------------------+----------+ | Lebensdauer des Standardpassworts | 90 | +-----------------------------------------+----------+ 1 Zeile im Satz (0,00 Sek.) # Schreiben Sie die Konfigurationsdatei, damit der Neustart wirksam wird [mysqld] Standardkennwortlebensdauer = 90 Obwohl Sie ein abgelaufenes Kennwort „zurücksetzen“ können, indem Sie es auf seinen aktuellen Wert zurücksetzen, ist es aus politischen Gründen besser, ein anderes Kennwort zu wählen. Zusammenfassen:In diesem Artikel werden hauptsächlich zwei Sicherheitsstrategien für Datenbankkennwörter vorgestellt: Kennwortkomplexität und Kennwortablaufstrategie. Je mehr Strategien Sie haben, desto mehr Sicherheit haben Sie. Denken Sie daran: Sicherheit ist keine Kleinigkeit. Oben finden Sie den ausführlichen Inhalt von „Ist Ihr MySQL-Passwort sicher?“ zum Jahresende. Weitere Informationen zur Sicherheit von MySQL-Passwörtern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Das Prinzip und die Richtung von JavaScript
>>: Überblick über die grundlegenden Bestandteile von HTML-Webseiten
Der Syntaxstil der CSS-Stilregel ist die Grundein...
In den letzten Projekten werden viele Formulare e...
Erstellen Sie einen MySQL-Benutzer und autorisier...
Das Layout des Textes unterliegt je nach Sprache ...
Benutzergruppen Unter Linux muss jeder Benutzer e...
Eine einfach verkettete Liste kann nur vom Anfang...
Vorwort Kürzlich stieß ich in einem Projekt auf e...
Hintergrund Wenn Sie am Blockchain-Protokollmodul...
Docker installieren Aktualisieren Sie das Yum-Pak...
Wenn ein Webprojekt immer größer wird, werden sei...
Dieser Artikel erläutert anhand eines konkreten B...
In diesem Artikel müssen wir lernen, wie man Bild...
Inhaltsverzeichnis 1. Was ist Javascript? 2. Was ...
1. Laden Sie das MySQL 5.7-Installationspaket von...
Inhaltsverzeichnis Mixins-Implementierung Zusamme...