phpMyAdmin

phpMyAdmin absichern

Sicherheit ist ein ständig präsentes und immer weiter an Bedeutung gewinnendes Thema, auch und gerade bei kleinen Webadmins.

Damit die eigene Webseite nicht durch Angriffe auf die darunterliegende Datenbank kompromitiert wird, ist auch dieses Interface abzusichern.

Grundlegende Schritte dazu sind:

1. Standard-URL verändern:
Dazu ist die Datei /etc/apache2/conf.d/phpmyadmin.conf anzupassen.
Hier muss die Zeile Alias /phpmyadmin /usr/share/phpmyadmin entsprechend angepasst werden Alias /secure /usr/share/phpmyadmin

2. Login für Root verbieten:
Dazu ist die Datei /etc/phpmyadmin/config.inc.php anzupassen.
Am Ende der Datei ist die Zeile $cfg['Servers'][$i]['auth_type'] = ‘cookie’; zu aktivieren (Auskommentierung entfernen).
Weiterhin ist eine zusätzliche Zeile einzufügen $cfg['Servers'][$i]['AllowRoot'] = FALSE;

3. einen neuen “nicht-Standard” Admin anlegen:
Im phpMyAdmin einen neuen User anlegen und alle höheren Rechte zuordnen.

phpMyAdmin new User

4. sofern möglich den Zugriff auf bestimmte IPs einschränken:
Im Dateisystem im Ordner phpmyadmin eine .htaccess anlegen mit dem Inhalt: allow from 100.110.120.130

5. Firewall für Port 3306 aktivieren:
Auf Port 3306 “hört” der MySQL-Dienst und sollte aus dem Internet möglichst nicht erreichbar sein. Handelt es sich bei der Installation um einen All-in-One-System, muss der Port von keinem anderen Computer erreichbar sein. Sollen vorgelagerte Webserver auf diese Datenbank zugreifen können ist besten an der Firewall die IP/Range nur zu erlauben.

Bei den meisten zusätzlichen Firewalls müssen Ausnahmen aktiv konfiguriert werden, daher ist hier i.d.R. gar nichts zu tun. Steht das System ungeschützt im Internet, sollte mindestens eine Software-Firewall (z.B.: iptables –> HowTo) eingerichtet sein, um die Angriffsfläche zu minimieren.

6. Interface per SSL-Zertifikat absichern:
Hier reicht schon ein selbstausgestelltes Zertifikat. Dies Sicherheitsmeldung muss einmalig bestätigt werden. Bei einem (Man-In-The-Middle) MITM gibt es eine Abweichung und eine erneute Wahrnung, sodass dies trotzdem auffällt.

Das Thema SSL-Zertifikate unter Apache wird in diesen Artikeln weiterführend beleuchtet:

Comments

  1. Super! Vielen Dank! Das hilft mir echt schon viel weiter!
    PS: Auf das Angebot mit dem Consulting komme ich vielleicht wirklich zurück. Bin derzeit im Aufbau einer großen Website, aber habe echt WENIG Ahnung von WebServer, Linux & Co. Und bei den vielen Sicherheitslücken wäre ein Profi echt toll! Werde dann ggf. wieder über diese Seite Kontakt aufnehmen.
    Danke und Gruß,
    Mark!

  2. Könntest Du die Punkte vielleicht etwas näher erläutern? Also erklären, wie genau man da vorgeht? Denn beispielsweise die Punkt 3, 6 und 4 verstehe ich GAR NICHT (also ich weiß nicht, wie genau ich vorgehen muss, um diese Dinge umzusetzen!) Und den Punkt 5 verstehe ich auch nicht recht.

    1. Hi Mark,

      Zu Punkt 3 habe ich noch einen Screenshot eingefügt, der hoffentlich die relevanten Punkte erklärt (jetzt musst du dir nur noch einen möglichst schwer zu erratenen Namen für den Admin und ein komplexes Passwort ausdenken).
      Zu Punkt 4 gibt es eigentlich nicht mehr zu sagen als da steht. Wenn du den Ordner finden möchtest, schau mal nach “find” dazu habe ich schon ein zwei Sachen geschrieben. Eine Datei kannst du mit einem Editor wie vi oder nano erstellen und bearbeiten. Der Inhalt steht ja schon im Post.
      Zu Punkt 5 habe ich auch noch weitere Ausführungen geschrieben, das hängt aber sehr stark von deiner Umgebung/Infrastruktur ab, daher kann ich hier nicht auf alle Möglichkeiten im Detail eingehen.
      Zu Punkt 6 habe ich ebenso noch ein paar weiterführende Links angehangen, die sich näher mit dem Thema beschäftigen.

      Ich hoffe das hilft dir weiter.

      Solltest du darüber hinaus noch Fragen oder Probleme haben, schreib mir gern auch über das Kontakt-Feld. Ich kann dir bei Bedarf auch Consulting anbieten, wenn es umfangreicher ist oder du Unterstützung brauchst.

      Beste Grüße zurück

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.