Anfänger OwnCloud und VPN

M

makeoit

Grünschnabel
Hallo,
da ich noch neu bin und nur über Grundkenntnisse verfüge habe ich ein paar kleine fragen an euch.

Und zwar möchte ich meinen eigenen OwnCloud/NextCloud Server einrichten auf einen raspberry.
Als OS benutze ich Raspbian lite.

Dieser soll ja auch mobil und von anders wo abrufbar sein. Also dyndns/noip dies sollte ja kein Problem sein. Um alles sicherer zu gestalten möchte ich jedoch nur Verbindungen über VPN zulassen.
Hier würde ich openVPN benutzen.


Wenn ich bei meinem Router nur den einen Port weiterleite funktioniert es da noch mit owncloud?
Wie müsste ich Owncloud und VPN server konfigurieren damit es funktioniert?
Login über SSH nur mit keyfile notwendig? Da ja andere Ports eh gesperrt?
Whitelist erstellen für alle benötigten Ports?
Benötige ich Fail2Ban noch?
SSH Port sollte ja geändert werden?
Was müsste ich außerdem noch beachten?


Entschuldigt für die vielen Fragen :/
Danke schon einmal für eure Hilfe!
 
Dieser soll ja auch mobil und von anders wo abrufbar sein. Also dyndns/noip dies sollte ja kein Problem sein. Um alles sicherer zu gestalten möchte ich jedoch nur Verbindungen über VPN zulassen.

Hört sich nach einem guten Plan an.

Wenn ich bei meinem Router nur den einen Port weiterleite funktioniert es da noch mit owncloud?

Du leitest am Router den Port auf den Port auf dem der VPN-Dienst auf Himbeere läuft.

Wie müsste ich Owncloud und VPN server konfigurieren damit es funktioniert?

Das kann ich Dir so auswendig nicht sagen. Von der Theorie her pusht Du Dein lokales Netz (privater IP-Adressbereich z. B. 192.168.178.0/24 = Standardbereich, den die FritzBoxen konfigurieren) über die VPN-Sitzung auf den VPN-Client. Das Owncloud ist dann nur über diese private IP erreichbar. Als Authentisierungsmethode für das VPN würde ich auf jeden Fall nur Zertifikate erlauben. Damit haben sich dann BruteForce-Rateversuche erledigt.

Login über SSH nur mit keyfile notwendig? Da ja andere Ports eh gesperrt?

Ist grundsätzlich eine gute Sache. Sicherheitstechnisch finde ich das nicht unbedingt notwendig. Da schlüsselbasierte Authentisierung aber wesentlich angenehmer ist, als immer wieder Passwörter eingeben zu müssen, würde ich Dir dazu raten. Falls Du den SSH-Port auch über eine Portweiterleitung(also an OpenVPN vorbei) erreichbar machen willst: Ja, besser nur keybasierte Anmeldung erlauben. Ausreichend komplexe Passwörter (30 Zeichen mit Sonderzeichen) sehe ich selbst als ausreichend sicher und realistisch nicht knackbar an(über solche Fragen sind in Foren schon Kriege ausgebrochen).

Whitelist erstellen für alle benötigten Ports?

Ist grundsätzlich auch nicht verkehrt, nur das laufen zu lassen was notwendig ist. Um an irgendwelche Ports ausser dem VPN-Port zu kommen muss der Angreifer ja das VPN brechen, oder er kommt von innen aus dem LAN, in dem die Himbeere steht. Aber ein VPN ist schon mal eine recht hohe Sicherheitshürde.

Benötige ich Fail2Ban noch?

In dem Fall nicht. Vielleicht ein Firewall-Regel(iptables), die die Anzahl der Verbindungen zum OpenVPN-Port pro Quell-IP beschränkt. Es gibt immer wieder Idioten die DDOS-Attacken fahren und das belastet Deinen Raspi dann. Aber die Wahrscheinlichkeit ist eher seeeehr gering, dass das passiert.

SSH Port sollte ja geändert werden?

Falls Du den SSH-Port auch über eine Portweiterleitung erreichbar machen willst: Ja, das empfehle ich. Sonst hast Du da 100.000 Anmeldeversuche pro Tag irgendwelcher BruteForceKiddies drauf. Aber natürlich nicht der SSH-Port am Raspi ist wichtig, sondern das Portforwarding am Router. Am besten irgend etwas hohes zwischen 50000 - 65000 verwenden. Am besten den OpenVPN Port am Router auch auf einen hohen Bereich setzen.

Was müsste ich außerdem noch beachten?

  • Empfehlung: Habe ein Backup. :)
  • Empfehlung: Verwende etckeeper um eine Änderungshistorie deiner Konfiguration in /etc zu haben.
 
Also Nextcloud läuft und funktioniert. Nur habe ich folgendes Problem wenn ich mich per OpenVPN verbinden möchte: Es funktioniert nicht! :/



Folgendes steht in der Log-Datei vom Windows-client:

Mon Nov 07 19:17:42 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Mon Nov 07 19:17:58 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Mon Nov 07 19:18:26 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Nov 07 19:18:26 2016 TLS Error: TLS handshake failed



Ich denke ja das der Router den Port 1194 nicht weiterleitet. Wie könnte ich das Testen?
Ich wollte die log des VPN-Servers überprüfen jedoch finde ich diese nicht, wahrscheinlich stelle ich mich da zu dumm an :/
Als dyndns Anbieter habe ich noip.com genommen und alles im Router eingetragen.

Bei der OpenVPN Installation habe ich es nach jankarres Anleitung gemacht. Link kann ich leider nicht posten da ich noch keine 10 Beiträge habe.
Findet man jedoch wenn man nach "jankarres openvpn" sucht.
 
Du kannst Dir auf die Linuxbüchse tcpdump installieren und damit schauen, was da so für Pakete ankommen. (Ich rate mal: keine)

Code:
tcpdump -i eth0 -n port 1194

eth0 bitte durch den Namen Deines Netzwerkinterfaces des Linux-Rechners ersetzen. Da sollten Pakete mit Zieladresse deines Linux-Rechners zu sehen sein.
 
Zuletzt bearbeitet:
Ich denke ja das der Router den Port 1194 nicht weiterleitet. Wie könnte ich das Testen?
Ich wollte die log des VPN-Servers überprüfen jedoch finde ich diese nicht, wahrscheinlich stelle ich mich da zu dumm an :/
Als dyndns Anbieter habe ich noip.com genommen und alles im Router eingetragen.

Wenn du auf deinem Router für Port 1194 auf deine Server-IP kein Port-Forwarding eingerichtet hast wird da auch ganz bestimmt nichts weitergeleitet.
Hast du ein Regel für die Portweiterleitung aktiviert?
 
Also wenn ich folgendes mache
Code:
tcpdump -i eth0 -n port 1194

Zeigt er mir das an wenn ich mich verbinden will
Code:
15:18:37.682765 IP 90.186.0.116.62925 > 192.168.1.6.1194: UDP, length 14
15:18:39.685804 IP 90.186.0.116.55285 > 192.168.1.6.1194: UDP, length 14
15:18:41.684261 IP 90.186.0.116.47547 > 192.168.1.6.1194: UDP, length 14
15:18:43.683507 IP 90.186.0.116.56791 > 192.168.1.6.1194: UDP, length 14
somitt leitet der Router die Anfragen ja weiter?

Ja ich habe im Router die Portweiterleitung aktiviert sowie den Port eingetragen.
http://www.directupload.net/file/d/4533/roe73sow_jpg.htm

Danke für eure Hilfe!!!
 
Somit leitet der Router die Anfragen ja weiter?

Yep. So ist es.

Jetzt kannst Du im Protokoll des OpenVPN-Serverprozesses nachschauen, ob da irgendwelche Fehlermeldungen sind, bzw. vorher erst einmal die Verbosity hochstellen, dass der OpenVPN etwas mehr Information protokolliert.(OpenVPN-Neustart nach Konfig-änderungen nicht vergessen).
 
also das gibt mir die log aus
Code:
Options error: --dh fails with '/etc/openvpn/easy-rsa/keys/dh1024.pem': No such file or directory
Options error: Please correct these errors.
Use --help for more information.

Jedoch habe ich ja
Code:
./build-dh
gemacht oder muss ich ./build-dh1024 eingeben ?

Edit: ok erledigt er hat dh2048 erstellt habe es in der config umgeändert :/ jetzt bekomme ich eine Verbindung.
Tausend Dank für eure Hilfe ! Danke Hellfire!!!
Ich teste erstmal weiter!

So also wenn ich jetzt aber meine dyndns eingebe lande ich ja auf meiner Router seite :/ wie gestalte ich es jetzt das ich nur auf die nextcloud seite komme ? Bzw. den nur den Nextcloud Dienst benutzen kann?
 
Zuletzt bearbeitet:
Die DynDNS-IP solltest Du nach dem Verbinden mit dem VPN nicht mehr brauchen. Du hast ja schliesslich wie empfohlen das lokale Netz auf den VPN-Client gepusht? (Ja? Hast Du das gemacht?

Mal grob geraten, dass das ungefähr so aussehen müsste:

Code:
push "route 192.168..... 255.255.255.0"

Mit der richtigen 192.168.... Adresse kommst Du dann auf das nextcloud.
 
Ja das versteh ich :D
Nur wie blocke ich die Verbindung auf die router seite. Weil wenn man die dyndns eingibt landet man auf der router seite.
 
Ja das versteh ich :D
Nur wie blocke ich die Verbindung auf die router seite. Weil wenn man die dyndns eingibt landet man auf der router seite.

Auch ohne VPN? Dann musst du die Erreichbarkeit des Router-Interfaces von extern auf dem Router abschalten. Sollte ein Einstellungspunkt irgendwo in der Router-Config sein.
 
ok alles Perfekt habe es hinbekommen.
noch eine frage :D
wenn ich einen Benutzer hinzugefügt habe. Und ich ein Verzeichnis habe was den Benutzer www-data gehört. Ich aber jetzt möchte das der neue benutzer auch darauf zugreifen kann. Wie stelle ich das an. Reicht es da per chmod 777 -r /xxx zu benutzen? Das würde dann ja jeden alle rechte geben oder
 
Die Frage wäre natürlich, von was für eine Art von Benutzer Du redest. Von einem nextcloud Benutzer oder einem Systembenutzer? Wenn es um einen nextcloud Benutzer geht, dann läuft das alles über den Webserver. Da braucht es keine Rechteanpassung.

Nur wenn es ein normaler Systembenutzer ist braucht es die Rechteanpassung:

Code:
 chmod 777 -r /xxx

Das ist vielleicht etwas über das Ziel hinausgeschossen. Damit gibt's Du wirklich jedem das Recht alles damit anzustellen. Mit Gruppen kann man das ganz gut regeln.

Mit chgrp setzt Du die Gruppe von einem Verzeichnis und mit usermod kannst Du dem Benutzer eine zusätzliche Gruppe zuweisen(Alternativ kann man /etc/group auch direkt editieren). Als Gruppe würde sich www-data anbieten, weil es vermutlich auch die primäre Gruppe des Benutzers ist, unter dem der Webserver läuft.
 
Ich bin ein Freund von Access Control Lists.

Google mal nach "setfacl", da solltest du einen ganzen Haufen Anleitungen bekommen wie du ACLs einrichtest.
Damit kann z.b. eingestellt werden, dass alle neuen Dateien in einem bestimmten Ordner automatisch einem bestimmten User und oder Gruppe gehören, ganz egal welcher User die Datei auch erstellt hat. Aber Vorsicht bei Samba-Shares, Samba spielt mit ACLs nicht wirklich zusammen.
 
Zurück
Oben