Bis jetzt haben wir jedoch keine grafische Benutzeroberfläche, von wo aus wir unsere Datenbanken, die Tabellen und deren Inhalte verwalten können.
In diesem Beitrag möchten wir eine grafische Benutzeroberfläche (phpMyAdmin) installieren und diesen absichern.
Was ist phpMyAdmin?
phpMyAdmin ist eine Software, mit der ihr anhand eines Webservers, MySQL Datenbanken verwalten können. Der Name setzt sich daher aus drei Komponenten zusammen: php-My(sql)-Admin.
Die meisten Hoster stellen ihren Kunden phpMyAdmin zur Verfügung, damit sie ihre Datenbanken über eine Benutzeroberfläche verwalten können. Wir werden diese grafische Benutzeroberfläche installieren, damit wir die nächsten Schritte gemütlicher umsetzen können.
Anschließend werden wir den Zugriff auf phpMyAdmin nur per Remote Desktop zulassen, um auf der sicheren Seite zu stehen.
PhpMyAdmin installieren
Wir installieren phpMyAdmin einfach mit dem Befehl
sudo apt-get install phpmyadmin
Nachdem sie diesen Befehl abgeschickt haben, wird phpMyAdmin installiert und nebenbei konfiguriert. Damit die Konfiguration ihrem System und ihren Wünschen entspricht, werden sie ein paar Mal aufgefordert, eine Eingabe zu machen. Diese Eingaben werde ich euch einmal erklären.
- Ihr werdet gefragt, ob ihr Apache oder lighttpd verwendet. Wir haben nginx installiert und deswegen werden wir ohne ein Kreuz zu setzen mit OK bestätigen.
- Ihr werdet gefragt, ob phpMyAdmin die nötige Konfiguration für dich übernehmen soll. Mit ja bestätigen.
- PhpMyAdmin fragt nach einem Passwort. Dort gebt ihr ein sicheres Passwort für phpMyAdmin ein.
nginx für phpMyAdmin konfigurieren
Wenn die Installation ohne Probleme verlief, können wir mit der nginx Konfiguration beginnen. Wir haben jetzt phpMyAdmin zwar installiert, jedoch müssen wir noch nginx sagen, wann er phpMyAdmin anzeigen soll und wo phpMyAdmin zu finden ist.
Dafür müssen wir wieder unsere nginx Domain-Konfigurations-Datei zur Bearbeitung öffnen. Das geht mit
sudo nano /etc/nginx/sites-available/default
In dieser Datei erstellen wir ganz oben eine neue Zeile und fügen folgendes ein:
server {
listen 81;
server_name localhost;
root /usr/share/phpmyadmin;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?url=$1 last;
break;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Ihr könnt ruhig den Code von der Seite kopieren und in die Konsole einfügen. Sobald ihr den Text übernommen habt, schließt ihr die Datei (Strg + X) und bestätigt die Änderung.
Wir haben die Konfiguration so gemacht, dass man nur vom Gerät selber auf phpMyAdmin zugreifen kann. Zudem haben wir einen gesonderten Port (81) für den Webserver konfiguriert. Dadurch wird unser Zugang zu phpMyAdmin vor externen Zugriffen geschützt und ist sicherer. Jetzt muss nur noch der Server neugestartet werden
sudo /etc/init.d/php7.3-fpm reload && sudo /etc/init.d/nginx reload
Sobald das auch erfolgreich geschehen ist, könnt ihr euch mit dem Raspberry Pi über Remote Desktop verbinden und über den Browser localhost:81 aufrufen.
In phpMyAdmin könnt ihr euch nun mit dem Benutzernamen phpmyadmin und dem vorhin gewählten Passwort einloggen. phpMyAdmin hat jedoch aktuell keine Rechte und das ist auch gut so. Wir werden als nächstes einen Benutzer anlegen und ihm alle Rechte geben. Dazu verbinden wir uns mit dem Raspberry Pi per SSH (MobaXterm) oder machen die Eingabe direkt im Pi, wenn wir schon über Remotedesktop verbunden sind.
Mit folgendem Befehl wechseln wir auf das MySQL Superuser Konto:
sudo mysql --user=root mysql
Als nächstes erstellen wir einen neuen Benutzer. Vergesst nicht, DEINBENUTZERNAME und DEINPASSWORT mit euren Wunschdaten auszutauschen:
CREATE USER 'DEINBENUTZERNAME'@'localhost' IDENTIFIED BY 'DEINPASSWORT';
Jetzt vergeben wir diesem Benutzer alle Rechte. Hier wieder DEINBENUTZERNAME anpassen:
GRANT ALL PRIVILEGES ON *.* TO 'DEINBENUTZERNAME'@'localhost' WITH GRANT OPTION;
Abschließend werden wir noch die Rechte neu laden lassen mit:
FLUSH PRIVILEGES;
Jetzt habt ihr bereits ein neues Benutzerkonto, was ihr in phpMyAdmin benutzen könnt. Zum testen könnt ihr euch gerne per Remote Desktop mit dem Raspberry Pi verbinden und den Zugang testen.
Wir haben jetzt eine grafische Benutzeroberfläche für unsere Datenbank und sind können schon fast unsere Cloud Software (Nextcloud) installieren. Bevor wir das tun, benötigen wir noch ein SSL Zertifikat.
Im nächsten Beitrag werden wir lernen, was ein SSL Zertifikat ist und wieso es so wichtig ist. Wir werden ebenfalls das Thema Let’s Encrypt behandeln und ein Let’s Encrypt Zertifikat für unsere Domain ausstellen. Zum abschluss werden wir dieses Zertifikat mit unserer Domain verknüpfen.