figment
Goto Top

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?

Content-ID: 148555

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

Ausgedruckt am: 16.11.2024 um 11:11 Uhr

aqui
aqui 07.08.2010, aktualisiert am 18.10.2012 um 18:43:04 Uhr
Goto Top
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 !
Figment
Figment 07.08.2010 um 21:38:15 Uhr
Goto Top
Vielen Dank, das hat das Problem umfangreich beantwortet. Hab ich mir schon gedacht. das das nur über entweder verschieden Ports oder aber VPN geht.

Für Putty ist das mit einem anderen Port sicherlich die einfachste Lösung, die Verbindungen lassen sich ja speichern. Ich muss dann sicherlich auf diesem Rechner in der Firewall den entsprechenden Port für SSH öffnen und dann sollte es gehen.
Die webseiten mit Ports zu versehen ist sicherlich eine blöde Idee, muß ich das dann bei jeder Seite machen? Also wenn ich auf einen Link in einer Seite klicke muss dann auch der Port mitgeschickt werden? Das ist ja überhaupt nicht machbar.

Die Sache mit den 2 Rechnern war eh nur in der Anfangsphase gedacht, ich will den einen eh abschalten und alles auf dem anderen mit mehreren Vhosts laufen lassen. War jetzt nur so eine Idee, weil der erste schon länger eingerichtet ist und ich vergleichen wollte, z.B. Tempo bei den Aufrufen. Der erste ist ein MacPro und der zweite ein Pentium 4, also älter. Wollte mal schauen wie sich das verhält.
Also, Apache Problem für mich gelöst, Putty denke ich auch.

Was ich dachte, das man eventuell einen eindeutigen Servernamen bei SSH mitschicken kann und nur dessenSSH Dämon dann aufwacht, aber ich habe nichts darüber gefunden.

Nur so als Frage: Wie wird das in "großen" Firmen gelöst? Vermutlich mit intelligenten Routern? Also ich denke das eventuell mehrere Server da stehen um die Weblast bei großen, viel benutzeten Websites zu verteilen.
aqui
aqui 07.08.2010 um 21:52:24 Uhr
Goto Top
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 face-wink


Wenns das denn war bitte
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !
Figment
Figment 07.08.2010 um 22:04:59 Uhr
Goto Top
OK, vielen Dank.

Lastverteilung wird dann sicherlich mit aufwendigen Routern und Switches gemacht, also teure und intelligente Hardware.

Ich für meinen Teil werde bei einem Server mit mehreren virtuellen Hosts im Apache bleiben. Das Ganze ist eh nur eine Testumgebung um config Änderungen und CMS Installationen zu testen bevor ich sie an meinem "heißen" DVS Server bei der Telekom mache ;)
dog
dog 07.08.2010 um 22:44:53 Uhr
Goto Top
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.