In diesem Beitrag zeige ich dir, wie du MariaDB auf Debian und Raspberry Pi installierst und konfigurierst. MariaDB ist eine leistungsstarke und beliebte Open-Source-Datenbank, die sich durch ihre hohe Performance und Skalierbarkeit auszeichnet. Sie ist eine großartige Alternative zu MySQL und wird in vielen Projekten und Unternehmen weltweit eingesetzt.
Beachte, dass Sicherheit ein fortlaufender Prozess ist. Halte dein System stets auf dem neuesten Stand und informiere dich regelmäßig über bewährte Sicherheitspraktiken.
Voraussetzung
Ich verwende einen Raspberry Pi 2B mit Debian Version 12.
Stelle sicher, dass du bereits als normaler Benutzer über PuTTY oder direkt auf dem Debian-System angemeldet bist.
Installation
Der erste Schritt ist, wie immer, apt-get
zu aktualisieren:
sudo apt-get update -y
Code-Sprache: Bash (bash)
Danach installieren wir den MariaDB-Server mit dem folgenden Befehl:
sudo apt-get install mariadb-server -y
Code-Sprache: Bash (bash)
Härten (sichern und absichern)
Als nächstes sichern wir den MariaDB-Server ab. Dazu benutzen wir den Befehl:
sudo /usr/bin/mysql_secure_installation
Code-Sprache: Bash (bash)
Dabei werden uns 6 Fragen gestellt. Diese beantworten wir alle mit y
(yes) und vergeben ein sicheres Passwort.
1. Wechsel zur unix_socket Authentifizierun
Durch die Verwendung der unix_socket
Authentifizierung können nur Benutzer, die direkt auf dem Server eingeloggt sind, Zugriff auf den root-Benutzer der Datenbank erhalten. Dies erhöht die Sicherheit erheblich, da remote Zugriffe über das Netzwerk für den root-Benutzer verhindert werden.
2. Initiale Passwortsicherung für Root
Anonyme Benutzer stellen ein Sicherheitsrisiko dar, da sie ohne Authentifizierung auf die Datenbank zugreifen können. Das Skript hilft dir dabei, diese zu entfernen.
3. Entfernung von anonymen Benutzern
Anonyme Benutzer stellen ein Sicherheitsrisiko dar, da sie ohne Authentifizierung auf die Datenbank zugreifen können. Das Skript hilft dir dabei, diese zu entfernen.
4. Abschalten des Root-Logins von Remote-Hosts
Standardmäßig kann der root-Benutzer von externen Hosts aus auf die Datenbank zugreifen. Dies könnte ein Einfallstor für Angreifer sein. Das Skript bietet die Möglichkeit, diesen Zugriff zu unterbinden und so die Sicherheit zu erhöhen.
5. Entfernung der Testdatenbank
MariaDB installiert eine Testdatenbank, die von jedem ohne Authentifizierung genutzt werden kann. Diese Testdatenbank sollte entfernt werden, um Missbrauch zu verhindern.
6. Aktualisierung der Berechtigungen
Nach dem Ändern der Sicherheitskonfigurationen stellt das Skript sicher, dass die Änderungen sofort wirksam werden, indem es die Berechtigungstabellen neu lädt.
Arbeiten mit der Datenbank
Um auf der Datenbank arbeiten zu können, müssen wir uns einloggen:
sudo mysql -u root -p
Code-Sprache: Bash (bash)
Danach können wir mit dem MariaDB-Server arbeiten. Mit dem Befehl exit;
kann der Server verlassen werden.
MariaDB-Port ändern (optional)
Möchtest du MariaDB nicht den Standardport 3306 benutzen, sondern z.B. den Port 5000, kannst du dies wie folgt einrichten:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Code-Sprache: Bash (bash)
Ändere bzw. füge die Zeile port=5000
unter dem Punkt [mysqld]
hinzu
Danach starte den MariaDB-Dienst neu:
sudo systemctl restart mariadb
Code-Sprache: Bash (bash)
MariaDB mit SSL-Verbindung nutzen (optional)
Im Allgemeinen ist der MariaDB-Server nur über den localhost bzw. 127.0.0.1 erreichbar. Daher ist es nicht nötig, SSL zu verwenden. Möchtest du es trotzdem nutzen oder den Server nach außen hin öffnen, zeige ich dir, wie du SSL einrichtest:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Code-Sprache: Bash (bash)
Suche nach der Stelle
# For documentation, please read
# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
#ssl-ca = /etc/mysql/cacert.pem
#ssl-cert = /etc/mysql/server-cert.pem
#ssl-key = /etc/mysql/server-key.pem
#require-secure-transport = on
Code-Sprache: Bash (bash)
und ändere sie wie folgt:
# For documentation, please read
# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
ssl-ca = /pfad_zum_ca-cert/cacert.pem
ssl-cert = /pfad_zum_ssl-cert/server-cert.pem
ssl-key = /pfad_zum_ssl-key/server-key.pem
require-secure-transport = on
Code-Sprache: Bash (bash)
Benutzt du ein selbst erstelltes Zertifikat und hast kein CA-Zertifikat erstellt, kannst du die Zeile mit ssl-ca
auskommentiert lassen oder dein server-cert.pem
angeben.
Vergesse nicht, den MariaDB-Server neu zu starten:
sudo systemctl restart mariadb
Code-Sprache: Bash (bash)
Über den SQL-Befehl kannst du prüfen, ob SSL aktiv ist:
SHOW VARIABLES LIKE '%ssl%';
Code-Sprache: SQL (Structured Query Language) (sql)
MariaDB von außen zugänglich machen (optional)
Wie schon erwähnt ist normalerweise mariaDB nur über den localhost bzw. 127.0.0.1 erreichbar. Möchtest du aber auch von außen auf mariaDB zugreifen, musst di dies expliziet einstellen:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Code-Sprache: Bash (bash)
Ändere die Zeile
bind-address = 127.0.0.1
Code-Sprache: Bash (bash)
auf
bind-address = 0.0.0.0
Code-Sprache: Bash (bash)
Die Option bind-address
gibt die IP-Adresse an, auf der MariaDB lauscht.
Die Einstellung 0.0.0.0
bedeutet, dass MariaDB auf allen Schnittstellen lauscht.
Damit wird deine Datenbank für alle erreichbar. Denke an geeignete Sicherungsmaßnahmen, wie z.B. eine Firewall (ufw).
Weiterführende Literatur
Weiterführende Informationen zum MariaDB-Server ist unter https://mariadb.com/docs/server/ zu finden.
Unter https://mariadb.com/docs/server/security/ gibt es mehr Information zum Thema Sicherheit.
Wenn dir meine Arbeit gefällt, würde ich mich über einen Kaffee freuen