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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 422622
Url: https://administrator.de/forum/nextcloud-zugriff-mit-pfsense-422622.html
Ausgedruckt am: 28.12.2024 um 07:12 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
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
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
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.
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.
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
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:
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
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 !
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.
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
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.
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.
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
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.
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:
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.
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 ?!
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 ! Siehe oben...