Jeder der auf einem Hoster oder einer NAS MariaDB/MySQL installiert hat, ist mit Sicherheit auch schon über phpMyAdmin gestolpert. Es ermöglicht das anlegen, edititieren oder löschen von Datenbanken über eine grafische Oberfläche (GUI).
Nun wird das Programm auf meiner Synology DS415+ per default in den Ordner /web installiert, welcher auch die Dateien beinhaltet, welche die Web Station (Webserver) ausliefert. Somit ist phpMyAdmin unter domain.de/phpMyAdmin (bzw. DynDNS/phpMyAdmin) zugänglich. Ein für mich unbefriedigender Zustand. Obwohl phpMyAdmin mit einem Passwortschutz versehen ist, muß man es nicht unbedingt öffentlich zugänglich machen. Ich sehe in meinem Anwendungsfall keinen Grund warum ich von unterwegs auf meine Datenbanken zugreifen sollte oder gar muß.
Der Zugriff auf Webseiten, einzelne Ordner oder Dateien ließ sich mit Apache2 als Webserver relativ leicht mit einer .htaccess eingrenzen, bzw. auch sperren..
Da phpMyAdmin aber nicht über den Apache2 sondern mit nginx ausgeliefert wird greifen hier keine Regeln welche über eine .htaccess festgelegt worden sind.
phpMyAdmin erstellt während der Installation aber eine Konfigurationsdatei, in welcher wir den Zugriff ebenfalls einschränken können. Die Datei findet sich unter /var/packages/phpMyAdmin/target/synology_added, und heißt www.phpMyAdmin.enable.conf. In meinem Setup wird der Zugriff auf phpMyAdmin generell verboten, mit zwei Ausnahmen für lokale Netze.
location ~ ^/phpMyAdmin/(.*)/\. {
deny all;
}
location ~* ^/phpMyAdmin/(.*)\.(jpg|jpeg|png|gif|css|js|ico)$ {
allow 192.168.178.0/24;
allow 192.168.179.0/24;
deny all;
root /var/services/web/;
expires max;
log_not_found off;
}
location ~ ^/phpMyAdmin/(.*)\.php$ {
allow 192.168.178.0/24;
allow 192.168.179.0/24;
deny all;
root /var/services/web/;
include fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/php56-fpm.sock;
}
location ~ ^/phpMyAdmin {
allow 192.168.178.0/24;
allow 192.168.179.0/24;
deny all;
root /var/services/web/;
try_files $uri $uri/ /phpMyAdmin/index.php$is_args$args;
Damit die blau hinterlegten Änderungen auch geschrieben werden, muß nur noch der Webserver der NAS mittels synoservicectl –restart nginx neu gestartet werden.
Mit diesen Änderungen ist es nur noch möglich, phpMyAdmin aus den lokalen Netzen 192.168.178.x und 192.168.179.x aufzurufen, andere IPs werden abgewiesen.
Hallo, überlebt diese Änderung auch ein Neustart der DS sowie ein Update?
Hallo Lars,
die Änderung überlebt einen Reboot der Maschine als auch Updates.
Gruß Markus
Bei der neuesten Version des Synology OS 6.2.2-24922 ist die Struktur der Verzeichnisse und der Inhalt der Datei http://www.phpMyAdmin.enable.conf aber etwas anders. Konnte deshalb den Vorgang leider nicht nachvollziehen. Zu schade kann man den phpMyAdmin auf der Synology nicht auf den Apache 2.4 (oder 2.2) aufziehen.
Hallo Gerald,
Danke für Deinen Kommentar.
Ich habe eben nochmal nachgesehen.
Unter DSM 6.2.2-24922 Update 2 ist obiges Verfahren weiterhin gültig.
Mit der Direktive wird PMA auf das lokale Netz begrenzt.
Mit freundlichen Grüßen
Markus