GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Installieren Sie phpMyAdmin mit LEMP Stack auf Ubuntu 20.04 LTS

Wir wissen bereits, wie man phpMyAdmin mit LAMP-Stack auf Ubuntu 20.04 installiert . Lassen Sie uns heute sehen, wie Sie phpMyAdmin mit dem LEMP-Stack auf der Ubuntu 20.04 LTS-Edition installieren. Und dann werden wir auch einige Sicherheitspraktiken besprechen, die dazu beitragen, phpmyadmin vor häufigen Bedrohungen zu schützen. Stellen Sie zunächst sicher, dass Sie den LEMP-Stack auf Ubuntu 20.04 wie im folgenden Link beschrieben eingerichtet haben.

  • Installieren Sie Nginx, MySQL, PHP (LEMP Stack) auf Ubuntu 20.04 LTS

Installieren und sichern Sie nach der Installation des LEMP-Stacks phpMyAdmin wie in den folgenden Abschnitten beschrieben.

Installieren Sie phpMyAdmin mit LEMP-Stack auf Ubuntu 20.04 LTS

Führen Sie den folgenden Befehl aus, um phpMyAdmin vom Terminal aus zu installieren:

$ sudo apt install phpmyadmin

Im nächsten Fenster werden Sie aufgefordert, den Webserver auszuwählen, der automatisch für die Ausführung von phpMyAdmin konfiguriert werden soll. Wie Sie im folgenden Screenshot sehen können, ist Nginx nicht in der Webserverliste verfügbar. Der Apache und lighthttpd sind hier nur aufgelistet. Alsonicht auswählen einen beliebigen Webserver und lassen Sie es einfach leer. Wählen Sie OK und drücken Sie die EINGABETASTE, um fortzufahren:

PhpMyAdmin erfordert eine installierte und konfigurierte Datenbank, bevor es verwendet werden kann. Sie können dies mit dem dbconfig-Befehl tun.

Wählen Sie Ja um die Datenbank für phpmyadmin mit dbconfig-common zu konfigurieren:

Sie müssen ein Passwort für phpmyadmin angeben, um sich beim MySQL-Datenbankserver zu registrieren. Wenn kein Passwort angegeben wird, wird ein zufälliges Passwort generiert.

Geben Sie ein sicheres Passwort ein und drücken Sie die EINGABETASTE, um fortzufahren:

Passwort erneut eingeben:

Beim Schreiben dieses Handbuchs wird beim Versuch, das Passwort für phpmyadmin festzulegen, der folgende Fehler ausgegeben:

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

Dieser Fehler tritt auf, weil wir das VALIDATE PASSWORD aktiviert haben Komponente, wie im Abschnitt mit dem Titel "2.2 Authentifizierungsmethode für MySQL-Root-Benutzer ändern" beschrieben in der oben angehängten LEMP-Stack-Installationsanleitung.

Um dieses Problem zu beheben, müssen Sie die Komponente Validate Password vorübergehend deaktivieren und erneut aktivieren, nachdem Sie das Kennwort für phymyadmin festgelegt haben. Klicken Sie auf OK, um die obige Fehlermeldung zu schließen, und wählen Sie "Abbrechen" um die Installation von phpmyadmin abzubrechen.

Melden Sie sich nun an der MySQL-Eingabeaufforderung an, indem Sie den folgenden Befehl ausführen:

$ mysql -u root -p

Tunen Sie an der mysql-Eingabeaufforderung den folgenden Befehl, um das Validate Password-Plugin zu deaktivieren:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Bitte beachten Sie, dass der obige Befehl das Plugin nur deaktiviert, aber nicht entfernt. Sie können es später aktivieren. Geben Sie dann „exit“ ein, um die MySQL-Eingabeaufforderung zu verlassen.

mysql> exit

Versuchen Sie nun erneut, phpmyadmin mit dem Befehl:

zu installieren
$ sudo apt install phpmyadmin

Wählen Sie „Ja“ und drücken Sie die EINGABETASTE, um die Datenbank für phpmyadmin mit dbconfig-common zu konfigurieren. Diesmal funktioniert die Installation von phpmyadmin ohne Probleme.

Sobald phpmyadmin installiert ist, aktivieren Sie das Validate Password-Plugin erneut. Melden Sie sich dazu bei Ihrer Mysql-Eingabeaufforderung an:

$ mysql -u root -p

Tunen Sie an der mysql-Eingabeaufforderung den folgenden Befehl, um das Validate Password-Plugin zu deaktivieren:

mysql> INSTALL COMPONENT "file://component_validate_password";

Geben Sie exit ein, um die MySQL-Eingabeaufforderung zu verlassen.

mysql> exit

Erstellen Sie nun einen symbolischen Link, um den Nginx-Webserver für die Ausführung von phpmyadmin mit dem Befehl:

zu konfigurieren
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Dieser Befehl erstellt einen Symlink namens „phpmyadmin“ im Nginx-Stammverzeichnis. Dieser symbolische Link zeigt tatsächlich auf das Verzeichnis /usr/share/phpmyadmin, wo die eigentlichen Dateien gespeichert sind.

Erledigt! Wir haben PhpMyAdmin erfolgreich mit LEMP-Stack installiert.

Greifen Sie auf das phpMyAdmin-Dashboard zu

Öffnen Sie Ihren Webbrowser und navigieren Sie zu "http://IP-Adresse/phpmyadmin" aus der Adressleiste.

Sie sollten die Anmeldeseite von phpmyadmin sehen. Geben Sie den Datenbankbenutzer und sein Passwort ein:

Sie werden mit dem phpMyAdmin-Dashboard zufrieden sein.

Von hier aus können Sie Datenbanken erstellen, löschen und verwalten.

Erstellen Sie einen dedizierten Benutzer für den Zugriff auf das phpMyAdmin-Dashboard

Sobald phpMyAdmin installiert ist, wird ein Datenbankbenutzer namens 'phpmyadmin' wird automatisch mit dem Administratorkennwort erstellt, das Sie während der Installation festgelegt haben. Sie können sich beim phpmyAdmin-Dashboard mit dem Benutzer „phpmyadmin“ oder mysql root anmelden Benutzer wie oben gezeigt. Es wird jedoch empfohlen, einen dedizierten Benutzer zu erstellen, um Datenbanken über die phpMyAdmin-Weboberfläche zu verwalten.

Melden Sie sich dazu mit dem Befehl:

bei der MySQL-Shell an
$ mysql -u root -p

Geben Sie Ihr MySQL-Root-Passwort ein. Sie befinden sich jetzt in der MySQL-Shell.

Geben Sie den folgenden Befehl ein, um einen neuen dedizierten Benutzer für phpmyadmin zu erstellen:

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

Hier, phpmyadmin ist der neue Benutzer für den Zugriff auf das phpmyadmin-Dashboard. Das Passwort für phpmyadminuser ist Password123#@! . Ersetzen Sie diese Werte durch Ihre eigenen.

Geben Sie als Nächstes dem „phpmyadminuser“ die entsprechenden Berechtigungen mit dem Befehl:

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

Beenden Sie schließlich die MySQL-Shell:

mysql> exit

Wir haben jetzt einen dedizierten Benutzer für die Verwaltung der Datenbanken über die phpmyadmin-Weboberfläche erstellt. Lassen Sie uns fortfahren und auf das phpmyadmin-Dashboard zugreifen.

Öffnen Sie den Webbrowser und navigieren Sie zu "http://IP-Adresse/phpayadmin". Geben Sie den neu erstellten Datenbankbenutzer und sein Passwort ein. Herzlichen Glückwunsch! Sie haben sich mit einem dedizierten Benutzer beim phpMyAdmin-Web-Dashboard angemeldet.

Sichern Sie phpMyAdmin

Dieser Abschnitt enthält einige Tipps zur sicheren Installation von PhpMyAdmin. Bitte beachten Sie, dass die folgenden Schritte allein phpMyAdmin nicht zu 100 % schützen können. Sie werden jedoch jeden Versuch eines Täters, in Ihr phpmyadmin-Dashboard einzudringen, zumindest verlangsamen.

Deaktivieren Sie die MySQL-Root-Anmeldung beim phpmyadmin-Dashboard

Es ist nicht sicher, dem MySQL-Root-Benutzer den Zugriff auf das phpMyAdmin-Dashboard zu erlauben, insbesondere wenn Datenbanken über das Netzwerk verwaltet werden. Aus diesem Grund haben wir im vorherigen Abschnitt einen dedizierten Benutzer erstellt. Da wir bereits einen dedizierten Benutzer haben, können wir die MySQL-Root-Anmeldung sicher deaktivieren, um auf das phpmyadmin-Dashboard zuzugreifen, um die Angriffe zu minimieren.

Im Allgemeinen wird phpmyadmin unter /usr/share/phpmyadmin/ installiert Verzeichnis und seine Konfigurationsdateien werden in /etc/phpmyadmin gespeichert Verzeichnis.

Bearbeiten Sie die phpmyadmin-Konfigurationsdatei:

$ sudo nano /etc/phpmyadmin/config.inc.php

Folgende Parameter hinzufügen/ändern:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

Speichern und schließen Sie die Datei.

Starten Sie den Nginx-Webserver mit dem Befehl neu:

$ sudo systemctl restart nginx

Versuchen Sie nun, sich als Root-Benutzer bei phpmyadmin anzumelden. Sie erhalten die Meldung Zugriff verweigert Fehlermeldung:

URL der phpmyadmin-Webschnittstelle ändern

Dies ist die häufigste Taktik, gefolgt von Bots, um Zugriff auf phpmyadmin zu erhalten. Sie können dies verhindern, indem Sie die URL in eine schwer zu erratende URL ändern. Das Ändern der phpmyadmin-URL verhindert, dass Bots oder automatisierte Skripts URL-Scans und Brute-Force-Angriffe durchführen.

Denken Sie daran, dass wir einen symbolischen Link namens „phpmyadmin“ im Nginx-Stammverzeichnis erstellt haben?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

Hier ist phpmyadmin der symbolische Link, der auf das Verzeichnis /usr/share/phpmyadmin zeigt.

Wir werden den Symlink-Namen mit dem Befehl ändern:

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

Stellen Sie sicher, dass der Name zufällige Zeichen enthält und sehr schwer zu erraten ist.

Von nun an erhält jeder, der versucht, auf die phpmyadmin-Seite zuzugreifen, indem er zu http://IP-Adresse/phpmyadmin-URL navigiert, die folgende Fehlermeldung:

Weil wir die URL geändert haben. Die neue URL zu phpmyadmin ist http://IP-Adresse/ostechnix.

Passwortgeschützte phpMyAdmin-Anmeldeseite

Wir können eine zusätzliche Sicherheitsebene hinzufügen, indem wir den Zugriff auf die phpmyadmin-Anmeldeseite mit der grundlegenden HTTP-Authentifizierungsmethode einschränken. Bedeutung - wir aktivieren den Passwortschutz für die Anmeldeseite von phpMyAdmin, sodass die Benutzer einen zusätzlichen Benutzernamen/ein zusätzliches Passwort eingeben müssen, bevor sie auf die eigentliche Anmeldeseite von phpMyAdmin zugreifen können.

Zuerst müssen wir mit htpasswd eine Passwortdatei generieren Nützlichkeit. Das Dienstprogramm htpasswd ist Teil der apache2-utils Paket. Lassen Sie uns es also mit dem Befehl installieren:

$ sudo apt install apache2-utils

Erstellen Sie nun eine verschlüsselte Passwortdatei mit dem Befehl:

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

Ersetzen Sie "ostechnix" durch einen Benutzernamen Ihrer Wahl. Geben Sie zweimal ein starkes Passwort ein, um die Passwortdatei zu generieren.

Um den Inhalt der neu generierten Datei anzuzeigen, verwenden Sie den „cat“-Befehl wie unten:

$ cat /etc/nginx/.htpasswd

Sie sehen eine Ausgabe wie unten:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

Als nächstes müssen wir den Pfad der obigen Passwortdatei in unserer Nginx-Standardkonfigurationsdatei erwähnen. Wenn Sie unserem oben angehängten LEMP-Installationstutorial gefolgt sind, sollte die Nginx-Standardkonfiguration /etc/nginx/sites-available/default sein .

Bearbeiten Sie die standardmäßige Nginx-Konfigurationsdatei:

$ sudo nano /etc/nginx/sites-available/default

Fügen Sie die folgenden Zeilen unter "location" hinzu blockieren:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

Denken Sie daran, dass wir die phpMyAdmin-URL (http://IP-Adresse/ostechnix) im vorherigen Schritt geändert haben? Deshalb habe ich im obigen Block den Blocknamen als "ostechnix" erwähnt. Ersetzen Sie es durch Ihr eigenes. Speichern und schließen Sie die Datei.

Überprüfen Sie die Nginx-Konfigurationsdatei auf Syntaxfehler mit dem Befehl:

$ sudo nginx -t

Beispielausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Wenn Sie keine Fehler sehen, starten Sie den Nginx-Dienst neu, um die Änderungen zu übernehmen.

$ sudo systemctl restart nginx

Versuchen Sie nun, über Ihren Browser auf Ihre phpMyAdmin-URL zuzugreifen. Sie werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben:

Geben Sie den korrekten Benutzernamen und das Passwort ein, die zuvor mit dem Dienstprogramm „htpasword“ erstellt wurden. Jetzt werden Sie zur eigentlichen phpMyAdmin-Anmeldeseite weitergeleitet, wo Sie den Datenbankbenutzer und sein Passwort eingeben können, um sich beim phpMyAdmin-Web-Dashboard anzumelden.


Ubuntu
  1. So installieren Sie Nginx mit PHP und MySQL (LEMP Stack) unter Ubuntu 20.04 LTS

  2. Installieren Sie WordPress mit LEMP Stack auf Ubuntu 20.04

  3. Installieren Sie phpMyAdmin auf Ubuntu 14.10

  4. So installieren Sie den LEMP-Stack unter Ubuntu 16.04

  5. Installieren Sie phpMyAdmin mit LAMP Stack auf Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Apache unter Ubuntu 22.04 LTS

So installieren Sie das neueste phpMyAdmin mit LEMP unter Ubuntu 20.04

So installieren Sie phpMyAdmin unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 20.04 LTS

So installieren Sie den LEMP-Stack mit PhpMyAdmin in Ubuntu 20.04