Nextcloud PC absichern

ZuseZ3

Lt. Commander
Registriert
Jan. 2014
Beiträge
1.659
Hallo erstmal, ich hatte ueberlegt das ganze auch im Netzwerk unterforum zu posten, da es aber auch um die PC Einstellungen geht bin ich hier wohl besser aufgehoben.

Folgende Situation, ich habe eine Cloud bei meinen Eltern eingerichtet:
  1. zur Synchronisation meiner Dokumente zwischen Handy,Pc,..
  2. teilen von Medien
  3. Backup (eines von x)
Erstmal mein generelles Setup, es laueft bereits:

Router:
Hier lauft eine eigene 6490, diese reicht ipv4/6 Anfragen an Port 443 weiter an Port 443 von meinen nextcloud pc.
Ich nutze den myFritz Dienst von AVM um eine statische Adresse asdf.myfritz.net/nextcloud fuer meinen Server zu haben.
Wie sieht es mit Port 80 aus? Soll ich den an Port 80 oder Port 443 meines PCs weiterleiten oder dort weiterhin verwerfen?

PC:
Aktueller lamp Stack mit Nextcloud (selbst installiert, nicht die snap Version).
Das einzige nicht Standardmaesig aktivierte Plugin ist external-storages, ueber welches ich locale HDDs eingebunden habe.
Port 80 leitet auf Port 443 weiter, Letsencrypt Zertifikat ist aktiv, die Nextcloud encryption nicht.

Config files sind am Ende angefuegt.

Wartung:
Ich ueberlege eine VPN Verbindung einzurichten, da das weiterleiten von SSH ueber die FB an den PC anscheinend unsicher ist?
Darueber koennte ich ja sowohl FB als auch PC auf dem neusten Stand halten.

Naechste Schritte/Probleme:

1) Ich habe noch 20+ sqashfs eintraege, da ich snap nicht nutze ueberlege snap zu deinstallieren und die Eintraege damit zu entfernen. Grund ist ein saubereres System und dass ich wohl nicht dran denken werde updates dafuer zu installieren.
Oder ist snap irrelevant und ich sollte mein laufendes system in Ruhe lassen?

2) Beim einloggen nach vorherigem Ausloggen werde ich auf die loginseite zurueckgeleitet, sobald ich Benutzer/PW mit Enter bestaetige. Dies passiert 0-4 mal, jedes mal mit veranedertem Buchstabensalat hinter asdf.myfritz.net/nextcloud/.
Nutze ich https://asdf.net/nextcloud ohne weitere anhaengsel ist bereits der erste loginversuch erfolgreich
Ich vermute eine falsche config? Welche ist dafuer vmtl. zustaendig?

3) Use a dedicated domain for Nextcloud

4) Ensure that your Nextcloud instance is installed in a DMZ

Was genau ist mit 3,4 gemeint, die erklaerungen sind mir nicht ganz klar? Wie ueberpruefe ich das?

5) HTTP Strict Transport Security habe ich aktiviert, wie wichtig ist der preload parameter?
 
Afaik muss dein Webserver auch auf Port 80 erreichbar sein, auch wenn der dann einen redirect auf :443 macht aber soweit ich mich jetzt erinnere benötigt Let's Encrypt dies, je nachdem welche Art der Zertifikatserneuerung du nutzt.

Warum sollte eine Portweiterleitung unsicher sein? Vergiss hörensagen solange keiner eine brauchbare Quelle liefern kann. Wenn du unnötige Anmeldeversuche verringern willst kannst SSH auf einen anderen Port legen und/oder fail2ban nutzen, das kann auch für den Webserver sinnvoll sein. Ob direkt SSH oder erst ein VPN sicherer oder unsicherer ist, hängt eher von Faktoren ab. Vor allem aber wie sicher du diesen Dienst konfiguriert hast. Sprich Zugriff mit per public key und dann bestenfalls keinen RSA-Key sondern was moderneres, abschalten unsicherer Ciphers, etc.
Für SSH gibt es da z.B. ssh-audit oder von der Mozilla Foundation ssh_scan oder gleich für das gesamte System mit Lynis und zu guter Letzt noch den Webserver vernünftig konfigurieren. Eine hervorragende Seite wäre da u.a. https://infosec.mozilla.org/. Dort gibt es viele Basics aber z.B. auch config generators für die häufigsten Webserver und Reverse-Proxies/Loadbalancer und viele andere gute Tipps. Deine Webseite selbst kannst mit https://observatory.mozilla.org/ oder den Scans von Qualys oder SSLlabs testen.

1) Ich persönlich würde immer nur das für den Betrieb notwendigste installieren. Das bedeutet auch haufenweise ungenutzte Pakete zu deinstallieren.

2) Was sagt der Log von Nextcloud? Was sagt der Log des Webservers? Ist auf jeden Fall kein normales Verhalten.

3) beschreibt, dass Nextcloud unter einer eigenen (Sub-)Domain erreichbar ist und eben nicht unter domain.tld/nextcloud und dann unter domain.tld/wordpress liegt ein Blog usw. aber das ist in deinem Fall afaik nicht möglich, du hast ja nur die eine Domain und kannst keine Subdomains anlegen.

4) Öffentlich erreichbare Server sollten in einem eigenen Netz stehen mit nur gerade notwendigsten Firewallfreigaben damit wenn ein Angreifer das System kompromittiert er dann nicht Zugriff auf das restliche Netzwerk hat. Bei dir ist das nun einmal dann gegeben. So eine Konfiguration lässt sich eben nur mit Routern/Firewalls umsetzen, die mehrere interne Netzwerke verwalten können.

5) Ich hoffe, dies erklärt es einigermaßen: https://blog.mozilla.org/security/2012/11/01/preloading-hsts/
 
@snaxilian vielen Dank erstmal, ich hatte die Mod headers zwar aktiviert gehabt und das auch noch so im Kopf, beim rumtesten muss ich die aber wohl wieder deaktiviert haben.
Zumindest waren sie bis heute morgen deaktiviert, wie mir dank der Mozilla Testseite aufgefallen ist.

Dort habe ich mich dann auch von F auf A+ hochgearbeitet, bei SSLLabs/Qualibs habe ich dank der Aenderungen jetzt auch A+, war aber auch davor schon bei A.

Port 80 wird nun auch wieder weitergeleitet auf den Server und von dort aus umgeleitet auf https.
Danke fuer den Hinweis.

Hier ist meine einzige aktive config Datei (sites-enabled), siehst du sonst auf die schnelle noch einen Fehler?
Ich bin ein wenig am Raetseln, ob der Part mit IFModule so schlau ist, sollte ich die Headers in Zukunft
ausversehen deaktiviert haben wuerde mich aktuell ja nix warnen und die Seite unsicher werden.
<VirtualHost *:80>
1 ServerName iwh2ycok4hcsi2ki.myfritz.net
2 Redirect permanent / https://iwh2ycok4hcsi2ki.myfritz.net
3 </VirtualHost>
4
5 <VirtualHost *:443>
6 ServerName iwh2ycok4hcsi2ki.myfritz.net/nextcloud
7 <IfModule mod_headers.c>
8 Header always set Strict-Transport-Security "max-age=157 68000; includeSubDomains"
9 Header always set Referrer-Policy "no referrer"
10 Header always set Referrer-Policy "strict-origin"
11 #img-src data: blob:
12 Header always set Content-Security-Policy: "default-src 'none' ; \
13 img-src 'self' data: ; \
14 style-src 'self' 'unsafe-inline'; \
15 object-src 'none' ; \
16 script-src 'self' 'unsafe-inline'; \
17 font-src 'self' data:; \
18 connect-src 'self'; \
19 media-src 'self'; \
20 base-uri 'none'; \
21 form-action 'self'; \
22 frame-ancestors 'none';"
23
24 Header always set X-XSS-Protection: "1; mode=block"
25 Header always set X-Frame-Options: DENY
26 Header always set X-Content-Type-Options nosniff
27 </IfModule>
28
29 SSLCertificateFile /etc/letsencrypt/live/iwh2ycok4hcsi2ki.myf ritz.net/fullchain.pem
30 SSLCertificateKeyFile /etc/letsencrypt/live/iwh2ycok4hcsi2ki.m yfritz.net/privkey.pem
31 Include /etc/letsencrypt/options-ssl-apache.conf
32 </VirtualHost>
33
34 Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
35 Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav

Was die Punkte 1-5 angeht.

1) Snap hatte ich wohl damals deinstalliert, die 20 eintraege a la /dev/loop5: TYPE="squashfs" scheinen wohl nur noch leichen davon zu sein. Werde aber die Tage dann auch noch den Rest kontrollieren.

2) Was sagt der Log von Nextcloud? Was sagt der Log des Webservers? Ist auf jeden Fall kein normales Verhalten. Die logs muss ich eh noch abarbeiten, jetzt wo der Rest abgesichert ist, da gabs noch eine weitere Leiche, iirc. Schreibe ich dann morgen mal hier rein, falls ich es nicht selbst mit HIlfe vom Internet geloest bekomme

3) Nun, genau genommen erfuelle ich das doch so? ich habe die Adresse abc.myfritz.net/nextcloud/ fuer meinen server, unter abc.myfritz.net kommt zZ nur die Apache default page.

4) Hmmm. Da bin ich gerade am raetseln, kann man da nicht mit Gastzugaengen/einer weiteren FB was machen? Aber das muss ich mir wohl selbst erst noch genauer ueberlegen.

5) Ja und ich lerne die Mozilla Dokus immer mehr zu schaetzen. Evtl. sollte ich mich da mal erkenntlich zeigen.

So oder so schon einmal vielen Dank fuer die sehr ausfuehrliche Antwort und die Links.
Ich hatte bisher nur den Check von /www.ssllabs.com/ genutzt, wo ich u.a. nicht erkannt habe, dass meine Strict-Transport-Security aufgrund nicht aktivierter mod_headers auch nicht aktiv war.
 
Zuletzt bearbeitet:
Habe auch A+ bei ssllabs und Mozilla dabei hab ich überhaupt keine Ahnung von der Materie. Nutze aber die offizielle Nextcloud VM. ;)
 
Zuletzt bearbeitet:
Zurück
Oben