Proxmox // Heimserver - vom Heimnetz trennen?

  • Hey zusammen,


    kurze Frage - vielleicht steh ich auch einfach auf dem Schlauch :)


    Habe einen A300 (3400g, 16gb ram, 500gb nvme, 1x 1gbit nic) zuhause, auf dem ein MC Server, TS³ Server und diverse "spielwiesen" laufen.


    der MC und TS sind via Port Weiterleitung an der Fritzbox 7590 via meine subdomain (myfritz dynds + cname record meiner domain) von außerhalb erreichbar.


    nun möchte ich allerdings verhindern das SOLLTE sich mal jemand in einen LXC / KVM "hacken" - zugriff bekommen, er nicht auf mein restliches heimnetz kommt, aktuell kann ich von dem minecraft container (192.168.178.201 (200 ist der Proxmox) ) meinen mac / windows pc (192.168.178.2 (192.168.178.1 ist die fritzbox) ) anpingen.


    mein ziel wäre , dass die KVMs / Container nach draußen funken können, auch von draußen erreichbar sind via meine subdomain ABER ich nicht vom container / kvm mein "heimnetz" selbst erreiche / anpingen kann usw. >EDIT(außer ich würde z.B. eine Wireguard KVM oder so erstellen)<


    Wie ist da die vorgehensweise? (ambesten detailiert erklärt zum nachbauen / verstehen :) )


    Aktuell war die idee, dass ich eine neue bridge (vmbr1) erstelle, die dann z.B. die ip 10.0.0.1 /24 gebe den anderen vms dann 10.0.0.2 usw und in der fritzbox eine route einstelle?

    Aber dann hätte ich ja wieder das problem, dass ich die zwei netze irgendwo verbinde miteinander?


    hab den dreh mit vlan tags usw noch nicht ganz raus :) der proxmox selbst soll von außerhalb nicht erreichbar sein (Port in der Fritzbox ist nicht freigegeben).


    edit2: wäre durfte, wenn ich das alles über die mittel von Proxmox lösen könnte :) ohne eine pfsense aufsetzen zu müssen (doppelts nat? )


    Telekom ; 250 Mbit/s down 47 UP // SVDSL // Fritzbox7590

  • Bisschen schwierig. Ich habe das bei mir mit VLANs gelöst, da macht aber die Fritzbox nicht mit.


    (Habe einen Mikrotik Router)

    Du kannst es aber auch mit Proxmox selber machen.

    IP Netze muss man ja nicht ineinander natten, sondern kann sie auch Routen.


    Angenommen dein Netzwerk wäre 192.168.1.0/24, wobei die Fritzbox 192.168.1.1 inne hat.

    Dein Proxmox hat die 192.168.1.5 inne.


    Jetzt erstellst du auf dem Proxmox eine Bridge (vmbr1) , die aber nicht mit einem physikalischen Interface verbunden ist.

    Die Bridge sei 10.0.0.1/24


    Deine Container werden ganz normal in die Bridge gehängt (10.0.0.2 etc.) und haben als Gateway die 10.0.0.1

    Auf der Fritzbox erstellst du eine statische Route á la Containernetz via Proxmox IP (10.0.0.0/24 via 192.168.1.5)


    Wenn beim Proxmox sysctl -w net.ipv4.ip_forward=1 gesetzt ist, und es eine Default Route über die Fritzbox hat, hast du zwei Netze die ins Internet können und sich gegenseitig erreichen können.


    Knotenpunkt ist dabei das Linux des Proxmox Hostes. Willst du also, dass das Containernetz nur ins Internet kann, arbeitest du mit entsprechenden Firewallregeln von Typ Forward - direkt in den iptables von Proxmox.

    Code
    1. iptables -A FORWARD -s 10.0.0.0/24 -d 192.168.1.0/24 -j REJECT
    2. iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.0.0/24 -j REJECT


    Wenn du DNS von der Fritzbox nutzen möchtest, musst du natürlich die Kommunikation zur Fritzbox erlauben, zumindest für Port 53.

    ICMP zur Fritzbox ist auch hilfreich.

    DHCP funktioniert so natürlich nicht - hier musst du für das Containernetz eigene DHCP Server aufsetzen - oder manuell vergeben.

  • das klingt gut, ich baus gleich mal nach :D


    also quasi nur eine neue bridge erstellen - im ip4 feld 10.0.0.1/24 eintragen (gateway leer lassen)


    dann den VMs manuell 10.0.0.2 -3 -4 -5 usw zuweisen, eine route in der fb erstellen und am proxmox knoten via firewall / ip tables dann die regeln festlegen ? (muss mich mal mehr mit iptables auseinandersetzen *würg*


    sysctl -w net.ipv4.ip_forward=1 natürlich vorher setzen am proxmox.




    edit: wäre es vl auch einfacher möglich, den proxmox host an LAN4 zu hängen der Fritzbox, welcher in den Fritzbox settings als "Gastnetz" genutzt wird? - der dürfte ja dann auch im eigenen netz unterwegs sein ? (sofern ich dann noch eine portweiterschaltung setzen kann) --- das dürfte doch zum selben ergebniss führen, außer , dass die VMs untereinander kommunizieren können ? *rein informativ*


    Quote

    Gastzugang

    Hier ermöglichen Sie Ihren Gästen schnell und sicher einen Zugang zum Internet. Aktivieren Sie die Option "Gastzugang für LAN 4 aktiv" und schließen Sie das Gastgerät an die Buchse "LAN 4" an Ihrer FRITZ!Box an. Die mit dem "LAN 4"-Anschluss verbundenen Geräte nutzen lediglich den Internetzugang, haben aber keinen Zugriff auf Ihr Heimnetz.

    Gastzugang für LAN 4 aktiv

  • edit: wäre es vl auch einfacher möglich, den proxmox host an LAN4 zu hängen der Fritzbox, welcher in den Fritzbox settings als "Gastnetz" genutzt wird? - der dürfte ja dann auch im eigenen netz unterwegs sein ? (sofern ich dann noch eine portweiterschaltung setzen kann) --- das dürfte doch zum selben ergebniss führen, außer , dass die VMs untereinander kommunizieren können ? *rein informativ*

    Inwieweit man die Dinge im Gastnetz als exposed Host nutzen kann, weiß ich nicht.

    Auch wirst du dann erstmal Schwierigkeiten haben auf das Webinterface / SSH vom Heimnetz aus zuzugreifen.


    Evtl. hat die Fritte da auch einige DMZ Einstellungen - das übersteigt aber den Horizont der Fritte eigentlich.


    Die VMs können, sofern sie an einer Bridge hängen, sowieso untereinender kommunizieren - über Layer2.

    Das kannst du mit einer IP Firewall nicht einschränken.


    Wenn du nicht möchtest, dass die VMs untereinander kommunizieren, musst du mit ebtables ran, oder jeder VM eine eigene Bridge geben...


    Eine Bridge ist wie ein Switch, wenn zwei Rechner daran angeschlossen sind, können sie auch kommunizieren.

  • dann müsste ich für jede bridge ein neues netz erstellen und das dann auch in der fritte immer hinzufügen als route, richtig?

  • Was mir auch gerade einfällt, wenn du richtig exclusiv sein willst:


    Verpasse dem Proxmox einfach zwei physikalische NIC, ginge auch mit einem VLAN fähigen Switch und einer NIC.

    An die eine NIC schließt du dein Heimnetz an, an die zweite NIC das Gastnetz der Fritzbox.


    Jetzt kannst du die Container in das Gastnetz routen, oder das Gastnetz der Bridge hinzufügen.

    Ob man aber Port Forwarding ins Gastnetz machen kann, weiß ich nicht.


    Ähnlich sieht es mit einem VLAN fähigen Switch aus.

    An einen Port dein Heimnetz, untagged auf VLAN 100 - an einem zweiten Port dein Gastnetzm untagged auf VLAN 200 und beide VLANs tagged zum Netzwerkinterface des Servers.


    Ob das allerdings Sinnvoll ist, sei mal dahingestellt.

    Wenn dann würde es sich eher lohnen die Fritzbox gegen einen gescheiten Router auszutauschen - oder die Variante aus dem ersten Thread umzusetzen.

  • dann müsste ich für jede bridge ein neues netz erstellen und das dann auch in der fritte immer hinzufügen als route, richtig?

    Eine Route reicht, z.B. für ein 24er Subnetz - und an den Bridges verwendest du jeweils nur kleinere Netze, /30er z.B.

    Allerdings sehen dann die iptables Einträge deutlich komplizierter aus.


    Wirklich Sinn macht das nur, wenn du die VMs auch vermietest, denen aber die Kommunikation untereinander zu verbieten - was soll das bringen?

    Scheinbar ist das was wichtig ist, eh über das Internet zu erreichen (TS und Gameserver) - und alles andere wie SSH sollte doch eigentlich deaktiviert sein oder Passwortgeschützt.


    Welchen Vorteil versprichst du dir denn davon, dass die VMs nicht untereinander kommunizieren dürfen?

  • Wenn ich z.B. in einer Spielwiese irgendwelche Daten liegen hätte , auf die man dann zugreifen könnte oder ähnlich, vl ist das bisschen mit Kanonen auf Spatzen geschossen, bin da vielleicht auch ein wenig paranoid :D


    wenn ich zb eine windows VM nutze (hab einen m1 mac) dort dann auch paar sensiblere daten (jetzt nicht lebensnotwendig, aber datenschutzgemäß sensibel) liegen hätte, nicht dass jmd zb in den TS LXC einbricht und sich dann zugriff zu der windows VM beschafft und dort alle daten klaut oder so ( wiegesagt, bisschen paranoid, aber ich denke mal so "sicherheitsbewusst" zu denken oder sich zumindest Gedanken zu machen, ist nicht schlimm


    hab Variante 1 am laufen, der LXC hat jetzt die ip 10.0.0.2 und kann auch nach draußen pingen vom 192 XX netz klappt der ping ins 10.XXX netz und umgekehrt.


    lediglich das mit den IPtables hab ich noch nicht raus, geht das mit der GUI oder muss ich das über die proxmox shell regeln? (Die netze jeweils gegeneinander nicht erreichbar zu machen (privat + vms)

  • Wenn ich z.B. in einer Spielwiese irgendwelche Daten liegen hätte

    Die Spielwiese dann so behandeln, wie auch eine Spielwiese auf einem Netcup Server.

    Das Betriebssystem im Container härten.



    windows VM

    Ja, okay. Windows VMs strikt auf eine andere Bridge schicken.

    Aber auch hier müsstest du dann mit iptables arbeiten, um die Bridge von den restlichen Bridges zu trennen.



    lediglich das mit den IPtables hab ich noch nicht raus, geht das mit der GUI oder muss ich das über die proxmox shell regeln? (Die netze jeweils gegeneinander nicht erreichbar zu machen (privat + vms)

    Du kannst auch per SSH drauf - ist auch nur ein ganz normales Debian und administriert sich wie ein ganz normales Debian.

    Proxmox stellt dir auch eine Firewall per GUI bereit - die müsstest du unter "Datacenter" aktivieren.


    Hier besteht allerdings auch die Gefahr dich auszusperren - wenn du also kein Monitor anschließen kannst und weißt, wie man das in der Bash nicht wieder richten kann, guckst du ein bisschen in die Röhre.


    Mir hat das Proxmox Firewall Feature nicht so gut gefallen - habe mich aber auch nicht intensiv damit beschäftigt.

  • mit Datacenter ist das oberste " Rechenzentrum" gemeint, nicht den Node / VM - ja ?


    Sehe dort allerdings nur die Möglichkeit als Aktion Accept / Drop / Reject zu wählen, wüsste nicht was ich z.B: bei Interface / quelle / Ziel reinschreiben müsste um zum ergebniss zu kommen, dass die netze untereinander nicht kommunizieren dürften.


    hätte jetzt IN - drop - quelle 192.168.178.0/24 gemacht als auch OUT und das ganze dann umgekehrt für das 10.0.0.0/24 - wäre das the way to go?


    Falls alle stricke reißen mit dem aussperren, bestünde ein Monitor und via shell kann ich die firewall deaktivieren im fall der fälle :) - aber den "stress" will ich mir sparen haha (Monitor rauskramen, an stöpseln samt Tastatur usw)


    Entschuldige mich schonmal für etwaige Dumme Fragen, ist für mich auch gerade ein wenig lernen für die Zukunft :) durch "Google" bin ich nicht sonderlich schlau geworden, da finde ich deine Hilfestellung gerade echt am angenehmsten umzusetzen

  • Sehe dort allerdings nur die Möglichkeit als Aktion Accept / Drop / Reject zu wählen

    Da schaltest du die Firewall scharf. Regeln kannst du auch für einzelne VMs und für die Node festlegen - jeweils im Menü der Node und der VM.


    hätte jetzt IN - drop - quelle 192.168.178.0/24 gemacht als auch OUT und das ganze dann umgekehrt für das 10.0.0.0/24 - wäre das the way to go?

    Wenn du das bei den VMs machst, ja - global fehlt dort das Ziel -> selbst aussperren.


    Ansonsten gibt es da auch nur die Doku im Wiki und ggf. in der offiziellen Dokumentation: https://pve.proxmox.com/wiki/Firewall


    Die zwei iptables Regeln in den Autostart zu setzen, finde ich wesentlich einfacher.

    Mit der Proxmox Firewall kenne ich mich leider nicht aus und ich nutze dieses Feature nicht.

  • ich danke dir recht herzlich! habe schon teil Erfolge jetzt erzielt und mich noch nicht ausgesperrt *grins* :D variante 1 mit den iptables.


    Fühl dir auf die Schulter geklopft, vielen vielen Dank für deine Unterstützung!