Raspberry Pi – phpMyAdmin unter Nginx installieren

phpMyAdminphpMyAdmin lässt sich nicht nur auf dem Apache2 oder lighthttpd Webserver sondern auch auf dem Nginx Webserver installieren. Dazu ist ein kleiner Trick notwendig da bei der Installation von phpMyAdmin lediglich die beiden zuvor genannten Webserver zur Auswahl stehen.

 

Erfahren Sie in diesem Beitrag wie Sie phpMyAdmin auf dem Nginx Webserver installieren und anschließend vor Angriffen wie BruteForce Attaken schützen können.

 

 

 phpMyAdmin installieren

Wenn die Abfrage erscheint, für welchen Webserver (apache2, lighthttpd) Sie phpMyAdmin installieren wollen, drücken Sie die Tabulator- gefolgt von der Enter-Taste um keinen der Einträge auszuwählen.

Die nächste Abfrage beantworten Sie mit „Ja“.

Geben Sie als nächstes das MySQL Datenbank Passwort des Root ein.

Geben Sie zweimal ein beliebiges Passwort ein, mit dem Sie sich ab sofort in phpMyAdmin anmelden.

Nun erstellen wir einen symbolischen Link von der phpMyAdmin-Installation zum Document Root des Nginx Servers.
Standardmäßig liegt das Nginx-Root-Verzeichnis unter /usr/share/nginx/html. Ich habe aber, wie Sie in meinen letzten beiden Beiträgen sehen können, als Root-Verzeichnis /var/www/html gewählt.

Nun aktivierehn wir noch das php Modul mcrypt

und starten php5-fpm neu

Nun kann man phpmyadmin wie gewohnt starten
https://profwebapps.cloud/phpmyadmin/ oder https://192.168.178.22/phpmyadmin

Benutzername: root

Absichern von phpMyAdmin

phpmyadminzusatzlogin

Als erstes benennen wir den zuvor erstellten symbolischen link zur phpMyAdmin Installation um.
Dazu gehen wir in das Root-Verzeichnis des Webservers und lassen und alle Dateien inklusive der symbolischen Links anzeigen.

Jetzt können Sie sehen dass der symbolische Link mit dem Namen phpmyadmin vorhanden ist der auf die phpMyAdmin Installation im Verzeichnis /usr/share/phpmyadmin zeigt.

Dieser Link soll nun umbenannt werden damit man die phpMyAdmin Installation schon mal nicht mehr so leicht von aussen finden kann.
Ich nenne den Link jetzt „NichtsZuSehen“

Ab sofort rufen Sie phpMyAdmin nicht mehr so auf

sondern so

Nun wollen wir noch einen wirksamen Schutz vor brutforce Attacken implementieren.
Wenn jetzt die phpMyAdmin Seite aufgerufen wird, soll noch bevor der Login von phpMyAdmin erscheint, ein weiterer Login angezeigt werden.

Zuerst erstellen wir ein verschlüsseltes Passwort.
Normalerweise würde ich dafür openssl nutzen. Da man mit openssl jedoch nur kurze Passwörter verschlüsseln kann, benutze ich mkpasswd das sich im Paket whois befindet. Falls das Paket whois nicht installiert ist holen wir dies jetzt nach.

Nun geben wir den folgenden Befehl gefolgt von unserem zu verschlüsselnden Passwort ein.

Geben Sie hier Ihr Passwort ein.
Sie erhalten als Ausgabe die verschlüsselte Version Ihres Passwortes

Nun legen wir im im Nginx Konfigurationsverzeichnis eine Authentifizierungsdatei mit dem Namen pma_pass an.
Rufen Sie dazu folgenden Befehl auf!

In diese Datei schreiben wir nun einen Benutzernamen und das verschlüsselte Passwort in einer Zeile und beides getrennt durch einen Doppelpunkt. Das Ganze sollte dann so aussehen

Nun ändern wir abermals unsere Nginx Konfigurationsdatei.

In dieser Datei erstellen wir im Block server einen neuen Block.

und starten nginx neu

Wenn Sie nun phpMyAdmin wie zuvor aufrufen wird nun nicht die phpMyAdmin-Seite mit dem Loginfeld angezeigt.
Stattdessen erscheint ein Login Fenster in das Sie die gerade erstellten Anmeldedaten eingeben müssen.
Werden falsche Daten eingegeben wird die phpMyAdmin Seite niemals angezeigt. Sind die Anmeldedaten korrekt erscheint der phpMyAdmin Login, in dem Sie nun die gewohnten phpMyAdmin Anmeldedaten eingeben.

 

Im nächsten Beitrag erfahren Sie wie man Kontakte, Aufgaben und Kalender auf seinem Nginx-Webserver mittels Baikal verwalten und diese mit den verschiedensten Devices synchronisieren kann.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.