Ein sicherer Leitfaden zur Aktivierung des MySQL-Fernzugriffs im Jahr 2025
در این مقاله، روش‌های امن برای فعال‌سازی دسترسی راه دور به سرور MySQL و MariaDB ارائه شده است.

Ein sicherer Leitfaden zur Aktivierung des MySQL-Fernzugriffs im Jahr 2025

Dieser Artikel zeigt Ihnen sichere und praktische Wege auf, wie Sie im Jahr 2025 Fernzugriff auf MySQL- und MariaDB-Server ermöglichen können. Indem Sie Sicherheitstipps befolgen und VPN und SSH verwenden, können Sie einfach und vertrauensvoll auf Ihre Datenbanken zugreifen.
0 Aktien
0
0
0
0

 

Wie kann der Fernzugriff auf MySQL/MariaDB sicher aktiviert werden?

In diesem aktualisierten Leitfaden (2025) stellen wir Ihnen praktische und sichere Methoden für den Fernzugriff auf MySQL- und MariaDB-Server vor. Ziel ist es, Website-Administratoren, DevOps-Teams, Datenbankteams und Entwicklern eine praktische Checkliste an die Hand zu geben, um den Zugriff auf autorisierte Benutzer und Anwendungen zu beschränken, ohne Kompromisse bei der Sicherheit einzugehen.

 

Allgemeine Schritte und Sicherheitsprinzipien

Zusammenfassung der Schritte:

  • Architektonisches Design: Niemals Die Datenbank sollte nur dann direkt im öffentlichen Internet veröffentlicht werden, wenn dies unbedingt erforderlich ist.
  • Nutzen Sie ein privates Netzwerk (VPC/VLAN), VPN oder SSH-Tunneling.
  • Zugriff basierend auf IP-Adressen einschränken und Benutzer mit Mindestpunktzahl.
  • TLS/SSL-Verschlüsselung für den Datenbankverkehr und Verwendung starker Authentifizierung (*caching_sha2_password* / *X.509*).
  • Aktivieren Sie Protokollierung und Ratenbegrenzungen, verwenden Sie Firewalls und Intrusion-Detection-Systeme (IDS/IPS).
  • Überprüfen Sie Leistung und Latenz und wählen Sie den geeigneten Rechenzentrumsstandort basierend auf der Anwendung aus.

 

Warum sollte MySQL nicht direkt mit dem Internet verbunden sein?

Datenbanken sind aufgrund ihrer sensiblen Daten und Zugangsdaten ein attraktives Ziel für Hacker. Das Öffnen von Port 3306 für das Internet ohne Einschränkungen oder Verschlüsselung erhöht das Risiko von Datenlecks, Brute-Force-Angriffen und DDoS-Attacken.

 

Schritt für Schritt: MySQL für den Fernzugriff konfigurieren (Praktische Anleitung)

 

1) Bearbeiten Sie die Konfigurationsdatei

Gemeinsame Konfigurationsdateien:

  • MySQL (Debian/Ubuntu): /etc/mysql/mysql.conf.d/mysqld.cnf
  • MariaDB: /etc/mysql/mariadb.conf.d/50-server.cnf

Standardmäßig kann die Zeile Bindungsadresse Zu 127.0.0.1 ist festgelegt. Um Verbindungen von einer bestimmten IP-Adresse oder von allen Adressen zu akzeptieren:

Empfohlen: Bestimmte IP-Adresse zulassen:

bind-address = 192.0.2.10

Nicht empfehlenswert, außer in einem privaten Netzwerk:

bind-address = 0.0.0.0

Nach der Änderung:

systemctl restart mysql

 

2) Erstellen eines sicheren Benutzers mit Einschränkungen

Niemals vom Benutzer Wurzel Nicht für Remote-Verbindungen verwenden. Beispielbefehle:

mysql -u root -p
CREATE USER 'appuser'@'203.0.113.45' IDENTIFIED WITH caching_sha2_password BY 'StrongP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'appuser'@'203.0.113.45';
FLUSH PRIVILEGES;

Wichtige Punkte:

  • Es ist wesentlich sicherer, eine bestimmte IP-Adresse ('203.0.113.45') anstelle von '%' zu verwenden.
  • Bestimmung Mindestberechtigungen (Prinzip der geringsten Berechtigung).
  • Verwenden Sie private Adressen für Verbindungen innerhalb des privaten Netzwerks (z. B. 10.xxx).

 

3) SSL/TLS für MySQL aktivieren

Kurzes Beispiel für die Erstellung von Zertifizierungsstellen und Zertifikaten mit OpenSSL:

openssl genrsa 4096 -out ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem -subj "/CN=MyDB-CA"

openssl genrsa 4096 -out server-key.pem
openssl req -new -key server-key.pem -out server-req.csr -subj "/CN=db.example.com"
openssl x509 -req -in server-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 3650

openssl genrsa 4096 -out client-key.pem
openssl req -new -key client-key.pem -out client-req.csr -subj "/CN=dbclient"
openssl x509 -req -in client-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 3650

Einlegen von Zertifikaten my.cnf:

[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Nach dem Neustart besteht die Möglichkeit, von Benutzern die Verwendung von Zertifikaten zu verlangen:

ALTER USER 'appuser'@'203.0.113.45' REQUIRE X509;
-- یا فقط TLS بدون client cert:
ALTER USER 'appuser'@'203.0.113.45' REQUIRE SSL;

Sichere Verbindung vom Client:

mysql -u appuser -p -h db.example.com --ssl-mode=REQUIRED --ssl-ca=ca.pem

 

4) Verwendung eines SSH-Tunnels

Geeignet für Administratoren und eingeschränkten Zugriff, wenn TLS nicht verfügbar ist. Auf dem Client-Rechner:

ssh -fN -L 3306:127.0.0.1:3306 [email protected]

Diese Methode stellt eine Verbindung zum lokalen Port 3306 her, der zum Remote-Server getunnelt wird.

 

5) Firewall-Einstellungen

Beispiel mit ufw (nur bestimmte IP-Adressen zulassen):

ufw allow from 203.0.113.45 to any port 3306 proto tcp

Mit firewalld:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

Portprüfung:

ss -tlnp | grep 3306
telnet db.example.com 3306

 

Mehr Schutz – Fortschrittliche und empfohlene Lösungen (2025)

 

Nutzung eines privaten Netzwerks, einer VPC und eines VPNs

Anstatt den Datenbankport für das Internet zu öffnen, verwenden Sie ein privates Netzwerk zwischen Anwendung und Datenbank. Wenn Sie unseren Service nutzen, können Sie ein privates Netzwerk und BGP/VRF für eine sichere Verbindung verwenden.

Für verteilte Benutzer wird VPN oder IPsec empfohlen, damit der Datenbankverkehr ausschließlich über verschlüsselte Kanäle läuft.

 

Bastion-Host und Zero Trust

Die Bereitstellung eines Bastion-Hosts mit Zwei-Faktor-Authentifizierung (MFA) und vollständiger Sitzungsprotokollierung ist sicherer als das direkte Öffnen von Ports. Das Zero-Trust-Modell sieht vor, dass jede Verbindung authentifiziert werden muss und nur bestimmte Ressourcen zugelassen werden.

 

Authentifizierung und Algorithmen

  • MySQL 8: Verwendung von caching_sha2_password Anstatt mysql_native_password Es ist sicherer.
  • In heiklen Fällen verwenden X.509-Clientzertifikate Empfohlen.
  • Die Verwaltung von Passwörtern mit einem Secret Manager oder Vault (wie HashiCorp Vault, AWS Secrets Manager) ist besser als das Speichern von Passwörtern in Dateien oder im Code.

 

Schutz vor Angriffen und Einschränkungen

  • Halten Sie max_connect_errors niedrig und Namensauflösung überspringen Aktivieren Sie diese Option, um DNS-bedingte Verzögerungen zu vermeiden.
  • Verwendung von fail2ban mit einem speziellen mysql-auth-Filter zum Blockieren schädlicher IPs.
  • Gesamte Verbindungsratenbegrenzung und geeignete Einstellung für connection_timeout.

 

Überwachung und Protokollierung

Die Aktivierung von Audit-Logs, allgemeinen Logs und Slow-Query-Logs sowie die Verwendung von Tools wie Prometheus + Grafana oder Percona Monitoring sind unerlässlich, um schädliche Muster und Leistungsprobleme zu erkennen.

 

Praktische Tipps zur Auswahl des Rechenzentrumsstandorts und der Konfiguration basierend auf der Anwendung

Hinweise je nach Antragsart:

  • Handel (Forex/Krypto): Eine möglichst geringe Round-Trip-Time (RTT) zum Börsen-/Händlerserver ist wichtig; daher empfiehlt sich ein Standort in Börsennähe. Unser Service bietet dies an über 85 Standorten.
  • Gaming: Gaming-Datenbanken erfordern niedrige Ping-Zeiten; optimiertes BGP-Routing und ein Netzwerk mit geringer Latenz sind wichtig. Gaming-VPS-Server und Anti-DDoS-Server sind hilfreich.
  • KI/Rendering: Bei hohen E/A- und Rechenlasten reduziert die Kombination von GPU- und Datenbankservern in derselben privaten Netzwerkzone die Latenz.
  • Websites und Anwendungen: Die Verwendung eines CDN und eines Anwendungsschicht-Caches (Redis/Memcached) zusammen mit einer Datenbank in einem privaten Netzwerk bietet das beste Verhältnis von Geschwindigkeit und Kosten.

 

Vorschläge für die my.cnf-Konfiguration für verschiedene Anwendungsfälle

Konfiguration für einen Server mit mittlerer Auslastung (Web/Anwendung):

[mysqld]
bind-address = 10.0.1.5
max_connections = 200
innodb_buffer_pool_size = 2G
skip-name-resolve = 1
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Für hochlastfähige, dedizierte KI-/Rendering-Server:

innodb_buffer_pool_size = 16G
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000

Die Einstellungen sollten stets an die Anforderungen von RAM, E/A und Anwendung angepasst werden.

 

Abschließende Sicherheitscheckliste vor der Aktivierung des Fernzugriffs

  • Verwendung eines privaten Netzwerks oder VPN für den Datenbankverkehr
  • Beschränkung der zulässigen IP-Adressen in der Firewall
  • Erstellen Sie Benutzer mit minimalen Berechtigungen und verwenden Sie sichere Hash-Algorithmen.
  • Aktivieren Sie TLS/SSL und gegebenenfalls Clientzertifikate.
  • Für Remote-Verbindungen wird kein Root-Zugriff verwendet.
  • Protokollierung aktivieren; Protokolle an externes System senden
  • Verbindungslimits festlegen und fail2ban verwenden
  • Überwachung und Alarmierung bei ungewöhnlichen Verkehrsspitzen oder Fehlern
  • Regelmäßige Datensicherungen und Wiederherstellungstests

 

Schlussfolgerung und abschließende Empfehlung

Der Fernzugriff auf MySQL sollte im Jahr 2025 schnell und sicher sein. Empfohlene Vorgehensweise: Zunächst ein privates Netzwerk oder VPN in Betracht ziehen, anschließend TLS und IP-Beschränkungen hinzufügen und den Zugriff auf das absolute Minimum beschränken.

Die Nutzung von Bastion Host, MFA und erweiterter Protokollierung erhöht Ihre Sicherheit. Benötigen Sie einen hochstabilen Server, ein Netzwerk mit geringer Latenz und umfassende Sicherheitsfunktionen? Unsere Services umfassen über 85 Standorte weltweit, GPU-Server, Compute-Server, Anti-DDoS-Server, Trading- und Gaming-VPS, CDN und BGP-Netzwerk – mit vorkonfigurierten und individuell anpassbaren Lösungen.

 

Häufig gestellte Fragen

Das könnte Ihnen auch gefallen