Einleitung

Viele Benutzer benötigen zwar die Funktionalität eines Datenbankmanagementsystems wie MySQL, fühlen sich aber nicht wohl dabei, mit dem System ausschliesslich über die MySQL-Eingabeaufforderung zu interagieren.

phpMyAdmin wurde entwickelt, um Benutzern die Interaktion mit MySQL über eine Weboberfläche zu ermöglichen. In dieser Anleitung wird beschrieben, wie Sie phpMyAdmin installieren und sichern, damit Sie es sicher zur Verwaltung Ihrer Datenbanken auf einem Ubuntu 22.04-System verwenden können.

Voraussetzungen

Um diese Anleitung zu erstellen, benötigen Sie:

  • Einen Ubuntu 22.04-Server. Dieser Server sollte einen Nicht-Root-Benutzer mit administrativen Rechten und eine mit ufw konfigurierte Firewall haben.
  • Ein LAMP (Linux, Apache, MySQL und PHP) Stack ist auf Ihrem Ubuntu 22.04 Server installiert. Falls dies noch nicht geschehen ist, können Sie diese Anleitung zur Installation eines LAMP-Stacks auf Ubuntu 22.04 befolgen.

Darüber hinaus gibt es wichtige Sicherheitsüberlegungen bei der Verwendung von Software wie phpMyAdmin, da diese:

  • direkt mit Ihrer MySQL-Installation kommuniziert
  • die Authentifizierung mit MySQL-Anmeldeinformationen handhabt
  • beliebige SQL-Abfragen ausführt und Ergebnisse zurückgibt

Aus diesen Gründen und weil es sich um eine weit verbreitete PHP-Anwendung handelt, die häufig Ziel von Angriffen ist, sollten Sie phpMyAdmin niemals auf entfernten Systemen über eine einfache HTTP-Verbindung ausführen.

Schritt 1 – Installation von phpMyAdmin

Sie können APT verwenden, um phpMyAdmin aus den Standard Ubuntu Repositories zu installieren.

Aktualisieren Sie als nicht-root sudo-Benutzer den Paketindex Ihres Servers, falls Sie dies nicht kürzlich getan haben:

sudo apt update

Anschliessend können Sie das phpmyadmin-Paket installieren. Zusammen mit diesem Paket empfiehlt die offizielle Dokumentation auch die Installation einiger PHP-Erweiterungen auf Ihrem Server, um bestimmte Funktionen zu aktivieren und die Leistung zu verbessern.

Wenn Sie das LAMP-Stack-Tutorial befolgt haben, sind einige dieser Module bereits zusammen mit dem php-Paket installiert worden. Es wird jedoch empfohlen, dass Sie diese Pakete ebenfalls installieren:

  • php-mbstring: Ein Modul zur Verwaltung von Nicht-ASCII-Strings und zur Konvertierung von Strings in verschiedene Kodierungen
  • php-zip: Diese Erweiterung unterstützt das Hochladen von .zip-Dateien in phpMyAdmin
  • php-gd: Ermöglicht Unterstützung für die GD-Grafikbibliothek
  • php-json: Bietet PHP Unterstützung für JSON-Serialisierung
  • php-curl: Ermöglicht PHP die Interaktion mit verschiedenen Servern, die unterschiedliche Protokolle verwenden

Führen Sie den folgenden Befehl aus, um diese Pakete auf Ihrem System zu installieren. Bitte beachten Sie jedoch, dass Sie während der Installation einige Einstellungen vornehmen müssen, um phpMyAdmin korrekt zu konfigurieren. Wir werden diese Optionen in Kürze durchgehen:

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

Hier sind die Optionen, die Sie wählen sollten, wenn Sie dazu aufgefordert werden, um Ihre Installation korrekt zu konfigurieren:

Wählen Sie bei der Serverauswahl apache2

Achtung! Wenn die Aufforderung erscheint, ist «apache2» hervorgehoben, aber nicht ausgewählt. Wenn Sie nicht die Leertaste drücken, um Apache auszuwählen, wird das Installationsprogramm die erforderlichen Dateien während der Installation nicht verschieben.

Drücken Sie SPACE, TAB und dann ENTER, um Apache auszuwählen.

Wählen Sie Ja, wenn Sie gefragt werden, ob Sie dbconfig-common zum Einrichten der Datenbank verwenden wollen.

Sie werden dann aufgefordert, ein MySQL-Anwendungspasswort für phpMyAdmin zu wählen und zu bestätigen

Der Installationsprozess fügt die phpMyAdmin Apache-Konfigurationsdatei in das Verzeichnis /etc/apache2/conf-enabled/ ein, wo sie automatisch gelesen wird. Um die Konfiguration von Apache und PHP für die Zusammenarbeit mit phpMyAdmin abzuschliessen, muss in diesem Abschnitt des Tutorials nur noch die PHP-Erweiterung mbstring explizit aktiviert werden, was durch folgende Eingabe erreicht werden kann:

sudo phpenmod mbstring

Starten Sie anschliessend Apache neu, damit Ihre Änderungen erkannt werden:

sudo systemctl restart apache2

phpMyAdmin ist nun installiert und für die Zusammenarbeit mit Apache konfiguriert. Bevor Sie sich jedoch anmelden und mit Ihren MySQL-Datenbanken interagieren können, müssen Sie sicherstellen, dass Ihre MySQL-Benutzer über die für die Interaktion mit dem Programm erforderlichen Berechtigungen verfügen.

Schritt 2 – Anpassen der Benutzerauthentifizierung und der Berechtigungen

Bei der Installation von phpMyAdmin auf Ihrem Server wurde automatisch ein Datenbankbenutzer namens phpmyadmin angelegt, der bestimmte grundlegende Prozesse für das Programm durchführt. Anstatt sich als dieser Benutzer mit dem administrativen Passwort anzumelden, das Sie während der Installation festgelegt haben, sollten Sie sich entweder als root-MySQL-Benutzer oder als ein Benutzer anmelden, der für die Verwaltung von Datenbanken über die phpMyAdmin-Schnittstelle zuständig ist.

Configuring Password Access for the MySQL Root Account

In Ubuntu-Systemen, auf denen MySQL 5.7 (und spätere Versionen) läuft, ist der Root-MySQL-Benutzer so eingestellt, dass er sich standardmässig mit dem auth_socket-Plugin und nicht mit einem Passwort authentifiziert. Dies ermöglicht in vielen Fällen eine höhere Sicherheit und Benutzerfreundlichkeit, kann aber auch zu Komplikationen führen, wenn Sie einem externen Programm – wie phpMyAdmin – den Zugriff auf den Benutzer erlauben müssen.

Um sich bei phpMyAdmin als root-MySQL-Benutzer anzumelden, müssen Sie die Authentifizierungsmethode von auth_socket auf eine Methode umstellen, die ein Passwort verwendet, falls Sie das nicht schon getan haben. Rufen Sie dazu die MySQL-Eingabeaufforderung in Ihrem Terminal auf:

sudo mysql

Prüfen Sie anschliessend mit dem folgenden Befehl, welche Authentifizierungsmethode Ihre MySQL-Benutzerkonten jeweils verwenden:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Diese Beispielausgabe zeigt, dass der Root-Benutzer sich tatsächlich mit dem auth_socket-Plugin authentifiziert. Um das root-Konto so zu konfigurieren, dass es sich mit einem Passwort authentifiziert, führen Sie den folgenden ALTER USER-Befehl aus. Stellen Sie sicher, dass Sie das Passwort in ein sicheres Passwort Ihrer Wahl ändern:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Überprüfen Sie dann erneut die Authentifizierungsmethoden, die von jedem Ihrer Benutzer verwendet werden, um sicherzustellen, dass root sich nicht mehr mit dem auth_socket-Plugin authentifiziert:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Diese Ausgabe zeigt, dass sich der Root-Benutzer mit einem Kennwort authentifizieren wird. Sie können sich nun als root-Benutzer mit dem Passwort, das Sie hier festgelegt haben, in die phpMyAdmin-Oberfläche einloggen.

Sie können nun auf die Weboberfläche zugreifen, indem Sie den Domainnamen oder die öffentliche IP-Adresse Ihres Servers aufrufen, gefolgt von /phpmyadmin:

https://ip_des_servers/phpmyadmin

Melden Sie sich bei der Schnittstelle als root an.

Wenn Sie sich anmelden, gelangen Sie zur Benutzeroberfläche von phpMyAdmin. Das war auch schon alles.