phpMyAdmin unter Ubuntu installieren und absichern

Vorbereitung

Wie man phpMyAdmin unter CentOS installiert hatte ich ja schon mal hier beschrieben Da es aber ein paar Sonderheiten unter Ubuntu zu beachten gibt, dachte ich mir ich schreib nochmal einen kurzen Artikel wie man phpMyAdmin unter Ubuntu installieren und absichern kann. Ich habe eben erst mal ne Stunde an meiner Firewall rum gefummelt, bis das Test-System endlich ins Internet wollte … Versichert euch also auf jeden Fall, dass die Internetverbindung bei euch im Test,- oder Live-System steht.

Ich gehe davon aus, dass Ubuntu Server 14.04 in der Grundversion + SSH Server installiert ist. Wie das System um den LAMP Stack erweitert wird könnt ihr hier nachlesen. Macht vorher auch mittels:

sudo apt-get update && sudo apt-get upgrade

unbedingt noch ein Update des Systems.

Wenn ihr diese Grundvoraussetzungen erfüllt geht es weiter mit der Installation von phpMyAdmin.

Installation von phpMyAdmin

Das Programm phpMyAdmin lässt sich einfach über apt aus den Ubuntu Repositories installieren über folgenden Befehl

sudo apt-get update
sudo apt-get install phpmyadmin

Ihr werdet nun ein paar Sachen abgefragt, die es richtig zu beantworten gilt

phpmyadmin1

Hier wählen wir apache2.

phpmyadmin2

Selbst als erfahrener Datenbankadministrator bin ich noch nie auf die Idee gekommen, dass von Hand anzulegen. Also <Yes>

phpmyadmin3

Euer Passwort eingeben …

phpmyadmin4

… und bei Bedarf ein neues Passwort für den phpMyAdmin Benutzer erstellen. Wenn ihr das Feld leer lasst bekommt ihr eins automatisch generiert. Achtet also darauf, wenn ihr Ok klickt.

Die phpMyAdmin Apache Konfiguration wurde unter /etc/apache2/conf-enabled/ angelegt wenn das Setup beendet wurde. Als nächstes installieren wir das Paket php5-mcrypt über folgenden Befehl

sudo php5enmod mcrypt

Und starten den Webserver neu

sudo service apache2 restart

Daraufhin sollte die phpMyAdmin Instanz unter folgender URL erreichbar sein.

http://ip_oder_domain_eures_servers/phpmyadmin

Ihr bekommt diese Login-Maske angezeigt

phpmyadmin5

an der ihr euch mit root und dem von euch vergebenen phpMyAdmin Passwort anmelden könnt.

phpMyAdmin absichern

Wenn ihr euren Server in einer sicheren Umgebung betreibt, sprich einem lokalen Netzwerk auf das von außen kein Zugriff besteht, seid ihr an diesem Punkt fertig. Ist das nicht der Fall und der Server ist öffentlich zugänglich d.h. über das Internet erreichbar, richten wir in diesem Schritt noch einen .htaccess Schutz ein.

Dazu müssen wir zunächst Apache die .htaccess Overrides erlauben. Dies geschieht in der phpmyadmin.conf

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

Hier fügen wir ein AllowOverride All der Spalte hinzu

    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All

Speichern und Apache restarten.

sudo service apache2 restart

Als nächstes wird eine .htaccess File erstellt. Folgender Befehl legt direkt in unserem phpmyadmin Verzeichnis eine an

sudo nano /usr/share/phpmyadmin/.htaccess

Nicht wundern die Datei ist leer. Wir füllen sie mit diesem Inhalt

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Datei speichern und schliessen. Und weiter im Text.
Für die Authentifizierung benötigen wir eine .htpasswd File. Den Ort wo diese Datei liegen muss, haben wir mit der Variablen AuthUserFile in der .htaccess definiert. Um die .htpasswd anlegen zu können brauchen wir zunächst aber noch ein Paket

sudo apt-get install apache2-utils

Ist dieses installiert können wir die Datei anlegen

sudo htpasswd -c /etc/phpmyadmin/.htpasswd Benutzername

Unter Benutzername tragen wir den von uns gewünschten Benutzernamen ein. Es muss kein bereits auf dem Linux System vorhandener Benutzer sein. Das Passwort wird nach Eingabe des Befehls vergeben. Damit ist Benutzer und Passwort angelegt.
Ihr werdet in Zukunft bevor ihr eure Seite betretet nach eben diesem Benutzer und Passwort gefragt. Erst danach gelangt ihr zu der Anmelde-Maske von phpMyAdmin.

phpmyadmin6

Fragen? Anregungen? Hinterlasst einen Kommentar.