Portweiterleitung Fritzbox?

TheQ86  27.10.2021, 23:05

Was passiert, wenn du mit der Maus über das Ausrufezeichen in der FritzBox gehst? Das wird doch nen Grund haben, dass das da steht

codinghelp 
Fragesteller
 27.10.2021, 23:06

Ja, Port 80 war nicht mehr frei ;) hab jetzt beide (IPv4 und IPv6) einfach auf 63291 gestellt

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bei welchem Internetprovider bist Du Kunde? Möglicherweise hast Du einen DS-Lite-Anschluss. Welche öffentliche IP-Adresse hast Du? Liegt sie im Bereich 100.64.0.0 - 100.127.255.254?

Zudem gibt mir das Warndreieck neben dem externen Port zu denken. Hast Du mal einen anderen Port ausprobiert?

codinghelp 
Fragesteller
 27.10.2021, 23:24

1&1, IP: 89.247.41.174

Das Ausrufezeichen war nur, weil Port 80 schon belegt ist. Hab jetzt beide auf 63291 gelegt

0
franzhartwig  27.10.2021, 23:50
@codinghelp

Ich erhalte hier eine Umleitung auf Port 5000:

curl -v 89.247.41.174
*  Trying 89.247.41.174:80...
* TCP_NODELAY set
* Connected to 89.247.41.174 (89.247.41.174) port 80 (#0)
> GET / HTTP/1.1
> Host: 89.247.41.174
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Moved Temporarily
< Server: nginx
< Date: Wed, 27 Oct 2021 21:45:34 GMT
< Content-Type: text/html
< Content-Length: 138
< Connection: keep-alive
< Keep-Alive: timeout=20
< Location: http://89.247.41.174:5000/
< 
<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

Dein Provider ist Versatel. Ich glaube, Versatel macht auch DS-Lite. Deshalb wird das mit IPv4 nichts. Probiere die Portweiterleitung mal mit IPv6 aus.

1
codinghelp 
Fragesteller
 27.10.2021, 23:56
@franzhartwig

Hier hat so einiges nicht funktioniert :D
Also der ursprüngliche Fehler war, dass der Port fälschlicherweise auf 80 weitergeleitet wurde, nginx aber 63291 erwartet hat.

Man kann jetzt auch jeden fall drauf, und die API verwenden. Gerade wurde ich da immer noch auf 5001 weitergeleitet und da liegt unser NAS...

Lag an der Verwendung von https://docs.microsoft.com/de-de/aspnet/core/security/enforcing-ssl?view=aspnetcore-5.0&tabs=visual-studio#usehttpsredirection warum auch immer...

Andere Sache: Hast du ne Idee warum das Zertifikat laut Browser ungültig ist?

https://89.247.41.174/swagger/index.html

0
franzhartwig  28.10.2021, 08:44
@codinghelp

Derzeit ist die Adresse nicht erreichbar, wahrscheinlich hat sich Deine IP-Adresse geändert. Wurde das Zertifikat auf die IP-Adresse ausgestellt bzw. steht die IP-Adresse als SAN (sowohl als IP- als auch DNS-Eintrag) im Zertifikat? Der aufgerufene Name muss mit einem Namen im Zertifikat übereinstimmen.

1
codinghelp 
Fragesteller
 28.10.2021, 11:30
@franzhartwig

Also das Zertifikat hab ich auf xxx.my-router.de ausstellen lassen, weil sich ja meine IP eben täglich ändert.

Geht das also nicht?

0
franzhartwig  28.10.2021, 12:51
@codinghelp

Nein. So funktioniert das nicht. Stelle Dir vor, ich spreche Dich mit codinghelp an und verlange von Dir einen Ausweis. Nun legst Du mir Deinen Ausweis vor, in dem Dein realer Name steht. Wie soll ich das prüfen? Genau so ist es hier. Du rufst die IP-Adresse auf, der Server meldet sich mit xxx.my-router.de. Das kann nicht funktionieren.

Ich habe das so gelöst: Ich habe ein Konto bei einem DynDNS-Provider. Demzufolge habe ich dort auch einen Namen, z. B. fh.example.com. Bei einem Provider meiner Wahl habe ich eine Domain registriert, fh.test. In den DNS-Einstellungen bei meiner Domain habe ich nun einen Alias-Namen eingetragen. Offiziell nennt sich das CNAME. Im DNS steht also: cloud.fh.test -> CNAME fh.example.com

Das Zertifikat für meinen Server habe ich auf cloud.fh.test ausgestellt. Wenn nun jemand cloud.fh.test aufruft, macht der Browser eine DNS-Anfrage. Er erfährt, dass cloud.fh.test identisch ist mit fh.example.com. Also fragt er nach fh.example.com und erfährt meine gerade aktuelle IP-Adresse.

Weil der Browser cloud.fh.test aufgerufen hat, passt das Zertifikat.

1
codinghelp 
Fragesteller
 28.10.2021, 13:18
@franzhartwig

Ich hab jetzt noch ein bisschen rumprobiert und folgendes festgestellt:

Wenn ich aus dem internen Netz auf die Seite gehe, wird mir das Zertifikat als ungültig markiert, via mobile Daten vom Handy aus passt es.

https://89.247.40.91/swagger/index.html

Für dich sollte es also auch keine Probleme geben, oder?

Ein weiterer Nebeneffekt: Von extern funktioniert ebenfalls https://xxx.my-router.de/swagger/index.html, aus dem internen Netz kommt eine Fritzboxmeldung, dass die angegebene URL nicht gefunden wurde... Schon komisch das ganze.

Meinst du, da ist was in der Fritzbox falsch eingestellt?

0
franzhartwig  28.10.2021, 14:38
@codinghelp
Wenn ich aus dem internen Netz auf die Seite gehe, wird mir das Zertifikat als ungültig markiert, via mobile Daten vom Handy aus passt es.

Wenn Du einmal auf "Weiter" klickst, speichert der Browser eine Ausnahme. Beim nächsten Aufruf gibt es keine Meldung mehr. In der Adresszeile sieht man aber eine Anmerkung dazu, je nach Browser mehr oder minder gut sichtbar.

Für dich sollte es also auch keine Probleme geben, oder?

Doch:

Chrome:

Dieser Server konnte nicht beweisen, dass er 89.247.40.91 ist. Sein Sicherheitszertifikat stammt von xxx.my-router.de. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der Ihre Verbindung abfängt.

Firefox:

Websites bestätigen ihre Identität mittels Zertifikaten. Firefox vertraut dieser Website nicht, weil das von der Website verwendete Zertifikat nicht für 89.247.40.91 gilt. Das Zertifikat ist nur gültig für mic71.my-router.de.

Fehlercode: SSL_ERROR_BAD_CERT_DOMAIN

Meinst du, da ist was in der Fritzbox falsch eingestellt?

Das könnte am Rebind-Schutz liegen. Die Funktion findest Du auf der Fritzbox unter Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> weitere Einstellungen (ganz unten). Dort trägst Du xxx.my-router.de ein. Dann müsste es funktionieren.

1
codinghelp 
Fragesteller
 28.10.2021, 14:48
@franzhartwig

Komisch... Hier hast du mal 2 Screenshots. Einmal mit Wlan und einmal mit mobilen Daten. Da wird nämlich am Handy das Zertifikat akzeptiert :O

https://ibb.co/8bZq20s

https://ibb.co/2Zxqqn7

Und die Rebind Einstellung hat leider nicht geholfen. Und danke für deine Hilfe :)

Aber wenns jetzt nicht klappt ists auch nicht so schlimm, die API kann ich auch ohne gültiges Zertifikat verwenden ^^

0
codinghelp 
Fragesteller
 28.10.2021, 14:54
@codinghelp

Edit: Es liegt offenbar daran, dass es einen unterschied macht, ob man direkt auf die IP geht oder via dynds domain drauf zugreift...

Also existiert eigentlich nur noch das Problem, dass es intern nicht darüber klappt

0
franzhartwig  28.10.2021, 14:57
@codinghelp

Zunächst einmal: Wenn ich den Server per IP-Adresse aufrufe, bekomme ich die beschriebenen Fehlermeldungen. Wenn ich ihn per Name aufrufe, ist alles in Ordnung.

Bei Deinem ersten Screenshot (8bZq20s) moniert der Browser, dass der Zertifizierungsstelle nicht vertraut wird. Das ist eigenartig, weil es ja über eine andere Internetverbindung beim selben Gerät mit demselben Browser kein Problem gibt. Das kann ich so auf die Entfernung nicht erklären. Was erzählt der Browser denn, wenn Du auf "Weitere Informationen" klickst?

1
franzhartwig  28.10.2021, 15:14
@codinghelp
nicht hilfreich.

In der Tat. Vielleicht kannst Du das mal mit einem "richtigen" Rechner machen. Die Browser von Desktop-Systemen sind da mitunter etwas deutlicher. Am besten gefallen mir bei solchen Dingen die Fehlermeldungen von Firefox.

1
codinghelp 
Fragesteller
 28.10.2021, 15:14
@franzhartwig

Die 3 Screenshots waren vom Dekstop, der ist ja im Netz :D

Ich hab hier grad kein Firefox, aber kann ich mal kurz installieren

0
codinghelp 
Fragesteller
 28.10.2021, 15:19
@franzhartwig

Siehe da - andere Meldung https://ibb.co/NK1RM5S

Dem Zertifikat wird nicht vertraut, weil es vom Aussteller selbst signiert wurde.
HTTP Strict Transport Security: false
HTTP Public Key Pinning: false
0
franzhartwig  28.10.2021, 16:43
@codinghelp

Jetzt müsste man sich das Zertifikat anschauen. Wenn es selbstsigniert ist, riecht das nach Fritzbox. Dafür spricht ja auch, dass Du im nächsten Schritt auf die Fritzbox geleitet wirst. Das bedeutet, dass Du im Heimnetz das Problem hast, dass der Weg von innen nach außen und wieder rein auf Deinen Server nicht funktioniert.

1
franzhartwig  28.10.2021, 23:28
@codinghelp

Im Moment noch nicht. Wie gesagt, hätte ich den Rebind-Schutz der Fritzbox vermutet. Aber zunächst musst Du ja mal verifizieren, ob sich da wirklich die Fritzbox meldet - also mal in das Zertifikat schauen.

0
Dafür gibts in der Fritzbox eine Domain, die auf die dynamische IP "zeigt": xxx. my-router.de

Das ist keine Fritz!Box-Adresse bzw. eine, die von AVM für die Fritzboxen bereit gestellt wird.

Im Prinzip noch schlimmer: Die Domain my-router.de hat gar keinen DNS-Eintrag und kann somit gar nicht funktionieren.

codinghelp 
Fragesteller
 27.10.2021, 23:15

Aber es funktioniert auch nicht, wenn ich einfach unsere IP eintrag, also z.B. http://89.247.41.174:63291/swagger/index.html ;)

0
mchawk777  27.10.2021, 23:17
@codinghelp

Dann hast Du den Port 63291 nicht auf den Raspi weiter geleitet.

1
codinghelp 
Fragesteller
 27.10.2021, 23:19
@mchawk777

Aber es ist doch so in der Fritzbox eingestellt? :O

0
mchawk777  27.10.2021, 23:22
@codinghelp

Dann gibt es noch die Möglichkeit, dass Du einen Webserver so konfiguriert hast, dass er nur Verbindungen aus dem eigenen Netzwerkes akzeptiert.

1
TheQ86  27.10.2021, 23:23
@codinghelp

Auf der FB ist der EXTERNE Port eingestellt. Da es ne HTTP Weiterleitung ist geht er aufm Pi wohl auf Port 80. Verwende mal nicht HTTP sondern "sonstiges" oder so, dann kannst du externen und internen port glaube ich separat einstellen

2
codinghelp 
Fragesteller
 27.10.2021, 23:27
@TheQ86

Du Genie, danke!

Lag tatsächlich daran, dass er die 63291 auf 80 weitergeleitet hat... Weil ich ursprünglich Port 80 wollte...

0
mchawk777  27.10.2021, 23:28
@TheQ86
Auf der FB ist der EXTERNE Port eingestellt. Da es ne HTTP Weiterleitung ist geht er aufm Pi wohl auf Port 80.

Grundsätzlich korrekte und gute Idee.
Aber schau Dir mal den Port der LAN-Adresse an.
Wenn codinghelp bei den Angaben nicht "geschlampt" hat, kann es Deine Vermutung streng genommen nicht sein.... es sei denn der Router leitet intern auf 80 um.... 🤔

1