Hallo zusammen,
ich betreibe auf meiner Diskstation unter anderem einen Baikal Server (manuelle Installation mit SQLite Datenbank, kein SPK). Die zugehörigen Dateien sind im Verzeichnis /web/baikal abgelegt. In anderen Unterordnern von /web befinden sich u.a. phpMyAdmin, DokuWiki und gitlist. Da der Zugriff nur lokal (bzw. über VPN) möglich ist, besitzen diese Verzeichnisse keinerlei Schutz, MariaDB (phpMyAdmin) läuft ohne root Passwort, usw. .
Für den externen Zugriff besitze ich eine Second-Level-Domain im Domain-Paket von Strato. DynDNS ist mit einer FritzBox problemlos möglich, dabei wird jedoch keine Subdomain, sondern direkt die Second-Level-Domain verwendet. Bisher läuft darüber aber nur VPN (über L2TP/IPSec, also keinerlei Zertifikate oder ähnliches im Einsatz).
Auch die Kontakt-/Kalendersynchronisation mit Baikal ist dementsprechend nur im lokalen Netz möglich. Dies soll sich jetzt ändern.
Die Kommunikation soll dabei ausschließlich über https erfolgen. Es wird also nur Port 443 in der FritzBox geöffnet, Port 80 bleibt geschlossen. Außerdem soll nur der Baikal-Ordner erreichbar sein, auf alle anderen Ordner soll der Zugriff nach wie vor nur lokal möglich sein.
Mein Ansatz für eine Standard Apache Installation wäre das Setzen des DocumentRoots auf /web/baikal bei einem Zugriff über https (Port 443). Also einrichten eines Virtual Hosts mit
Wie kann ich auf einer Diskstation mit Bordmitteln das Gleiche erreichen? Betonung liegt hierbei auf Bordmitteln, da ich nicht nach jedem Update des DSM erst wieder die Konfigurationsdateien des Apache bearbeiten möchte, da diese möglicherweise zurückgesetzt wurden.
Meiner Meinung nach habe ich mit Ansatz 3 mein Ziel erreicht. Ist dem tatsächlich so oder übersehe ich etwas und öffne dabei eine Schwachstelle? Gäbe es eine einfacherere/sicherere Möglichkeit den Zugriff zu ermöglichen?
In diesem Zusammenhang soll auch ein kostenloses Zertifikat bei StartSSL erstellt werden. Die meisten Anleitungen (z.B. hier im Forum) leiten dabei eine Subdomain auf eine dynamische Domain um und erstellen das Zertifikat für die Subdomain (bei StartSSL muss ja auch eine Subdomain angegeben werden). Jetzt sind jedoch mit dem Paket bei Strato keine Subdomains (außer www) möglich. Der Zugriff kann entweder über example.com oder www.example.com erfolgen. Was gebe ich in diesem Fall sinnvollerweise bei StartSSL als Subdomain ein? www?
Vielen Dank für eure Antworten und viele Grüße
TodsDeath
ich betreibe auf meiner Diskstation unter anderem einen Baikal Server (manuelle Installation mit SQLite Datenbank, kein SPK). Die zugehörigen Dateien sind im Verzeichnis /web/baikal abgelegt. In anderen Unterordnern von /web befinden sich u.a. phpMyAdmin, DokuWiki und gitlist. Da der Zugriff nur lokal (bzw. über VPN) möglich ist, besitzen diese Verzeichnisse keinerlei Schutz, MariaDB (phpMyAdmin) läuft ohne root Passwort, usw. .
Für den externen Zugriff besitze ich eine Second-Level-Domain im Domain-Paket von Strato. DynDNS ist mit einer FritzBox problemlos möglich, dabei wird jedoch keine Subdomain, sondern direkt die Second-Level-Domain verwendet. Bisher läuft darüber aber nur VPN (über L2TP/IPSec, also keinerlei Zertifikate oder ähnliches im Einsatz).
Auch die Kontakt-/Kalendersynchronisation mit Baikal ist dementsprechend nur im lokalen Netz möglich. Dies soll sich jetzt ändern.
Die Kommunikation soll dabei ausschließlich über https erfolgen. Es wird also nur Port 443 in der FritzBox geöffnet, Port 80 bleibt geschlossen. Außerdem soll nur der Baikal-Ordner erreichbar sein, auf alle anderen Ordner soll der Zugriff nach wie vor nur lokal möglich sein.
Mein Ansatz für eine Standard Apache Installation wäre das Setzen des DocumentRoots auf /web/baikal bei einem Zugriff über https (Port 443). Also einrichten eines Virtual Hosts mit
Code:
<VirtualHost *:443>
DocumentRoot /web/baikal
</VirtualHost>
(unvollständiges Beispiel)
Wie kann ich auf einer Diskstation mit Bordmitteln das Gleiche erreichen? Betonung liegt hierbei auf Bordmitteln, da ich nicht nach jedem Update des DSM erst wieder die Konfigurationsdateien des Apache bearbeiten möchte, da diese möglicherweise zurückgesetzt wurden.
- 1. Ansatz:
Aktivierung von https in der Webstation, Freigabe des Ports 443 in der FritzBox. Zugriff von außen problemlos möglich, allerdings nicht nur auf den Baikal-Ordner sondern logischerweise auf alles.
- 2. Ansatz:
Zusätzlicher Verwendung eines Virtual Hosts:
Zugriff über https://example.com liefert die Baikal-Installation. Zugriff über die externe IP ermöglicht jedoch wieder den Zugriff auf alles. Extrem unschön, da die IP ja kein Geheimnis ist.Code:Ordner: baikal Hostname: example.com Protokoll: HTTPS Port: 443
- 3. Ansatz:
Änderung des Ports des Virtual Hosts auf 444. Portweiterleitung in der FritzBox von example.com:443 auf diskstation:444. Wenn ich das richtig sehe, ist der Hostname in diesem Fall eigentlich irrelevant, da auf diesem Port nur die Baikal-Installation ausgeliefert wird, egal ob der Zugriff über IP/Domain/intern/extern erfolgt.
Meiner Meinung nach habe ich mit Ansatz 3 mein Ziel erreicht. Ist dem tatsächlich so oder übersehe ich etwas und öffne dabei eine Schwachstelle? Gäbe es eine einfacherere/sicherere Möglichkeit den Zugriff zu ermöglichen?
In diesem Zusammenhang soll auch ein kostenloses Zertifikat bei StartSSL erstellt werden. Die meisten Anleitungen (z.B. hier im Forum) leiten dabei eine Subdomain auf eine dynamische Domain um und erstellen das Zertifikat für die Subdomain (bei StartSSL muss ja auch eine Subdomain angegeben werden). Jetzt sind jedoch mit dem Paket bei Strato keine Subdomains (außer www) möglich. Der Zugriff kann entweder über example.com oder www.example.com erfolgen. Was gebe ich in diesem Fall sinnvollerweise bei StartSSL als Subdomain ein? www?
Vielen Dank für eure Antworten und viele Grüße
TodsDeath