RasPi mit Nextcloud, von Außen erreichbar

Mupfel

Mitglied
Hallo zusammen,

ich möchte meinem Bruder einen RasPi mit Nextcloud aufsetzen. Dieser soll per DynDNS-Derivat von außen zugänglich werden. Ggf. holt er sich auch eine statische IP-Adresse. Was muss ich dabei alles bedenken? Mir fällt ein:
  • HTTP oder HTTPS ist fast egal - ohne SSL braucht er weniger CPU, der Sicherheitsgewinn mit SSL scheint mir marginal. Man-in-the-Middle dürfte bei Privatpersonen sehr selten sein. Passwörter-Durchprobieren geht mit beiden Varianten recht einfach.
  • fail2ban oder Ähnliches könnte sinnvoll sein - wird die IP-Adresse, welche der äußere Kommunikationspartner hat, vom Router durch die Router-IP-Adresse ersetzt? Ich glaube nicht, also sperrt man sich nicht aus, wenn Dritte probieren, das Passwort zu knacken.
  • Der äußere Port sollte nicht 80 oder 443 sein, das ist mir klar. Im internen Netz ist der Port egal.
  • Das Verzeichnis, in welchem Nextcloud gespeichert ist, sollte nicht unbedingt "nextcloud" heißen, da Angreifer das wahrscheinlich auch ausprobieren.
  • memory_limit=512M in der /etc/php.ini sollte vor der Installation eingestellt sein, da sonst das Office-Paket nicht heruntergeladen werden kann. (Zumindest bei meiner eigenen Installation ohne externen Zugang geht es nicht...)
Bei DynDNS stellt sich die Frage, welcher Anbieter gut ist. Welche Erfahrungen habt ihr da? Oder ist eine statische IP-Adresse besser?
EDIT: Punkt 4 und 5 sind hinzugekommen (Verzeichnis und memory_limit).
 
Zuletzt bearbeitet:
Finde ich gut, wir müssen mehr Leute digital unabhängiger machen. Ich glaube, du deckst das meiste schon ab. Hier noch ein paar Gedanken:

VPN?​

Wenn er FritzBox oder einen anderen Router mit eingebauten VPN+DNS-Features hat, würde ich da ein Wireguard VPN aufsetzen und das lokale NextCloud dann nur darüber erreichbar machen. Und dann würdest du nur den VPN Zugangspunkt im Internet erreichbar machen, nicht die Nextcloud-Maske selbst. Dann wären auch alle Ports erreichbar, anders als bei vielen DynDNS-Lösungen. Ist aber natürlich ein bisschen weniger benutzerfreundlich, wenn man sich mit VPN verbinden muss.

HTTPS​

Wenn er über ein öffentliches WLAN ins Internet geht, können bei HTTP alle seine Daten und alle URIs unverschlüsselt abgefangen werden. In der Regel lässt man aber sowas wie NextCloud unverschlüsselt laufen und schaltet einen Proxy davor, der für die Verschlüsselung sorgt. Ich glaube aber, das meintest du schon damit. Habs nur für alle Fälle erwähnt.

fail2ban​

Hab es nie selbst eingerichtet, nur genutzt. Aber der Router ist ja im gleichen Subnetz, das du dann hoffentlich gewhitelisted hast. Und jedes Paket hat darüberhinaus eine Info, wohin die Antwort gehen soll. Sonst würde fail2ban jeden Knoten blocken, der beim Transport hilft.

Port​

Ein untypischer Port macht es weniger wahrscheinlich, dass du von den üblichen Crawlern gefunden wirst, aber Shodan wird dich trotzdem finden. Ist eine gute Maßnahme, aber keine auf die man sich zu sehr verlassen sollte. Man kann natürlich überlegen, ob man die Loginmaske noch hinter Basic Auth Verzeichnisschutz versteckt. Ich weiß nur nicht, ob die meisten NextCloud-Clients das direkt unterstützen (falls man nicht über den Browser rein geht).

Dünn-DNS​

Ich hatte früher gerne SelfHost genutzt. Ich denke es gibt da immer noch eine kostenlose Variante:

Ich hatte damit aber nie ausprobiert, ob man auch etwas anderes als HTTP(S) umleiten kann. Ich weiß noch, dass ich mit einem anderen Anbieter Probleme mit diversen anderen Protokollen hatte, trotz Portweiterleitung im Router. Es gingen immer nur Webserver, nichts anderes, keine eigenen VPN-Tunnel, kein SSH, kein UDP. Lag es an Firewalls beim Anbieter? Aber ich war auch ein bisschen dumm damals, vielleicht ist das gar kein Problem und ich hatte es nur falsch konfiguriert.

Verzeichnis​

Meinst du eine subdomain (nextcloud.meinserver.de) oder URI-Pfad (127.0.0.1/nextcloud/)? Oder tatsächlich ein Ordner auf den Pi? Ich weiß nicht, ob der Angreifer was mit dem absoluten Pfad anfangen kann. Aber in allen Fällen: solange es keine zu großen Probleme bereitet und NextCloud damit zurecht kommt, ist es immer gut, von den Standardpfaden und Ports abzuweichen.

Container?​

Es ist eine Überlegung wert, NextCloud in einem Podman-Container laufen zu lassen. So muss jemand, der in Nextcloud eingebrochen ist, erst noch aus dem Container ausbrechen, bevor er mit dem Pi Unfug treiben kann. Und Podman läuft mit virtuellen User-Accounts, sowas wie 10999, was auf dem Pi nicht existiert und keine Rechte hat. Ich glaube, Portainer macht etwas ähnliches, aber da hast du noch ein bisschen mehr Overhead+Docker, aber dafür eine grafische Oberfläche. So oder so hast du dann die Möglichkeit, problemlos andere Dienste in Containern auszuprobieren, wie zum Beispiel den HTTPS-Proxy, ohne dass du zu viel Müll direkt auf dem System installierst und du kannst die Netzwerkverbindungen leichter einschränken.

VPS?​

Es wäre auch eine Überlegung wert, einen kleinen virtuellen privaten Server zu mieten (3-4€ / Monat) und den als DynDNS, Firewall und für andere Dinge zu nutzen. Da könnte auch ein Tunnel zum Pi drauf laufen und den HTTPS-Proxy hosten, wenn der Pi etwas älter ist und es selbst nicht schafft. Die Firewall könnte dann auch schon eine Menge abfangen (mit crowdsec und/oder fail2ban) und der Rest könnte dann vom Pi mit fail2ban abgefrühstückt werden.

Andere Überlegungen​

Ich hatte letztens was von einem europäischen Cloud-Projekt gelesen, was mit NextCloud zusammen eine Art Gesamtlösung anbieten soll, aber ich glaube, das ist noch nicht fertig. Sonst hätte man das ausprobieren können.
 
Zurück
Oben Unten