micson
Goto Top

NextCloud-Zugriff mit pfSense

Hallo,

ich habe eine pfSense im Einsatz, welche hinter einem Router betrieben wird.
Habe jetzt auf einem Raspberry Pi NextCloud installiert. Im Heimnetzwerk kann problemlos darauf zugegriffen werden, für den Zugriff von außerhalb müssen noch einige Vorkehrungen getroffen werden: Dynamic DNS und Port-Weiterleitung.
Ich habe mir beim Dienst spDYN eine Adresse erzeugt und die Daten bei pfSense unter "Services" - "Dynamic DNS" eingetragen. Unter "Firewall" - "NAT" - "Port Forward" habe ich die Ports 80 und 443 eingetragen. Die Ports habe ich auch bei den Firewall-Regeln eingetragen. Habe ich noch etwas übersehen? Müssen die Einstellungen (DDNS und Ports) (auch) am Router vorgenommen werden?
Vorab bereits vielen Dank für eure Ratschläge.

Gruß,
Michael

Content-ID: 422622

Url: https://administrator.de/forum/nextcloud-zugriff-mit-pfsense-422622.html

Ausgedruckt am: 28.12.2024 um 07:12 Uhr

Pjordorf
Pjordorf 27.02.2019 aktualisiert um 18:49:22 Uhr
Goto Top
Hallo,

Zitat von @micson:
Müssen die Einstellungen (DDNS und Ports) (auch) am Router vorgenommen werden?
Am Router müssen sich zwingend die Ports auch befinden und auf deiner PFSense WAN zeigen. Dein DDNS wird sich aber nicht erneut aktualisieren da sich dessen WAN IP (eine Private IP zwischen deiner PFSense und dein Internet Router?) ja nicht ändern wird und auch nicht ändern soll. Je nach Intelligenz deines DDNS Clients kann der schon irgendwo anders als auf dein Internet Router sich befinden, sofern der die änderung deiner Internet WAN IP mitbekommt, ansonsten muss der auf den Internet Router drauf da nur er die Änderung deiner WAN IP mitbekommt. Und wenn mehrere Router hintereinander sind (Router Kaskade) muss natürlich auf jeden Router innerhalb der Kette ein Individuelles Portfowarding eingerichtet werden. Stell dir vor da komnmt ein Paket für deine PFSense an dein Internet Router an vom Internet, und es gibt dort kein Portforwarding oder sonst eine Regel, die läuft dann gegen die Wand und zerbröselt. Ein bischen Nachdenken und evtl. auf ein Blatt Paier aufmalen hilft oft.

Gruß,
Peter
it-fraggle
it-fraggle 27.02.2019 aktualisiert um 20:24:52 Uhr
Goto Top
Das Hardening hast du auch gemacht?
Mind. TLS 1.2 mit entsprechend guten Ciphern?
Port 80 umgeleitet auf 443?
https://scan.nextcloud.com/ mal ausprobiert was da rauskommt?
Mod_rewrite nicht vergessen, da man sonst Subdirs aufrufen kann und das was so drin ist.
Mehr fällt mir adhoc nicht ein. Gibt aber sicherlich noch einiges, was man machen kann.
aqui
aqui 27.02.2019, aktualisiert am 28.02.2019 um 08:39:26 Uhr
Goto Top
Du betreibst ja eine Router Kaskade mit der pfSense wie hier beschrieben:
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
Deshalb ist es doch völlig sinnfrei das DynDNS auf der pfSense einzurichten !
Logisch, denn der WAN Port hat doch eine private IP Adresse des Koppelnetzes auf den davorliegenden Router und private RFC 1918 IP Adressen werden bekanntlich im Internet nicht geroutet. Es macht deshalb wenig Sinn das der DynDNS Prozess diese IP als öffentliche Zugangs IP meldet an den DynDNS Dienst. Leuchtet dir sicher auch ein..?!

Der davor kaskadierte Router macht ja das PPPoE Dialin beim Provider und bekommt deshalb die öffentliche IP die später auch die Ziel IP ist für den Zugriff auf die NextCloud. Hier solltest du also das DynDNS einrichten !
Dann musst du beim Router ein Port Forwarding von TCP 80 und TCP 443 auf die WAN Port IP der pfSense machen.
Dort wiederum ein Port Forwarding von den Ports auf die lokale IP des NetxtCloud Hosts.
Hier siehst du den Nachteil von Kaskaden face-sad
Besser wäre es den Router durch ein NUR Modem zu ersetzen so das die pfSense direkt die öffentliche IP hält !

Als Kompromiss solltest du überlegen ob du den NextCloud RasPi nicht besser in das Koppelnetz hängst.
Das hat 2 große Vorteile:
  • Da du mit Port Forwarding arbeitest kommen Angreifer nie in dein wirklich internes Netz und bleiben dann in der "Quasi DMZ"
  • Du sparst dir die Frickelei mit 2maligem Port Forwarding und musst kein Loch in die pfSense in dein Allerheiligstes bohren.
  • Zugreifen aus dem internen LAN hinter der pfSense auf die NextCloud klappt so auch !
Ist die etwas bessere Lösung und sähe so aus wenn du sie umsetzt:

nc
micson
micson 02.03.2019 um 19:11:57 Uhr
Goto Top
Vielen Dank für die Erklärung.
Habe es für einen Testbetrieb nach deinem Schema umgesetzt: DynDNS und Port Forwarding auf Router eingerichtet.
Die NextCloud ist im Koppelnetz eingebunden und von außerhalb als auch vom Heimnetz nach der pfSense erreichbar.

Problem:
Wenn ich NextCloud am Smartphone/Tablet via DynDNS eingerichtet habe, habe ich Mobilnetz aus problemlos Zugriff auf die Nextcloud. Befinde ich mich jedoch zu Hause und die Clients haben sich mit dem WLAN verbunden, ist (verständlicherweise) keine automatische Verbindung in die Cloud möglich. Hast du hier eine Lösung für mich parat? Ein Port Forwarding oder den DynDNS auf dem Interface der pfSense einrichten hilft mir hier vermutlich auch nicht weiter, oder?
aqui
aqui 02.03.2019 aktualisiert um 19:59:06 Uhr
Goto Top
Das liegt an deinem Internet Router ! Der supportet vermutlich kein Hairpin NAT ?!
Falls du nicht weisst was das ist:
https://wiki.mikrotik.com/wiki/Hairpin_NAT

Die pfSense hat ein entsprechends Setting dafür in den Advanced Setups unter Firewall&NAT was man aber aktivieren muss.
nat
Es gibt desweiteren eine Menge an Lösungsbeschreibungen dafür:
https://forum.netgate.com/topic/93568/do-pfsense-support-hairpinning/2
https://forum.netgate.com/topic/110031/nat-hairpining-reflection-loopbac ...
https://forum.netgate.com/topic/88439/solved-nat-reflection-troubles/2
Klappt zwar ist aber etwas unsauber. Besser das auch in den Foren genannte Slit DNS.
Die Firewall ist aber nur die halbe Miete. Dein Router muss da auch mitspielen.
Da du aber mit dem Server "auf halber Strecke" bist könnte das schon die Lösung sein.
Versuch macht klug face-wink
Alternative ist zuhause statt des Namens die nackte (lokale) IP zu verwenden. Das geht immer allerdings hat man dann immer 2 Profile was auch nicht toll ist.
micson
micson 22.03.2019 um 19:48:21 Uhr
Goto Top
Sorry, dass ich mich erst jetzt melde.
Danke aqui für deine ganzen Lösungsbeschreibungen. Ich konnte damit (DNS Resolver: Host Overwrites, Domain Overwrites) eine Verbindung zu NextCloud herstellen, wenngleich die Verbindungen nur recht sporatisch funktionierten - weder vom Heimnetzwerk noch von außen. Funktionierte mal eine Stunde oder auch zwei, dann konnte der Raspi nicht erreicht werden. Konnte keine Erklärung finden. Meiner Meinung ist entweder eine Verbindung da - oder nicht. Muss aber mit dem Router zusammenhängen.
Zwischenzeitlich fand aber ein Routertausch statt. Und hier konnte ich in den Sicherheitseinstellungen unter DMZ "Hairpinning" finden und aktivieren. Als interne IP-Adresse habe ich die des Routers angegeben.

hairpinning

Seitdem funktioniert die Verbindung zur NextCloud sowohl im internen als auch externen Netz ohne Probleme. Vielen Dank für deine Tipps.

Hier mein derzeitiger Aufbau:
uebersicht_neu

Es sind jetzt noch ein paar (Verständnis-)Fragen aufgetaucht:

1. Die Einstellung "Hairpinning" ist beim Router unter DMZ zu finden. Der Haken bei DMZ ist nicht gesetzt. Doch ist das nicht bereits eine DMZ? Auf dem Router ist eine Firewall aktiviert, um Eindringlinge aus dem Internet abzublocken. Danach kommt die pfSense mit einer Firewall. Und dazwischen ist am Port des Routers der Raspi angeschlossen. Macht es für mich in dieser Konstellation Sinn DMZ am Router zu aktivieren?

2. Angenommen ich möchte noch ein NAS im Heimnetzwerk von außen erreichbar machen. Ich erstelle einen zusätzlichen Hostname auf z.B. no-ip, füge diesen beim Router hinzu und richte die Portweiterleitung ein.
Testweise probiert:
portmapping
Jetzt habe ich natürlich einen Konflikt mit den Ports, welche Ports müsste ich in diesem Fall verwenden?

3. VPN via IPsec
Du hast zu dieser Thematik eine tolle Anleitung geschrieben (IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten). Auch hier benötige ich einen eigenen Hostname (z.B. meinecloud.ddns.net), welchen ich im "General Setup" eintrage, oder? DNS-Adresse übernehme ich vom Router.? Diesen Hostname (Domain) verwende ich dann auch beim Einrichten von VPN nach deiner Anleitung.
Welche Ports verwende ich beim Port-Forwarding?

Vermutlich lassen sich diese Punkte relativ einfach erklären - ich stehe hier leider etwas auf der Leitung.
aqui
aqui 23.03.2019 aktualisiert um 12:24:55 Uhr
Goto Top
Zu Frage 1
Eine DMZ ist ein eigenes Netzwerk Segment was durch eine Firewall abgetrennt ist. An deinem Router oben gibt es keine solche DMZ die eine ist im Sinne der Definition.
Das Kaskaden Konzept mit doppeltem NAT erzeugt sowas wie die "DMZ des kleinen Mannes". Siehe dazu auch hier:
Kopplung von 2 Routern am DSL Port
Das hat aber natürlich mit einer DMZ in dem Sinne nichts zu tun, denn der Traffic ist dort ja niemals separiert was er sein müsste.
Das Hairpinning Prinzip und Problem ist hier recht gut erklärt:
https://wiki.mikrotik.com/wiki/Hairpin_NAT
Zu Frage 2:
Ich erstelle einen zusätzlichen Hostname auf z.B. no-ip
Nein, das wäre überflüssiger Blödsinn ! Wozu sollte das gut sein ? Du hast ja schon einen Hostnamen der die dynmaische IP des Routers auf einen Hostnamen mappt. Was sollte denn der Unsinn da noch einen 2ten drauf zu mappen ?? Ist doch sinnfrei, denn auch ein 2ter Hostnamen löst dir ja das TCP und UDP Portproblem nicht. Vergiss das also gleich... Port Translation ist das Zauberwort !
Du schreibst ja nicht mit WELCHEM Protokoll du auf das NAS willst ?? Ein NAS kann ja mehrere Web, FTP, SMB/CIFS, NFS, ISCSI usw. usw.
Wenn du Web Zugang haben willst machst einfach Port Translation. Du mappst z.B. alles was mit TCP 8080 reinkommt auf intern 443. (80 und 443 von extern macht ja schon deine NC)
Dann musst du halt nur https://<no-ip-hostname>:8080 eingeben um auf den NAS zuzugreifen und fertig ist der Lack.
Ist so oder so besser, denn so langes nicht jeder Port Scanner und Skript Kiddie gleich auf deinem NAS wenn von außen angegriffen wird. Nimmst du einen der Ephemeral Ports die von der IANA dafür empfohlen sind z.B. TCP 58080 ist die Port Verschleierung noch sicherer.
Zu Frage 3:
VPN ist natürlich die beste Wahl, denn du willst vermutlich nicht deine NAS Daten direkt im Internet exponieren. Für sowas ist Port Forwarding immer ein NoGo wenn man entsprechend sicher sein will.
Auch hier benötige ich einen eigenen Hostname
Nein ! Wozu ?? Gleicher Unsinn wie oben.
Im Port Forwarding UDP 500, UDP 4500 und ESP an die pfSense forwarden, das wars !!
Siehe dazu auch hier:
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
Du hattest das Tutorial doch gelesen ?? Oder etwas doch nicht ?!
Vermutlich lassen sich diese Punkte relativ einfach erklären
So ist es ! face-wink Siehe oben...