Einführung in das MySQL Connection Control Plugin

Einführung in das MySQL Connection Control Plugin

1. Einführung in das Verbindungssteuerungs-Plugin (connection_control)

Der MySQL -Server enthält eine Plug-in-Bibliothek, mit der Sie verschiedene Plug-ins anpassen und installieren können. Das Plug-In connection_control ist eines davon. Es wird hauptsächlich dazu verwendet, die Verzögerung der Client-Antwort zu steuern, nachdem eine bestimmte Anzahl aufeinanderfolgender Anmeldevorgänge fehlgeschlagen ist. Dieses Plug-In kann das Risiko eines Brute-Force-Logins vom Client aus wirksam verhindern. Das Plugin besteht aus den folgenden zwei Komponenten:

  • CONNECTION_CONTROL : Wird verwendet, um die Anzahl der Anmeldefehler und die verzögerte Reaktionszeit zu steuern.
  • CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS : Protokolliert fehlgeschlagene Anmeldeversuche in der Systemdatenbank „ information_schema “.

Der Basisname der Verbindungssteuerungs-Plugin-Datei ist connection_control . Die Dateinamenserweiterung ist für jede Plattform unterschiedlich (.so für Unix und Unix Systeme, .dll für Windows ). Im Folgenden wird das Plug-In connection_control “ am Beispiel Linux Systems installiert. Windows System müssen Sie lediglich .so in .dll ändern.

1.1 Installieren Sie das connection_control-Plugin dynamisch

mysql> PLUGIN CONNECTION_CONTROL INSTALLIEREN SONAME 'connection_control.so';
Abfrage OK, 0 Zeilen betroffen (0,04 Sek.)

mysql> PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS INSTALLIEREN SONAME 'connection_control.so';
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

1.2 Plugin-Status überprüfen

mysql> AUSWÄHLEN
    -> PLUGIN_NAME, PLUGIN_STATUS 
    -> VON
    -> INFORMATION_SCHEMA.PLUGINS 
    -> WO
    -> PLUGIN_NAME LIKE 'Verbindung%';
+------------------------------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+------------------------------------------+---------------+
| VERBINDUNGSSTEUERUNG | AKTIV |
| CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | AKTIV |
+------------------------------------------+---------------+

1.3 Nach Abschluss der Installation können Sie die relevanten Systemvariablen sehen

mysql> Variablen wie „connection_control%“ anzeigen;
+-------------------------------------------------+------------+
| Variablenname | Wert |
+-------------------------------------------------+------------+
| Schwellenwert für fehlgeschlagene Verbindungen der Verbindungssteuerung | 3 |
| Verbindungssteuerung_maximale_Verbindungsverzögerung | 2147483647 |
| Verbindungssteuerung_min_Verbindungsverzögerung | 1000 |
+-------------------------------------------------+------------+


Es ist ersichtlich, dass die Installation des Plug-Ins sehr einfach ist, aber welche spezifische Funktion hat dieses Plug-In? Lassen Sie uns zunächst die relevanten Systemvariablen erklären:

  • connection_control_failed_connections_threshold : Die Anzahl aufeinanderfolgender fehlgeschlagener Versuche, die für ein Konto zulässig sind. Der Standardwert ist 3, was bedeutet, dass die Verbindungssteuerung nach 3 Verbindungsfehlern aktiviert wird, und 0 bedeutet, dass sie nicht aktiviert ist.
  • connection_control_max_connection_delay : Die maximale Verzögerung (in Millisekunden) für Verbindungsfehler, die den Schwellenwert überschreiten. Standardmäßig 2147483647 Millisekunden, ungefähr 25 Tage.
  • connection_control_min_connection_delay : Die Mindestverzögerung (in Millisekunden) für einen Verbindungsfehler, der den Schwellenwert überschreitet. Der Standardwert beträgt 1000 Millisekunden oder 1 Sekunde.

An diesem Punkt verstehen Sie vielleicht die Rolle des Plug-Ins connection_control . Es besteht darin, dass der Server die Antwort für einen bestimmten Zeitraum verzögert, wenn der Client eine bestimmte Anzahl aufeinanderfolgender Versuche keine Verbindung zur Datenbank herstellen kann. Je mehr aufeinanderfolgende fehlgeschlagene Versuche es gibt, desto länger ist die Antwortverzögerung.

2. Verbindungskontroll-Experiment

Machen wir ein konkretes Experiment. Um einen experimentellen Effekt zu erzielen, wird der Fehlerschwellenwert auf 10 und die Mindestverzögerungszeit auf 1 Minute eingestellt. Das heißt, nach zehn aufeinanderfolgenden Verbindungsfehlern beträgt die Mindestverzögerungszeit 1 Minute. Versuchen wir es, indem wir absichtlich das falsche Passwort eingeben:

2.1 Ausgangszustand

mysql> Variablen wie „connection_control%“ anzeigen;
+-------------------------------------------------+------------+
| Variablenname | Wert |
+-------------------------------------------------+------------+
| Schwellenwert für fehlgeschlagene Verbindungen der Verbindungssteuerung | 10 |
| Verbindungssteuerung_maximale_Verbindungsverzögerung | 2147483647 |
| Verbindungssteuerung_min_Verbindungsverzögerung | 60000 |
+-------------------------------------------------+------------+
3 Zeilen im Satz (0,01 Sek.)

mysql> AUSWÄHLEN * AUS information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
Leerer Satz (0,00 Sek.)

2.2 Absichtliche Eingabe eines falschen Passwortes

[root@localhost ~]# mysql -utestuser -p123
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
FEHLER 1045 (28000): Zugriff für Benutzer „testuser“@„localhost“ verweigert (mit Passwort: JA)

2.3 Fehlerprotokolle anzeigen

mysql> AUSWÄHLEN * AUS information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+----------------+-----------------+
| USERHOST | FEHLGESCHLAGENE VERSUCH |
+----------------+-----------------+
| 'Testbenutzer'@'%' | 1 |
+----------------+-----------------+
1 Zeile im Satz (0,00 Sek.)

# Wenn die Anzahl aufeinanderfolgender Fehler den Schwellenwert überschreitet, tritt bei der erneuten Verbindung eine Verzögerung auf, d. h. es dauert eine gewisse Zeit, bis festgestellt wird, ob das Kennwort korrekt ist.mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+----------------+-----------------+
| USERHOST | FEHLGESCHLAGENE VERSUCH |
+----------------+-----------------+
| 'Testbenutzer'@'%' | 10 |
+----------------+-----------------+
mysql> Prozessliste anzeigen;
+---------+----------+--------------------+--------------------+---------+-----------+--------------------------------------+------------------+
| ID | Benutzer | Host | db | Befehl | Zeit | Status | Info |
+---------+----------+--------------------+--------------------+---------+-----------+--------------------------------------+------------------+
| 1817003 | root | localhost | NULL | Abfrage | 0 | wird gestartet | Prozessliste anzeigen |
| 1817091 | Testbenutzer | localhost | NULL | Verbinden | 16 | Wartet im Connection_Control-Plugin | NULL |
+---------+----------+--------------------+--------------------+---------+-----------+--------------------------------------+------------------+

Wenn Sie unter normalen Umständen ein falsches Passwort eingeben, wird sofort eine Fehlermeldung zurückgegeben. Wenn die Anzahl der aufeinanderfolgenden Fehlversuche den Schwellenwert erreicht, wird der nächste Verbindungsversuch verzögert. Die konkrete Ausprägung besteht darin, dass der Versuch hängen bleibt und die Fehlermeldung erst nach Ablauf der Verzögerung zurückgegeben wird. Die Tabellen in der Systembibliothek information_schema zeichnen die Benutzernamen und Fehlerzeiten fehlgeschlagener Anmeldungen auf. Wenn eine Verzögerung auftritt, ist die verzögerte Verbindung auch in processlist zu finden. Bei korrekter Passworteingabe wird die Verzögerung aufgehoben und die Zählung neu gestartet.

Daher sollten Sie verstehen, warum dieses Plug-In Brute-Force-Cracking auf der Clientseite verhindern kann. Angenommen, Brute-Force-Cracking-Versuche finden 120 Mal pro Minute statt. Nach der Aktivierung dieses Plug-Ins wird die Antwort nach einer bestimmten Anzahl aufeinanderfolgender Fehler verzögert, und die Verzögerungszeit erhöht sich mit der Anzahl der Fehler. Das nächste Cracking kann unmittelbar vorher gestartet werden, aber jetzt kann der nächste Versuch erst nach der Verzögerungszeit eingeleitet werden, sodass das Risiko von Brute-Force-Cracking erheblich verringert werden kann.

Nach dem Aktivieren des Verbindungssteuerungs-Plugins sollten Sie jedoch darauf achten, ob es zu verzögerten Verbindungen kommt, da verzögerte Verbindungen auch die Anzahl der Verbindungen belegen, was zu Verbindungsrückständen und unzureichenden Verbindungen führen kann. Deshalb sollten Sie bei einer verzögerten Verbindung schnell prüfen, wohin die Verbindung führt und auf die korrekte Eingabe des Passwortes achten.

Um dieses Plugin zu aktivieren, konfigurieren Sie unbedingt den entsprechenden Schwellenwert und die entsprechende Verzögerungszeit und denken Sie daran, diese Parameter in die Konfigurationsdatei zu schreiben. Diese Anforderung kann im Allgemeinen bei der Sicherheitsbewertung vorhanden sein und das Plug-In zur Verbindungssteuerung kann zu diesem Zeitpunkt hilfreich sein.

Dies ist das Ende dieses Artikels über das MySQL -Verbindungssteuerungs-Plugin. Weitere relevante Inhalte MySQL Verbindungssteuerungs-Plugin finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Entwurf und Implementierung eines studentischen Clubmanagementsystems auf Basis von JavaSwing+MySQL
  • Praktischer Bericht zur Lösung des MySQL Deep Paging-Problems
  • Die Auswirkungen des Limits auf die Abfrageleistung in MySQL
  • Auf JavaSwing basierendes Hotelmanagementsystem, entworfen und implementiert
  • Entwurf und Implementierung eines JavaSwing-Panzerschlachtspiels
  • Detaillierte Erläuterung der JavaSwing-Grundlagen Layout-Layout-bezogenes Wissen
  • JavaSwing-Hintergrundmusik mp3
  • Entwurf und Implementierung eines Supermarkt-Warenwirtschaftssystems auf Basis von Mysql+JavaSwing

<<:  Detaillierte Erklärung zum virtuellen Javascript-DOM

>>:  Häufig verwendete HTML-Meta-Tag-Attribute (erforderlich für Website-Kompatibilität und -Optimierung)

Artikel empfehlen

So stellen Sie MySQL-Master und -Slave in Docker bereit

Bild herunterladen Auswählen eines MySQL-Images D...

Detaillierte Erklärung zum Einfügen gängiger Nginx-Befehle in Shell-Skripte

1. Erstellen Sie einen Ordner zum Speichern von N...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

Eine kurze Analyse der Verwendung von Rahmen- und Anzeigeattributen in CSS

Einführung in Rahmeneigenschaften border -Eigensc...

Grundlegende Verwendung von UNION und UNION ALL in MySQL

In der Datenbank führen sowohl die Schlüsselwörte...

So stellen Sie Solidity-Smart-Contracts mit ethers.js bereit

Wenn Sie DApps auf Ethereum entwickelt haben, hab...

Erstellen und Verwenden von Docker-Datenvolumencontainern

Ein Datenvolumencontainer ist ein Container, der ...

Webdesign-Dimensionen und Regeln für die Werbegestaltung auf Webseiten

1. Unter 800 x 600 gibt es keine horizontale Bild...

Detaillierte Erläuterung der 6 Möglichkeiten der JS-Vererbung

Vererbung von Prototypketten Die Prototypenvererb...

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...