fabichan
Goto Top

Hyper-V Port-forwarding - Firewall Problem

Guten Morgen miteinander.

Ich habe folgendes Szenario:

Host Server mit Windows Server 2019

Dort drauf ist Hyper-V mit einer Ubuntu VM die eine PostgreSQL Datenbank bereitstellt (Port 5432)
Einen NAT-Switch hab ich bereits erstellt und "Port-forwarding" zum Host auch. Folgendes Tut genutzt: Hyper-V Port Forwarding

Funktioniert soweit so gut, jetzt kommt aber das Problem:
Es laufen auf dieser VM noch ein Webserver auf Port 9091 der aber nur bis zum Reverse-Proxy auf dem Hostsystem (IIS) gehen soll, jedoch lässt sich der so erreichen, und jegliche Einstellungen an der Windows Firewall wird ignoriert (da es über den vSwitch läuft, gehe ich von aus). ich kann also domain.de:9091 aufrufen, aber das will ich nicht.

Wichtig zu wissen wäre, dass ich dazu nur eine Public IP hab (die der Host benutzt), deshalb über NAT

Vielleicht hat jemand ne Lösung

- Fabi

Content-ID: 91809077041

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

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

Spirit-of-Eli
Lösung Spirit-of-Eli 08.09.2023 um 07:06:06 Uhr
Goto Top
Moin,

klar kann man sich ein NAT Konstrukt irgendwie so ala VirtualBox zusammen schustern. Ich glaub du wirst hier kaum wen finden, der dir sowas empfehlen wird. Vor allem nicht wenn du an eine öffentliche IP einsetzt.

Die beste Lösung ist schlicht und ergreifend eine Firewall VM auf dem HyperV Host. Dort lassen sich granulare Regeln definieren. Des weiteren hast du auch ein vernünftiges monitoring wer was wann und wohin macht.
Also setzt für das Konstrukt eine OPNsense oder PfSense auf. Da ist dein NAT schon von Hause aus fertig konfiguriert.

Wenn du dein bestehendes Konstrukt mit dem "NAT-Switch" weiter verwenden willst, dann solltest du für die Server die Bindung der Services korrekt einschränken. Das ist halt keine Firewall.

Gruß
Spirit
fabichan
fabichan 08.09.2023 um 07:23:40 Uhr
Goto Top
Gut, dann werde ich den Firewall VM weg wählen. Mit OPNsense hab ich schonmal gearbeitet. Nur in Kombi mit Hyper-V nicht. Also müsste ich theoretisch einen Virtuellen LAN Port an einen vSwitch tun der Extern ist, und einen intern für die VM Kommunikation? Ich muss ja den PostgreSQL Port immer noch zum Host forwarden, damit die Datenbank erreichbar ist

- Fabi
aqui
aqui 08.09.2023 aktualisiert um 08:01:18 Uhr
Goto Top
Vielleicht hilft dir ein VmWare und Proxmox Beispiel wie man es damit löst wenn nur ein NIC Port vorhanden ist?!
Proxmox
VmWare ESXi
BlueSkillz
BlueSkillz 08.09.2023 um 09:23:08 Uhr
Goto Top
Moin,

dieser Link wird dir auch helfen, wenn du mit verschiedenen VLANs arbeiten möchtest:

https://www.kaiherzig.eu/hyperv-switch-vlan-trunking/
Spirit-of-Eli
Spirit-of-Eli 08.09.2023 um 09:36:18 Uhr
Goto Top
Im besten Fall nutzt du einen Vswitch ohne das der Host einen Beinchin darin hat fürs WAN an der FW VM.

Zur LAN Seite dann einen normalen VSwitch.

Gruß
Spirit
fabichan
fabichan 08.09.2023 um 09:42:41 Uhr
Goto Top
Leider hab ich nur eine IP, (Hosted Dedicated Server), da Brauch ich doch am WAN eine eigene öffentliche IP, oder hab ich n Denkfehler? Ich möchte das bspw Port 5432 durchgereicht wird damit das öffentlich erreichbar ist, bis zum WAN kann ich mir vorstellen, aber vom WAN an den Hyper-V Host, damit das offen ist, stehe da gerade irgendwie mit meiner Denkweise auf dem Schlauch
Spirit-of-Eli
Spirit-of-Eli 08.09.2023 um 09:53:24 Uhr
Goto Top
Du solltest mal erzählen wo dein Hypervisor läuft.
Hast du den zuhause stehen? Was für eine Anbindung existiert denn?
fabichan
fabichan 08.09.2023 um 09:54:45 Uhr
Goto Top
Ist in einem Rechenzentrum (Hetzner
Zitat von @Spirit-of-Eli:

Du solltest mal erzählen wo dein Hypervisor läuft.
Hast du den zuhause stehen? Was für eine Anbindung existiert denn?

Ist in einem Rechenzentrum, genauer gesagt, bei Hetzner, deshalb habe ich nur eine öffentliche IP. Ich weiß, ich könnte eine zusätzliche buchen, aber möchte ich nicht. Ich weiß dass es so geht mit dem zum Host durchreichen, aber nur nicht Wie.
Mr-Gustav
Lösung Mr-Gustav 08.09.2023 um 10:07:23 Uhr
Goto Top
Ist eigentlich ganz einfach:

Du erstellst einen VSWITCH EXTERN und einen VSWITCH INTERN bzw. noch weitere falls gewünscht.
Du Verbindest deine VM´s mit dem vSwitrch INTERN und der FW am LAN Port ( Intern )
Die Firewall an den Switch EXTERN mit dem WAN port Verbinden.
Dann buchst du eine Konsolensitzung - Di Brauchst du damit du die Firewall und die Hyper V Settings
anpassen kannst.
Du meldest über die KVM am Server an und packst das Interface wo die Pub. IP gebunden ist zum Switch EXTERN
und machst den Harken "Gemeinsame Verwaltung bla bla bla raus"
Dann stellst du die MAC im Portal um.
Jetzt musst du über den Host die Firewall konfigurieren.
ACHTUNG - nicht selber aussperren. Also erstmal RDP auf der WAN IP erlauben.
Dann konfigurierst du deine weiteren FW Regeln
zum Schluss das ganze noch so einrichten das die FW den Traffic entsprechend deiner Vorgaben filteret / Weiterleitet.
Dann noch ein VPN für die Verwaltung einrichten sodass der Host per RDP nur ereichbar ist wenn das VPN steht.

So geht das ganze mit einer IP.
Wichtig ist das der WAN Port deines Servers direkt an die Firewall durchgereicht wird bzw. direkt mit dem VSWITCH WAN verbunden ist und der Server selber nicht mit der Verwaltung dran häöngt.
BlueSkillz
BlueSkillz 08.09.2023 um 10:09:27 Uhr
Goto Top
Wenn du eine Firewall-VM nutzen möchtest, dann benötigt diese eine öffentliche IP. Eine öffentliche IP kann nur einer MAC-Adresse zugewiesen werden, deshalb benötigst du eine extra IP, damit du diese der Firewall-VM zuordnen kannst.

https://docs.hetzner.com/de/robot/dedicated-server/virtualization/window ...
fabichan
fabichan 08.09.2023 um 10:13:10 Uhr
Goto Top
Zitat von @Mr-Gustav:

Ist eigentlich ganz einfach:

Du erstellst einen VSWITCH EXTERN und einen VSWITCH INTERN bzw. noch weitere falls gewünscht.
Du Verbindest deine VM´s mit dem vSwitrch INTERN und der FW am LAN Port ( Intern )
Die Firewall an den Switch EXTERN mit dem WAN port Verbinden.
Dann buchst du eine Konsolensitzung - Di Brauchst du damit du die Firewall und die Hyper V Settings
anpassen kannst.
Du meldest über die KVM am Server an und packst das Interface wo die Pub. IP gebunden ist zum Switch EXTERN
und machst den Harken "Gemeinsame Verwaltung bla bla bla raus"
Dann stellst du die MAC im Portal um.
Jetzt musst du über den Host die Firewall konfigurieren.
ACHTUNG - nicht selber aussperren. Also erstmal RDP auf der WAN IP erlauben.
Dann konfigurierst du deine weiteren FW Regeln
zum Schluss das ganze noch so einrichten das die FW den Traffic entsprechend deiner Vorgaben filteret / Weiterleitet.
Dann noch ein VPN für die Verwaltung einrichten sodass der Host per RDP nur ereichbar ist wenn das VPN steht.

So geht das ganze mit einer IP.
Wichtig ist das der WAN Port deines Servers direkt an die Firewall durchgereicht wird bzw. direkt mit dem VSWITCH WAN verbunden ist und der Server selber nicht mit der Verwaltung dran häöngt.

Habe vergessen zu erwähnen, dass auf dem Windows Server selbst auch Dienste laufen, also auf dem selben Server wo Hyper-V läuft, diese müssen auch erreichbar bleiben. Auf den VMs läuft Linux weil u.a. Dienste dort laufen, für die Windows ungeeignet ist. Glaube habe möglicherweise eine eigenartige Konstellation
Mr-Gustav
Mr-Gustav 08.09.2023 aktualisiert um 10:25:25 Uhr
Goto Top
Zitat von @BlueSkillz:

Wenn du eine Firewall-VM nutzen möchtest, dann benötigt diese eine öffentliche IP. Eine öffentliche IP kann nur einer MAC-Adresse zugewiesen werden, deshalb benötigst du eine extra IP, damit du diese der Firewall-VM zuordnen kannst.

https://docs.hetzner.com/de/robot/dedicated-server/virtualization/window ...

Es geht auch ohne zweite IP.

Die Öffentliche IP bekommt die Firewall direkt zugewiesen am WAN Port und die Firewall kümmert sich dann wie Reverse Proxy / S-DNAT usw... / Portforwarding um den Zugriff

Hetzner hat auch eine Anleitung dafür.
rzlbrnft
rzlbrnft 08.09.2023 aktualisiert um 10:41:58 Uhr
Goto Top
Zitat von @fabichan:
Habe vergessen zu erwähnen, dass auf dem Windows Server selbst auch Dienste laufen, also auf dem selben Server wo Hyper-V läuft, diese müssen auch erreichbar bleiben. Auf den VMs läuft Linux weil u.a. Dienste dort laufen, für die Windows ungeeignet ist. Glaube habe möglicherweise eine eigenartige Konstellation

Eigenartig ist die Konstellation schon, weil auf HyperV nichts an eigenen Diensten jemals laufen sollte, das aus dem Web erreichbar ist, zumindest wenn du Daten hast, die nicht jeden Hacker etwas angehen. Dafür solltest du dir eine extra VM machen, wo die Dienste laufen. Deine Firewall kriegt die öffentliche IP zugewiesen, an der Firewall schleifst du dann per NAT deine Ports an die jeweilige VM mit dem gehosteten Dienst durch. Die VMs sollten bestenfalls auch keinen Zugriff auf den Host haben, sondern nur du über dein Admin Interface.
Spirit-of-Eli
Spirit-of-Eli 08.09.2023 um 10:43:07 Uhr
Goto Top
Das geht alles schon mit einer IP.
Dafür musst du allerdings in der Zeit wo du KVM Konsole von Hetzner hast die FW aufsetzen und dir einen Tunnel in das LAN dahinter bauen um an deinen Host zu kommen.

Ohne das schon mal gemacht zu haben ist das sportlich.

Was für eine Windows Lizenz hast du denn? Bei Standard kannst du ja ohne Probleme noch eine weitere Windows VM betreiben. Der HyperV Host darf nichts anderes am laufen haben.
Spirit-of-Eli
Spirit-of-Eli 08.09.2023 um 10:45:19 Uhr
Goto Top
Ich habe das hier allerdings schon mal mit Proxmox für eine Foren Kollegen gebaut.
Da ließ sich die public IP nachher auch auf die FW schwenken. Ist natürlich nicht cool das Webinterface erstmal durchs Internet zu schieben. Ich hatte das halt zumindest auf die IP von Foren Kollegen begrenzt
fabichan
fabichan 08.09.2023 um 10:58:46 Uhr
Goto Top
Zitat von @rzlbrnft:

Zitat von @fabichan:
Habe vergessen zu erwähnen, dass auf dem Windows Server selbst auch Dienste laufen, also auf dem selben Server wo Hyper-V läuft, diese müssen auch erreichbar bleiben. Auf den VMs läuft Linux weil u.a. Dienste dort laufen, für die Windows ungeeignet ist. Glaube habe möglicherweise eine eigenartige Konstellation

Eigenartig ist die Konstellation schon, weil auf HyperV nichts an eigenen Diensten jemals laufen sollte, das aus dem Web erreichbar ist, zumindest wenn du Daten hast, die nicht jeden Hacker etwas angehen. Dafür solltest du dir eine extra VM machen, wo die Dienste laufen. Deine Firewall kriegt die öffentliche IP zugewiesen, an der Firewall schleifst du dann per NAT deine Ports an die jeweilige VM mit dem gehosteten Dienst durch. Die VMs sollten bestenfalls auch keinen Zugriff auf den Host haben, sondern nur du über dein Admin Interface.

Auf dem Host selbst läuft auch nur der IIS als Webserver / Reverse-Proxy

Das Ding ist, dass der Server so schon seit 2 Jahren läuft, ich habe nur eine Linux VM hinzugefügt um PostgreSQL laufen zu lassen, dies möchte ich wie oben gemeint so haben, dass es die selbe IP nutzen, deshalb meine aktuelle NAT Konstellation
fabichan
fabichan 08.09.2023 um 11:02:46 Uhr
Goto Top
Eine Idee habe ich jedoch, folgendes Szenario:

Ich lass das mit den HyperV Nat static routes so, schalte aber eine Firewall dazwischen, und konfiguriere entsprechend Port Forwarding

Sollte doch klappen, und Ports die intern bleiben sollen, obwohl... die Ports müssen ja bis zum Host da dort ja der Reverse-Proxy sitzt....
Spirit-of-Eli
Spirit-of-Eli 08.09.2023 um 11:07:48 Uhr
Goto Top
Zitat von @fabichan:

Eine Idee habe ich jedoch, folgendes Szenario:

Ich lass das mit den HyperV Nat static routes so, schalte aber eine Firewall dazwischen, und konfiguriere entsprechend Port Forwarding

Sollte doch klappen, und Ports die intern bleiben sollen, obwohl... die Ports müssen ja bis zum Host da dort ja der Reverse-Proxy sitzt....

Das ist was wir dir versuchen zu erklären
fabichan
fabichan 08.09.2023 aktualisiert um 11:13:42 Uhr
Goto Top
Hyper-V Extended Port ACL

Das könnte auch klappen, allerdings hab ich's gestern versucht, alles zu sperren, außer Port 5432, habe nur inbound geblockt
Outbound offengelassen, die VM selbst könnte jedoch nicht mehr ins Internet, aber Port 5432 war erreichbar wie es soll

Hab gelesen, dass irgendwas mit ICMP und TCP ack sein muss, weiß nur nicht ob das da auch zutrifft.
Spirit-of-Eli
Lösung Spirit-of-Eli 08.09.2023 um 11:22:54 Uhr
Goto Top
Bau da ne FW VM rein und gut ist. Alles andere ist nichts was mit Windows ins Internet sollte.
rzlbrnft
rzlbrnft 08.09.2023 aktualisiert um 11:24:19 Uhr
Goto Top
Zitat von @fabichan:
Auf dem Host selbst läuft auch nur der IIS als Webserver / Reverse-Proxy
Das Ding ist, dass der Server so schon seit 2 Jahren läuft, ich habe nur eine Linux VM hinzugefügt um PostgreSQL laufen zu lassen, dies möchte ich wie oben gemeint so haben, dass es die selbe IP nutzen, deshalb meine aktuelle NAT Konstellation

Das es läuft, heißt noch lange nicht, das es gut ist. Man stellt halt keinen HyperV Host ungeschützt ins Netz.
Ein HyperV ist ein HyperV, sonst nix. So sagt es die Best Practice von Microsoft.
fabichan
fabichan 18.09.2023 um 14:25:43 Uhr
Goto Top
Melde mich dazu nochmal, ich werde mit meinem Projekt Partner einen neuen Server buchen, da wir mehr resourcen brauchen, jetzt zu dem mit einer IP.. man kann gar nicht auf der Haupt-IP die MAC umstellen
Hetzner erlaubt Verbindungen nur von der MAC die eingestellt ist

-Fabi