Maker-Hub bei GitHub Maker-Hub bei Printables Maker-Hub bei MakerWorld Maker-Hub bei YouTube

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 -yCode-Sprache: Bash (bash)

Danach installieren wir den MariaDB-Server mit dem folgenden Befehl:

sudo apt-get install mariadb-server -yCode-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 -pCode-Sprache: Bash (bash)

Danach können wir mit dem MariaDB-Server arbeiten. Mit dem Befehl exit; kann der Server verlassen werden.

Beispiel: Es wird eine Datenbank und Benutzer für eine WordPress Installation angelegt

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.cnfCode-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 mariadbCode-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.cnfCode-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 = onCode-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 = onCode-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 mariadbCode-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.cnfCode-Sprache: Bash (bash)

Ändere die Zeile

bind-address = 127.0.0.1Code-Sprache: Bash (bash)

auf

bind-address = 0.0.0.0Code-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