2 Apache Server in einem lokalen Netzwerk vom WAN gezielt erreichen möglich?
Ich habe in meinem Firmennetzwerk 2 Linux Rechner mit einem Apache. Im Router sind in der Firewall 2 Regeln die http Port 80 Anfragen jeweils an die beiden IP Adressen durchlassen. Je nachdem welche Regel zuerst in der Reihenfolge steht, antwortet der entsprechende Apache auf dem per IP bestimmten Rechner. Soweit ist das alles klar. Ich habe eine feste IP und per A Record verschiedene URLs die ich benutzen kann. z.b. infoweb.name-x.de und apache.name-x.de
Jetzt dachte ich mir per Virtual Hosts in den beiden Apaches jedem Rechner explizit per name based Vhost eine Ansprechmöglichkeit zu geben.
Das ganze hat nun einen Haken, wenn die http Anfrage mit keinem Namen übereinstimmt antwortet der Apache des ersten angesprochenen Rechners ja trotzdem immer mit dem ersten Eintrag eines Vhosts und somit hat der zweite Rechner ja gar keine Chance mehr zu antworten. Mal abgesehen davon weiß ich garnicht ob der Level One Router überhaupt die http Anfrage auch an die zweite interne IP Adresse schickt.
Wie ist so etwas lösbar? Kann man einen Apache dazu bringen nicht zu antworten wenn kein namebased Vhost gefunden wird?
Das gleiche Problem ergibt sich für mich beim Shell Zugriff per Putty übers WAN. Kann man bei SSH gezielt einzelne Rechner ansprechen? Ich habe beim googeln nur komplexe Tunnellösungen gefunden die ich nicht ganz verstanden habe. Ich schalte jetzt immer per Remote Desktop (Zugriff über RDP auf meinen SBS2008) und von dort über den Browser auf den Level One Router die FireWall Regel an auf welchen Rechner ich möchte. Das muss doch einfacher gehen?
Oder liege ich da grundsätzlich falsch?
Jetzt dachte ich mir per Virtual Hosts in den beiden Apaches jedem Rechner explizit per name based Vhost eine Ansprechmöglichkeit zu geben.
Das ganze hat nun einen Haken, wenn die http Anfrage mit keinem Namen übereinstimmt antwortet der Apache des ersten angesprochenen Rechners ja trotzdem immer mit dem ersten Eintrag eines Vhosts und somit hat der zweite Rechner ja gar keine Chance mehr zu antworten. Mal abgesehen davon weiß ich garnicht ob der Level One Router überhaupt die http Anfrage auch an die zweite interne IP Adresse schickt.
Wie ist so etwas lösbar? Kann man einen Apache dazu bringen nicht zu antworten wenn kein namebased Vhost gefunden wird?
Das gleiche Problem ergibt sich für mich beim Shell Zugriff per Putty übers WAN. Kann man bei SSH gezielt einzelne Rechner ansprechen? Ich habe beim googeln nur komplexe Tunnellösungen gefunden die ich nicht ganz verstanden habe. Ich schalte jetzt immer per Remote Desktop (Zugriff über RDP auf meinen SBS2008) und von dort über den Browser auf den Level One Router die FireWall Regel an auf welchen Rechner ich möchte. Das muss doch einfacher gehen?
Oder liege ich da grundsätzlich falsch?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148555
Url: https://administrator.de/contentid/148555
Ausgedruckt am: 16.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Ja natürlich geht es einfacherr ! Was du beschreibst ist ein klassisches Dilemma indem man bei Port Forwardig steckt wenn man nur eine einzige Provider IP Adresse hat ! Ist allgemein bekannt und kennt jeder Netzwerkadmin eigentlich schon aus der Grundschule, 1. Klasse....
Die Port Forwarding Regel greift logischerweise ja nur für einen einzigen TCP/UDP Port den man an eine einzige IP Adresse im lokalen LAN forwarden kann !! Mehr geht nach den Regeln der Logik ja auch nicht !
Somit ist deine Frage von oben schon beantwortet. Der Router kann niemals einen dedizierten TCP/UDP Port an mehrere IP Adressen forwarden ! Wie auch ?? Denn woher soll er denn auch wissen welches Paket denn an welche IP gehen soll. Er kann sie nur anhand des Applikationsports unterscheiden, mehr Daten "sieht" er gar nicht. Deshalb gilt immer: Ein Port auf eine IP..Ende !
Lösen tut man das mit Port Translation !
Du forwardest z.B.
Eingehend TCP 80 --> Forwarding auf Server IP 1
Eingehend TCP 8080 --> Forwarding auf Server IP 2
Wenn du also http://<ip_adresse>:8080 eingibst landest du auf Server 2
Analog geht es mit SSH
Eingehend TCP 22 --> Forwarding auf Server IP 1
Eingehend TCP 53022 --> Forwarding auf Server IP 2
Wenn du also remote dem SSH Client wie z.B. Putty oder TeraTerm dann den Port 53022 mitgibst landest du per SSH auf Server 2.
Analog gilt das so für alle Anwendungsports.
Du siehst aber schon: Wenn du mehrere Rechner mit mehreren Applikationen (Ports) im lokalen Netzwerk erreichen willst wird dieses Spielchen schnell unsinnig da es nicht skaliert und du dir zig "exotische" Ports merken musst für die Zielrechner.
Mal ganz abgesehen davon das deine Firewall immer löchriger wird die dich eigentlich schützen soll...also zusätzlich noch ein erheblich steigendes Sicherheitsproblem !!
Um das einfacher zu behandeln gibt es das VPN !! Damit kann man dann ganz auf das Port Weiterleitungs/Translation Gefrickel verzichten.
Damit wählst du dich dann mit einem remoten Client einmal im (VPN) Router ein und und tunnelst alle deine Daten ins lokale Netz über einen verschlüsselten VPN Tunnel.
Der remote Client verhält sich dabei so als ob er ein lokaler Rechner im lokalen Netz wäre.
Kein Gefrickel mehr mit Port Forwarding, sichere Datenübertragung, skalierbar !
So macht man sowas einfach und technisch up to date !
Anregungen dazu findest du hier:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
VPN Einrichtung (PPTP) mit DSL Routern und DD-WRT Firmware
VPNs einrichten mit PPTP
VPNs mit DD-WRT, pFsense oder OPNsense auf Basis von PPTP
IPsec VPNs einrichten mit Cisco, Mikrotik, pfSense Firewall, FritzBox, Smartphone sowie Shrew Client Software
Such dir das schönste aus !
Die Port Forwarding Regel greift logischerweise ja nur für einen einzigen TCP/UDP Port den man an eine einzige IP Adresse im lokalen LAN forwarden kann !! Mehr geht nach den Regeln der Logik ja auch nicht !
Somit ist deine Frage von oben schon beantwortet. Der Router kann niemals einen dedizierten TCP/UDP Port an mehrere IP Adressen forwarden ! Wie auch ?? Denn woher soll er denn auch wissen welches Paket denn an welche IP gehen soll. Er kann sie nur anhand des Applikationsports unterscheiden, mehr Daten "sieht" er gar nicht. Deshalb gilt immer: Ein Port auf eine IP..Ende !
Lösen tut man das mit Port Translation !
Du forwardest z.B.
Eingehend TCP 80 --> Forwarding auf Server IP 1
Eingehend TCP 8080 --> Forwarding auf Server IP 2
Wenn du also http://<ip_adresse>:8080 eingibst landest du auf Server 2
Analog geht es mit SSH
Eingehend TCP 22 --> Forwarding auf Server IP 1
Eingehend TCP 53022 --> Forwarding auf Server IP 2
Wenn du also remote dem SSH Client wie z.B. Putty oder TeraTerm dann den Port 53022 mitgibst landest du per SSH auf Server 2.
Analog gilt das so für alle Anwendungsports.
Du siehst aber schon: Wenn du mehrere Rechner mit mehreren Applikationen (Ports) im lokalen Netzwerk erreichen willst wird dieses Spielchen schnell unsinnig da es nicht skaliert und du dir zig "exotische" Ports merken musst für die Zielrechner.
Mal ganz abgesehen davon das deine Firewall immer löchriger wird die dich eigentlich schützen soll...also zusätzlich noch ein erheblich steigendes Sicherheitsproblem !!
Um das einfacher zu behandeln gibt es das VPN !! Damit kann man dann ganz auf das Port Weiterleitungs/Translation Gefrickel verzichten.
Damit wählst du dich dann mit einem remoten Client einmal im (VPN) Router ein und und tunnelst alle deine Daten ins lokale Netz über einen verschlüsselten VPN Tunnel.
Der remote Client verhält sich dabei so als ob er ein lokaler Rechner im lokalen Netz wäre.
Kein Gefrickel mehr mit Port Forwarding, sichere Datenübertragung, skalierbar !
So macht man sowas einfach und technisch up to date !
Anregungen dazu findest du hier:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
VPN Einrichtung (PPTP) mit DSL Routern und DD-WRT Firmware
VPNs einrichten mit PPTP
VPNs mit DD-WRT, pFsense oder OPNsense auf Basis von PPTP
IPsec VPNs einrichten mit Cisco, Mikrotik, pfSense Firewall, FritzBox, Smartphone sowie Shrew Client Software
Such dir das schönste aus !
Nicht denken sondern "nachdenken" !! Der Router kann nur auf den Port sehen sonst nichts. Sowas wie "...einen eindeutigen Servernamen" ist Utopie ! Gibt es A nicht und B könnte der Router es auch gar nicht auswerten. Er "sieht" nur die Port Nummer, mehr nicht ! Deshalb hast du auch nix dazu gefunden ! Vergiss das also !
Große Firmen lösen sowas immer mit VPNs oder sie bekommen vom Provider mit dem Internet Account ein kleines öffentliches Subnetz mit mehreren öffentlichen IPs. Dann wird im Firmen Router mit 1:1 statischem NAT die öffentliche IP komplett auf eine interne IP übersetzt. Fertisch ! Ist ganz einfach...nur etwas teuerer
Wenns das denn war bitte
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !
Große Firmen lösen sowas immer mit VPNs oder sie bekommen vom Provider mit dem Internet Account ein kleines öffentliches Subnetz mit mehreren öffentlichen IPs. Dann wird im Firmen Router mit 1:1 statischem NAT die öffentliche IP komplett auf eine interne IP übersetzt. Fertisch ! Ist ganz einfach...nur etwas teuerer
Wenns das denn war bitte
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !
Sowas geht nur über Reverse Proxies wie pound,varnish oder Apaches mod_proxy
Es gibt auch Router die sowas über einen Layer 7 Filter können, aber das produziert unnötig viel Last und dafür ist ein Router nicht gedacht.
Mit SSH und allen anderen Protokollen geht es gar nicht, bzw. wie aqui beschrieben hat.
Es gibt auch Router die sowas über einen Layer 7 Filter können, aber das produziert unnötig viel Last und dafür ist ein Router nicht gedacht.
Mit SSH und allen anderen Protokollen geht es gar nicht, bzw. wie aqui beschrieben hat.