So installieren und sichern Sie phpMyAdmin unter Debian 9

Einführung

Während viele Benutzer die Funktionalität eines Datenbankverwaltungssystems wie MariaDB benötigen, fühlen sie sich möglicherweise nicht wohl, wenn sie nur über die MariaDB-Eingabeaufforderung mit dem System interagieren.

phpMyAdmin wurde erstellt, damit Benutzer über eine Weboberfläche mit MariaDB interagieren können. In diesem Handbuch werden wir diskutieren, wie Sie phpMyAdmin installieren und sichern, damit Sie es sicher verwenden können, um Ihre Datenbanken auf einem Debian 9-System zu verwalten.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, müssen Sie einige grundlegende Schritte ausführen.

Zunächst nehmen wir an, dass Ihr Server einen Nicht-Root-Benutzer mit den Rechten "+ sudo " sowie eine mit " ufw +" konfigurierte Firewall hat, wie in https://www.digitalocean.com/ beschrieben. community / tutorials / initial-server-setup-with-debian-9 [Anleitung zur Erstinstallation des Servers für Debian 9].

Wir gehen auch davon aus, dass Sie eine LAMP-Installation (Linux, Apache, MariaDB und PHP) auf Ihrem Debian 9-Server abgeschlossen haben. Wenn Sie dies noch nicht getan haben, folgen Sie unserer Anleitung unter https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-debian9, um eine LAMP zu installieren auf Debian 9 stapeln], um dies einzurichten.

Schließlich gibt es wichtige Sicherheitsaspekte bei der Verwendung von Software wie phpMyAdmin, da diese:

  • Kommuniziert direkt mit Ihrer MariaDB-Installation

  • Verarbeitet die Authentifizierung mithilfe von MariaDB-Anmeldeinformationen

  • Führt Ergebnisse für beliebige SQL-Abfragen aus und gibt sie zurück

Aus diesen Gründen und weil es sich um eine weit verbreitete PHP-Anwendung handelt, die häufig angegriffen wird, sollten Sie phpMyAdmin auf Remote-Systemen niemals über eine einfache HTTP-Verbindung ausführen. Wenn Sie keine vorhandene Domain mit einem SSL / TLS-Zertifikat konfiguriert haben, können Sie diesem Handbuch unter https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s- folgen. encrypt-on-debian-9 [Apache mit Let’s Encrypt unter Debian 9 sichern]. Dazu müssen Sie Registrieren eines Domainnamens, https://www .digitalocean.com / community / tutorials / eine-einführung-in-digitalocean-dns [DNS-Einträge für Ihren Server erstellen] und https://www.digitalocean.com/community/tutorials/how-to-install-the- apache-web-server-on-debian-9 # Schritt-5-% E2% 80% 94-Einrichten-virtueller-Hosts- (empfohlen) [Einrichten eines virtuellen Apache-Hosts].

Sobald Sie mit diesen Schritten fertig sind, können Sie mit diesem Handbuch beginnen.

Schritt 1 - phpMyAdmin installieren

Zu Beginn werden wir phpMyAdmin aus den Standard-Debian-Repositories installieren.

Aktualisieren Sie dazu den Paketindex Ihres Servers und verwenden Sie anschließend das Paketierungssystem "+ apt +", um die Dateien abzurufen und auf Ihrem System zu installieren:

sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext

Daraufhin werden Ihnen einige Fragen gestellt, um Ihre Installation korrekt zu konfigurieren.

  • Wählen Sie für die Serverauswahl "+ apache2 +"

  • Wählen Sie "+ Ja ", wenn Sie gefragt werden, ob Sie " dbconfig-common +" zum Einrichten der Datenbank verwenden möchten

  • Sie werden dann aufgefordert, ein MySQL-Anwendungskennwort für phpMyAdmin auszuwählen und zu bestätigen

Der Installationsprozess fügt die Konfigurationsdatei von phpMyAdmin Apache in das Verzeichnis + / etc / apache2 / conf-enabled / + ein, wo sie automatisch gelesen wird. Sie müssen lediglich die PHP-Erweiterung "+ mbstring +" aktivieren, mit der Nicht-ASCII-Zeichenfolgen verwaltet und Zeichenfolgen in andere Codierungen konvertiert werden. Tun Sie dies, indem Sie Folgendes eingeben:

sudo phpenmod mbstring

Starten Sie anschließend Apache neu, damit Ihre Änderungen erkannt werden:

sudo systemctl restart apache2

phpMyAdmin ist jetzt installiert und konfiguriert. Bevor Sie sich jedoch anmelden und mit der Verwaltung Ihrer MariaDB-Datenbanken beginnen können, müssen Sie sicherstellen, dass Ihre MariaDB-Benutzer über die für die Interaktion mit dem Programm erforderlichen Berechtigungen verfügen.

Schritt 2 - Anpassen der Benutzerauthentifizierung und der Berechtigungen

Wenn Sie phpMyAdmin auf Ihrem Server installiert haben, wurde automatisch ein Datenbankbenutzer mit dem Namen "+ phpmyadmin +" erstellt, der bestimmte zugrunde liegende Prozesse für das Programm ausführt. Anstatt sich als dieser Benutzer mit dem Administratorkennwort anzumelden, das Sie während der Installation festgelegt haben, wird empfohlen, sich mit einem anderen Konto anzumelden.

Bei Neuinstallationen auf Debian-Systemen ist der Benutzer * root * MariaDB so eingestellt, dass er sich standardmäßig mit dem Plugin + unix_socket + und nicht mit einem Passwort authentifiziert. Dies bietet in vielen Fällen eine größere Sicherheit und Benutzerfreundlichkeit, kann jedoch auch kompliziert sein, wenn Sie einem externen Programm (z. B. phpMyAdmin) Administratorrechte für diesen Benutzer gewähren müssen. Da der Server das * root * -Konto für Aufgaben wie die Protokollrotation und das Starten und Stoppen des Servers verwendet, sollten Sie die Authentifizierungsdetails des * root * -Kontos nicht ändern. Da in phpMyAdmin Benutzer sich mit einem Passwort authentifizieren müssen, müssen Sie ein neues MariaDB-Konto erstellen, um auf die Benutzeroberfläche zugreifen zu können.

Wenn Sie das vorausgesetzte Tutorial unter https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-debian9#step-2-%E2%80% befolgt haben 94-installation-mariadb [Installieren eines LAMP-Stacks] und Erstellen eines MariaDB-Benutzerkontos wie in Schritt 2 beschrieben. Melden Sie sich unter diesem Konto einfach mit dem Kennwort an, das Sie beim Einrichten erstellt haben, indem Sie diesen Link aufrufen:

https:///phpmyadmin

Wenn Sie noch keinen MariaDB-Benutzer erstellt haben oder einen anderen Benutzer nur zum Verwalten von Datenbanken über phpMyAdmin erstellen möchten, fahren Sie mit diesem Abschnitt fort, um zu erfahren, wie Sie einen einrichten.

Beginnen Sie mit dem Öffnen der MariaDB-Shell:

sudo mariadb

Erstellen Sie von dort aus einen neuen Benutzer und geben Sie ihm ein sicheres Passwort:

CREATE USER ''@'localhost' IDENTIFIED BY '';

Gewähren Sie dann Ihrem neuen Benutzer die entsprechenden Berechtigungen. Mit dem folgenden Befehl können Sie beispielsweise allen Tabellen in der Datenbank Benutzerberechtigungen erteilen sowie die Berechtigung zum Hinzufügen, Ändern und Entfernen von Benutzerberechtigungen erteilen:

GRANT ALL PRIVILEGES ON *.* TO ''@'localhost' WITH GRANT OPTION;

Beenden Sie anschließend die MariaDB-Shell:

exit

Sie können jetzt auf die Weboberfläche zugreifen, indem Sie den Domain-Namen oder die öffentliche IP-Adresse Ihres Servers aufrufen, gefolgt von "+ / phpmyadmin +":

https:///phpmyadmin

Melden Sie sich mit dem von Ihnen konfigurierten Benutzernamen und Passwort an der Benutzeroberfläche an.

Wenn Sie sich anmelden, wird die Benutzeroberfläche angezeigt, die ungefähr so ​​aussieht:

Nachdem Sie sich mit phpMyAdmin verbinden und interagieren können, müssen Sie nur noch die Sicherheit Ihres Systems verbessern, um es vor Angreifern zu schützen.

Schritt 3 - Sichern Ihrer phpMyAdmin-Instanz

Aufgrund seiner Allgegenwart ist phpMyAdmin ein beliebtes Ziel für Angreifer, und Sie sollten besonders darauf achten, nicht autorisierten Zugriff zu verhindern. Eine der einfachsten Möglichkeiten, dies zu tun, besteht darin, ein Gateway vor der gesamten Anwendung zu platzieren, indem die in Apache integrierten Authentifizierungs- und Autorisierungsfunktionen "+ .htaccess +" verwendet werden.

Dazu müssen Sie zuerst die Verwendung von "+ .htaccess +" - Dateiüberschreibungen aktivieren, indem Sie Ihre Apache-Konfigurationsdatei bearbeiten.

Bearbeiten Sie die verknüpfte Datei, die in Ihrem Apache-Konfigurationsverzeichnis abgelegt wurde:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Fügen Sie eine Anweisung + AllowOverride All + im Abschnitt + <Directory / usr / share / phpmyadmin> + der Konfigurationsdatei wie folgt hinzu:

/etc/apache2/conf-available/phpmyadmin.conf

<Directory /usr/share/phpmyadmin>
   Options FollowSymLinks
   DirectoryIndex index.php

   . . .

Wenn Sie diese Zeile hinzugefügt haben, speichern und schließen Sie die Datei.

Starten Sie Apache neu, um die vorgenommenen Änderungen zu implementieren:

sudo systemctl restart apache2

Nachdem Sie die Verwendung von "+ .htaccess +" für Ihre Anwendung aktiviert haben, müssen Sie eine erstellen, um tatsächlich eine gewisse Sicherheit zu implementieren.

Damit dies erfolgreich ist, muss die Datei im Anwendungsverzeichnis erstellt werden. Sie können die erforderliche Datei erstellen und in Ihrem Texteditor mit Root-Rechten öffnen, indem Sie Folgendes eingeben:

sudo nano /usr/share/phpmyadmin/.htaccess

Geben Sie in diese Datei die folgenden Informationen ein:

/usr/share/phpmyadmin/.htaccess

Jede dieser Zeilen bedeutet Folgendes:

  • + AuthType Basic +: Diese Zeile gibt den Authentifizierungstyp an, den Sie implementieren. Dieser Typ implementiert die Kennwortauthentifizierung mithilfe einer Kennwortdatei.

  • + AuthName +: Legt die Nachricht für das Authentifizierungsdialogfeld fest. Sie sollten dieses Generikum beibehalten, damit nicht autorisierte Benutzer keine Informationen darüber erhalten, was geschützt wird.

  • + AuthUserFile +: Legt den Speicherort der Kennwortdatei fest, die für die Authentifizierung verwendet wird. Dies sollte sich außerhalb der Verzeichnisse befinden, die bedient werden. Wir werden diese Datei in Kürze erstellen.

  • + Require valid-user +: Dies gibt an, dass nur authentifizierte Benutzer Zugriff auf diese Ressource erhalten sollen. Dies ist es, was tatsächlich unbefugte Benutzer am Betreten hindert.

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Der Speicherort, den Sie für Ihre Kennwortdatei ausgewählt haben, war "+ / etc / phpmyadmin / .htpasswd ". Sie können diese Datei jetzt erstellen und mit dem Hilfsprogramm ` htpasswd +` einem Erstbenutzer übergeben:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd

Sie werden aufgefordert, ein Kennwort für den von Ihnen erstellten Benutzer auszuwählen und zu bestätigen. Anschließend wird die Datei mit dem von Ihnen eingegebenen Hash-Passwort erstellt.

Wenn Sie einen zusätzlichen Benutzer eingeben möchten, müssen Sie dies * ohne * das Flag + -c + tun:

sudo htpasswd /etc/phpmyadmin/.htpasswd

Wenn Sie nun auf Ihr phpMyAdmin-Unterverzeichnis zugreifen, werden Sie aufgefordert, den zusätzlichen Kontonamen und das Passwort einzugeben, die Sie gerade konfiguriert haben:

https:///phpmyadmin

Nach der Eingabe der Apache-Authentifizierung gelangen Sie zur regulären phpMyAdmin-Authentifizierungsseite, auf der Sie Ihre MariaDB-Anmeldeinformationen eingeben können. Dieses Setup fügt eine zusätzliche Sicherheitsebene hinzu, was wünschenswert ist, da phpMyAdmin in der Vergangenheit unter Sicherheitslücken gelitten hat.

Fazit

Sie sollten nun phpMyAdmin auf Ihrem Debian 9-Server konfiguriert und einsatzbereit haben. Über diese Schnittstelle können Sie auf einfache Weise Datenbanken, Benutzer, Tabellen usw. erstellen und die üblichen Vorgänge wie Löschen und Ändern von Strukturen und Daten ausführen.