aykaydo
Goto Top

Port Forwarding: Router (DIR-100) hinter DSL-Modem (FritzBox) richtig konfigurieren?!

Hallo zusammen.

Mein Ziel: Einen Web Server (Apache) im Internet sichtbar machen.
Mein Problem: Es klappt zwar wunderbar, wenn ich den PC direkt mit der DSL-Box verbinde (FritzBox 7312). Aber nicht, wenn ich zwischen PC und DSL-Box einen Router setze (D-Link DIR-100, Firmware 1.14).

Der Router funktioniert im regulären Betrieb ohne Probleme -- bedeutet: ich komme mit Router + DSL-Box ins Internet.

Wie gesagt, lasse ich den Router weg, ist der Web Server sichtbar! Ich mußte nur den Port in der DSL-Box eintragen und bekomme über die externe IP + Port brav meine HTML-Seiten geliefert. Der Apache lauscht auf Port 4280. Das Port Forwarding der DSL-Box, zeigt von öffentlich EXTERN-IP:4281 auf privat 192.168.178.41:4280 (Apache). (Spaßeshalber habe ich 2 unterschiedliche Port-Nummern gewählt.) Sobald ich meine aktuelle externe IP herausgefunden habe, kann ich also den Web-Server per <EXTERNE-IP>:4281 im Internet sehen. Schön.

Schließe ich aber den Router zwischen DSL-Box und PC, geht es nicht mehr. Diesmal zeigt die DSL-Box nicht auf den PC, sondern auf den Router (DIR-100) und dessen öffentlichen Port 4284. Ich muß natürlich auch im Router ein Port Forwarding eintragen. Der DIR-100 hat als öffentlichen Port 4284 eingetragen, der auf den Apache verweist: diesmal 192.168.0.100:4280.

Rufe ich jetzt die externe IP + 4281 auf, kommt die Anfrage lange nicht zurück und bricht irgendwann ab. (Übrigens, versuche ich es mit einem falschen Port, z.Bsp. 1234, kommt die Anfrage *sofort* zurück - natürlich ergebnislos.)

Ich bin mit meinem bescheidenen Latein am Ende. Alles scheint richtig eingetragen zu sein. Ohne Router funzt es. Die Konfiguration deckt sich mit mindestens 2 oder 3 Beschreibungen zum DIR-100 im Netz, die ich gefunden habe.

Linux-Konfiguration kann ich ausschließen: Ohne Router geht es ja. Um sicher zu gehen, habe ich die Linux-Firewall (ufw) komplett abgeschaltet.

Wo ist mein Denkfehler?, frage ich jetzt die Profis.

Untertänigst,
ein Suchender

Content-Key: 270845

Url: https://administrator.de/contentid/270845

Printed on: April 27, 2024 at 05:04 o'clock

Member: aqui
aqui May 01, 2015 at 11:00:47 (UTC)
Goto Top
Erstmal vorab: Die FritzBox ist KEIN Modem sondern ein Router und dein Konstrukt eine Router Kaskade wie hier in der Alternative 2 beschrieben:
Kopplung von 2 Routern am DSL Port

Ein Modem ist ein schlichter passiver Medeinwandler der NICHT am IP Forwarding teilnimmt !
Aus technischer Sicht es es ein erheblicher Unterschied ob du von einem Modem oder Router hier redest. Leider wird das oft laienhaft falsch gemacht hier was dann zu entsprechenden Missverständnissen und Frust führt face-sad

Da du in der Router Kaskade zweimal NAT machst also doppelte IP Adress Translation muss du logischerweise auch 2mal ! ein Port Forwarding einrichten.
DynDNS gehört immer auf den ersten Router sofern du damit arbeitest ?!
Um einen Webserver von remote zu erreichen musst du ausserdem folgenden wichtigen Punkt beachten:
Beide Router haben selber einen Webserver an Bord, logisch der nämlich der das Setup GUI realisiert.
Der Router muss also irgendwie wissen oder gesagt bekommen unter welchen Umständen diese TCP 80 Pakete für ihn selber sind (Setup GUI) oder er diese weiterreichen soll (interner Server).
Das kann er logischerweise so nicht sehen und dir von der Stirn ablesen und eine Kristallkugel hat er auch nicht !

In der regel geht es so das man den Webzugriff auf dem Router am WAN Port abschaltet !!
Generell sollte man das IMMER machen aus Sicherheitsgründen, denn wer will das chinesische, russische oder sonstwelche Hacker einem die FB "verbiegen" von extern.
Dem Router wird so klar das TCP 80 Pakete eingehend am WAN Port somit NICHT für ihn selber sind und er führt dann die Port Weiterleitung aus die ihm für TCP 80 konfiguriert ist.
Ganz WICHTIG ist das die kaskadierte D-Link Gurke an ihrem WAN / Internetport auf Static IP gestellt ist und die FB IP und den DNS in der FB dort statisch konfiguriert bekommt.
Logisch, denn ändert sich dieser Port bei DHCP mal geht das Port Forwarding an der FB ins Nirwana !
Fazit: Folgende ToDos sind zu machen:
  • 1.) TCP 80 / HTTP Zugriff auf BEIDEN Routern am WAN Port verbieten !
  • 2.) Am ersten Router (FB) Port Weiterleitung Eingehend TCP 80 auf Ausgehend >WAN IP D-Link Port TCP 80 konfigurieren !
  • 3.) Am zweiten Router am WAN Port statische IP, Gateway und DNS setzen, mit der FB kaskadieren und auf Funktion testen.
  • 4.) Lokales LAN der D-Link Gurke muss unterschiedlich zum FB lokalen LAN IP Netz sein !
  • 5.) jetzt 2tes Port Forwarding auf dem D-Link Eingehend TCP 80 auf Ausgehend >Lokale IP Server Port TCP 80 einrichten
  • 6.) Sinnvollerweise MUSS der Server auch eine statische IP, Gateway, DNS konfiguriert haben die außerhalb der D-Link DHCP Range liegt. Klar auch hier gilt die im PFW konfigurierte Ziel IP die sich NICHT ändern darf !
  • 7.) Färdsch !

Wenns nicht geht: Nimm dir IMMER einen Paket Sniffer wie den Wireshark und checke ob TCP 80 Pakete von außen geforwardet werden !
Damit weisst du dann wasserdicht ob die Router das richtig machen.
Das kannst du sowohl im Transfernetz zw. FB und D-Link messen als auch direkt am Server.
Wenn keine TCP 80 Pakete ankommen klappt irgendwo in einem der beiden Router das Port Weiterleiten logischerweise nicht !

Nochwas: Bedenke auch das du dieses Szenario NICHT von intern testen kannst. Alle beide Billigrouter supporten KEIN NAT Hairpinning !!
Folglich MUSS der Zugriff von remote auf den Server wirklich immer remote erfolgen und niemals aus dem internen Netz !
Ziel IP für den HTTP Zugriff von remote ist immer die aktuelle FB IP am DSL Providerport !
Welche du aktuell hast kannst du mit Surfen auf die Seite http://www.wieistmeineip.de herausfinden !
Für den Zugriff gibst du dann folglich ein http://<FB_dsl_ip> . Bei DynDNS dann entsprechend den Hostnamen.

Und nochwas zur Sicherheit:
Mit sowas bohrst du ein Loch in deine schützende Firewall, vergiss das nie. Das auch noch auf einem populären Port TCP 80 den jeder Portscanner per default testet.
Zudem kann jeder im Internet den unverschlüsstelten Verkehr zu deinem Server mitlesen wenn du nicht HTTPS TCP 443 verwendest.
Wenn das nur für bestimmte Leute ist dann solltest du über Port Translation nachdenken, das du den Eingehenden Port auf z.B. 8080 oder 58080 umsetzt. Damit scheitern dann wenigstens Port Scan Angriffe durch diese Verschleierung.
Also Ziel IP von remote musst du dann aber immer den Port mitgeben ala http://<FB_dsl_ip:8080>

Noch sicherer ist natürlich ein VPN was die FB dir ja kostenlos zur Verfügung stellt.
Ausnahme natürlich du willst deinen Server für jedermann erreichbar machen ?!
Member: AyKayDo
AyKayDo May 03, 2015 at 09:41:22 (UTC)
Goto Top
Vielen Dank, aqui !

Was bei mir fehlte, war das statische Setzen der IP des 2. Routers (D-LINK).

(In der FritzBox 7312 zu finden unter: Heimnetz -> Netzwerk -> Dann "Bearbeiten" beim angehängten Router -> Haken setzen bei: "Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.")