OPNsense für Proxmox-Server | Extern vs VM

Started by Matze202, September 02, 2024, 10:46:15 PM

Previous topic - Next topic
Hallo,

mein Plan war, auf dem Proxmox-Server das OPNsense als VM zu installieren und wie ich es vor langem in einem Video aufgeschnappt hatte (finde nur das Video nicht mehr), dass man den gesamten eingehenden Datenverkehr (inkl. dem für Proxmox) durch Proxmox in die OPNsense leiten könnte und den an Proxmox gerichtete Datenverkehr nach dem bereinigen wieder an Proxmox intern zurückleiten könnte.

Proxmox habe ich nach folgender Anleitung per Hetzner Rescue Installimage als ein frisches System installiert.
https://www.youtube.com/watch?v=t8SxiY6LH54&t=1s


  • Ist davon abzuraten, das geplante per VM umzusetzen und stattdessen die OPNsense auf anderer (für OPNsense eigener) Hardware zu betreiben?
  • Wenn nicht, wie kann ich das am besten Umsetzen?

Meine tiefgründigen Netzwerkkenntnisse sind leider 25 Jahre alt und somit nicht mehr wirklich auf dem aktuellen Stand. In der Zwischenzeit war ich nur noch als Webhostingreseller tätig und möchte in absehbarer Zeit aber mir tiefgründigere Kenntnisse aneignen, nur mit Fremdsprachen hängt es leider etwas, weshalb ich froh bin, dass es hier einen deutschsprachigen Bereich gibt.

Ich hoffe ihr könnt mir helfen und ich Danke euch bereits vorab.

Gruß Matze

Wenn es Dir darum geht, etwas zu lernen, würde ich von einer Installation in der Cloud abraten.

Bei jeder kleinsten Fehlkonfiguration wirst Du Dir den Boden unter den Füßen wegziehen. Proxmox hat ja prinzipiell den Vorteil, dass man dort ggf. eine VM zurückrollen kann. Das setzt aber voraus, dass man auf die Proxmox-GUI noch draufkommt. Wenn diese aber durch eine Firewall "geschützt" wird, die selbst unter Proxmox läuft, bekommt man ein Münchhausen-Problem.

Zum Lernen wäre also eine lokale Installation zunächst sinnvoller.

Für einen Produktiveinsatz kann man so etwas natürlich machen, aber das ist erst dann ratsam, wenn man das Setup praktisch nicht mehr anrühren muss. Selbst Updates von Proxmox oder OpnSense sind dann riskant. Eine Konsole von Hetzner an den Server dranzutun, hilft auch nur bedingt, weil sowohl Proxmox als auch OpnSense schlecht per CLI zu konfigurieren sind.

Die einzige Möglichkeit wäre eine zweite IP - die könnte man dann allerdings genau nicht per OpnSense schützen.
Wenn ich so etwas vorhätte, würde ich die zweite (Proxmox-)IP wahrscheinlich per IPv6 realisieren, nicht in den DNS eintragen und eventuell auf das ASN meines ISP beschränken.

"Eigene Hardware" ist für OpnSense zwar prinzipiell vorzuziehen, nur schaltet Hetzner Dir vermutlich nicht einen Mietserver "hinter" einen anderen, somit wäre der zu schützende (Proxmox-)Server auch wieder exponiert.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

@meyergru Vielen Dank für deine schnelle, umfangreiche und aussagekräftige Antwort. ;)

Achja, die 2. IP hatte ich vergessen zu erwähnen, diese habe ich mir bereits als IPv4 geholt.

Ich habe schon mal paar hoffentlich weiterhelfende Suchbegriffe in deinem Beitrag gefunden. ;)

Hast du noch irgendwelche Ratschläge, wie ich das optimal für mich weiter planen und umsetzen sollte oder nen Link wo vergleichbares gut beschrieben finden kann? (Google ist bisher leider nicht sehr hilfreich gewesen.)

Quote from: meyergru on September 02, 2024, 11:33:29 PM
"Eigene Hardware" ist für OpnSense zwar prinzipiell vorzuziehen, nur schaltet Hetzner Dir vermutlich nicht einen Mietserver "hinter" einen anderen, somit wäre der zu schützende (Proxmox-)Server auch wieder exponiert.

Das tut Hetzner durchaus. Allerdings nur bei dedizierten Servern und nicht bei Cloud-VMs. Wir haben das hier bei Hetzner im Einsatz, ganz regulär über deren "Robot"-Produkt gekauft:

Private LAN                                      Virtual Switch                                       
   ┏━━━━┓             ┏━━━━━━━━━━━━━━━━┓             ┌────┐                                           
   ┃    ┃             ┃    OPNsense    ┃             │    │                                           
   ┃    ┃     10G     ┃    (EX 44)     ┃     1G      │    │                                           
   ┃    ┣━━━━━━━━━━━━━┃                ┃─────────────┤    │                                           
   ┃    ┃             ┃     HAproxy    ┃             │    │                                           
   ┃    ┃             ┗━━━━━━━━━━━━━━━━┛             │    │                                           
   ┃    ┃                      ┃                     │    │                                           
   ┃    ┃                      ┃                     │    │       Uplink              Public Services 
   ┃    ┃              HA-Sync ┃ 1G                  │    │━━━━━━━━━━━━━━━━━━▶    ◀════════════════════
   ┃    ┃                      ┃                     │    │     Public IP                             
   ┃    ┃                      ┃                     │    │                                           
   ┃    ┃             ┏━━━━━━━━━━━━━━━━┓             │    │                                           
   ┃    ┃             ┃    OPNsense    ┃             │    │                                           
   ┃    ┃     10G     ┃    (EX 44)     ┃     1G      │    │                                           
   ┃    ┣━━━━━━━━━━━━━┃                ┃─────────────┤    │                                           
   ┃    ┃             ┃     HAproxy    ┃             │    │                                           
   ┃    ┃             ┗━━━━━━━━━━━━━━━━┛             └────┘                                           
   ┃    ┃                                                                                             
   ┃    ┃                                                                                             
   ┃    ┃                                                                                             
   ┃    ┃                                                                                             
   ┃    ┃                                                                                             
   ┃    ┃             ┏━━━━━━━━━━━━━━━━┓                                                               
   ┃    ┃     10G     ┃ proServer Host ┃                                                               
   ┃    ┣━━━━━━━━━━━━━┫    (AX 102)    ┃                                                               
   ┃    ┃             ┃                ┃                                                               
   ┃    ┃             ┃ ┌────┐         ┃                                                               
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃                                                               
   ┃    ┃             ┃ └────┘  Mgmt   ┃                                                               
   ┃    ┃             ┃ ┌────┐         ┃                Uplink                                         
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶                         
   ┃    ┃             ┃ └────┘  Mgmt   ┃           Management only                                     
   ┃    ┃             ┃ ┌────┐         ┃                                                               
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃                                                               
   ┃    ┃             ┃ └────┘  Mgmt   ┃                                                               
   ┃    ┃             ┃   ...          ┃                                                               
   ┃    ┃             ┃                ┃                                                               
   ┃    ┃             ┗━━━━━━━━━━━━━━━━┛                                                               
   ┃    ┃             ┏━━━━━━━━━━━━━━━━┓                                                               
   ┃    ┃     10G     ┃ proServer Host ┃                                                               
   ┃    ┣━━━━━━━━━━━━━┫    (AX 102)    ┃                                                               
   ┃    ┃             ┃                ┃                                                               
   ┃    ┃             ┃ ┌────┐         ┃                                                               
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃                                                               
   ┃    ┃             ┃ └────┘  Mgmt   ┃                                                               
   ┃    ┃             ┃ ┌────┐         ┃                Uplink                                         
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶                         
   ┃    ┃             ┃ └────┘  Mgmt   ┃           Management only                                     
   ┃    ┃             ┃ ┌────┐         ┃                                                               
   ┃    ┃━ ━ ━ ━ ━ ━ ━┃━│Jail│───────▶ ┃                                                               
   ┃    ┃             ┃ └────┘  Mgmt   ┃                                                               
   ┃    ┃             ┃   ...          ┃                                                               
   ┃    ┃             ┃                ┃                                                               
   ┗━━━━┛             ┗━━━━━━━━━━━━━━━━┛                                                               
                              ...                                                                     


Der Default-Gateway für die ganzen Jails ist der OPNsense-Cluster, der ursprüngliche Uplink der AX102 ist wie beschrieben nur für's Management. HA und CARP funktionieren einwandfrei.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Vielen Dank Patrick M. Hausen,

aktuell, habe ich mir aus der Serverbörse folgende Konfiguration geholt.

1 x Dedicated Server "Server Auction"
     * Intel Core i7-8700
     * 2x SSD M.2 NVMe 1 TB
     * 4x RAM 32768 MB DDR4
     * NIC 1 Gbit Intel I219-LM
     * Standort: Deutschland, FSN1
     * Rescue-System (Englisch)
     * 1 x Primäre IPv4

Dafür zahle ich erstmal etwas weniger als die Hälfte und dafür dass es noch keine Einnahmen bringt, wird dies schon ganz ordentlich sein.

Jetzt habe ich auf diesem Server die beiden IPv4 Adressen. Lässt es Hetzner zu, die eine oder gar beide öffentlichen IPv4 Adressen auf den kleinen noch hinzu zubuchenden Server zu übertragen oder brauche ich dann nur 1 öffentliche IPv4?

Die Redundanz der OPNsense und des Proxmox-Servers werde ich für den Anfang zu Testzwecken noch nicht in Betracht ziehen, aber wichtig ist mir, dass die OPNsense bereits den gesamten Traffic ordentlich vorwaschen tut und nur die sauberen Anfragen zum Proxmox durchlässt.

Habt Ihr Tools für die Netzwerkkonfiguration eingesetzt oder dies nur in den Netzwerkdateien eingetragen?

Dies ist halt noch alles etwas viel neues für mich, aber ich will das halt gut abgesichert haben, was mir noch vor der Leistung kommt.

Du brauchst dann im Prinzip nur eine IPv4-Adresse für einen der beiden Server. Das wird der mit der OPNsense. Für den Proxmox reicht extern IPv6.

Dann musst du über ein Support-Ticket für beide Server je eine zusätzliche Netzwerkkarte und ein Patchkabel zwischen den beiden Systemen bestellen. Dann kannst du dem Proxmox und der OPNsense auf diesem privaten Link RFC1918-Adressen geben und die OPNsense wird dann auf v4 der Default-GW für Proxmox.

Für v6 musst du dann überlegen, wie du das abbildest ...
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

September 03, 2024, 01:39:40 PM #6 Last Edit: September 03, 2024, 01:47:28 PM by lewald
Es ist eigentlich ziemlich einfach, wenn nur diese eine Maschine vorhanden ist.

1. Proxmox ist über die IP 1 erreichbar. Diese kann man über die Hetzner-Firewall schützen.

2. Die IP 2 ist für OPNsense vorgesehen. OPNsense wird als VM auf Proxmox installiert. Im Hetzner Robot kann eine MAC-Adresse für die zweite IP angefordert werden. Diese MAC-Adresse wird dann der virtuellen Netzwerkkarte von OPNsense zugewiesen. Hinter OPNsense wird anschließend das private Netzwerk für die VMs eingerichtet.

Danke @Patrick M. Hausen und @lewald!

@Patrick M. Hausen:

Ich werde mir das ganze mal genauer durchplanen, aber mit der IPv6 meinst du schon die externe?

Grundsätzlich soll der Proxmox eigentlich garnicht von außen, ausgenommen über einen Tunnel oder den bereinigten Datenverkehr der durch die OPNsense gegangen ist, erreichbar sein. Für was bräuchte der Proxmox dann die externe IPv6 in dieser Verwendung oder habe ich dich da falsch verstanden und du meinst wohl die interne Vernetzung?

@lewald

Das ähnelt meinem anfänglichem Plan, von dem mir Patrick bereits abgeraten hatte, denn ich plante eigentlich den gesamten Datenverkehr an die OPNsense VM zu leiten und den bereinigten Datenverkehr intern an Proxmox und die anderen VM etc. zurück zuleiten. Davon bin ich nun aber abgerückt.

Quote from: Matze202 on September 03, 2024, 10:12:30 PM
Ich werde mir das ganze mal genauer durchplanen, aber mit der IPv6 meinst du schon die externe?

Grundsätzlich soll der Proxmox eigentlich garnicht von außen, ausgenommen über einen Tunnel oder den bereinigten Datenverkehr der durch die OPNsense gegangen ist, erreichbar sein. Für was bräuchte der Proxmox dann die externe IPv6 in dieser Verwendung oder habe ich dich da falsch verstanden und du meinst wohl die interne Vernetzung?

Was meinst du mit "bereinigt"? Entweder das Proxmox-UI ist erreichbar oder eben nicht. Die OPNsense kann da auch keine Magie vollführen. Du kannst natürlich alles zu machen und das UI nur per VPN erreichbar einrichten. Was machst du dann, wenn das VPN mal nicht funktioniert?

Alles immer eine Abwägung.

Mit der IPv6-Adresse meinte ich natürlich die externe. Jeder Hetzner Host hat grundsätzlich erst mal eine extern errreichbare IP-Adresse. In unserem Fall, der ja von Proxmox nicht so sehr unterschiedlich ist - wir virtualisieren mit FreeBSD Jails - hat der FreeBSD Host eine öffentlich erreichbare IPv6-Adresse. Die "Attack Surface" ist trotzdem ziemlich klein, denn der einzige darüber erreichbare Dienst ist SSH.

Alle Jails - bei dir wären das VMs auf Proxmox - sind extern nicht erreichbar sondern haben private Adressen hinter der OPNsense.

Ich denke so könnte man das auch auf deinen Fall sinnvoll übertragen.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

September 03, 2024, 10:18:54 PM #9 Last Edit: September 03, 2024, 10:24:54 PM by meyergru
Du brauchst theoretisch die direkte Verbindung zum Proxmox gar nicht.

Das heißt: Bis Du den ersten Konfigurationsfehler machst oder irgendein Update (OpnSense oder Proxmox) die Konnektivität bricht. Dann bist Du, wie ich ja schon schrieb, "weg vom Fenster" im wahrsten Sinne des Wortes.

Eine Recovery wird dann wirklich schwierig, selbst eine Lara bei Hetzner wird Dir da wenig helfen, weil Du damit auch nicht an die Web-GUI kommst.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Mit einer Maschine gibt es nur zwei mögliche Szenarien:

1. Das von mir beschriebene Szenario.
2. Ein Netzwerkkarten-Passthrough. Sowas https://stackoverflow.com/questions/44134651/proxmox-with-opnsense-as-pci-passthrough-setup-used-as-firewall-router-ipsec-pri

Quote from: Patrick M. Hausen on September 03, 2024, 10:17:16 PM
Was meinst du mit "bereinigt"? Entweder das Proxmox-UI ist erreichbar oder eben nicht. Die OPNsense kann da auch keine Magie vollführen. Du kannst natürlich alles zu machen und das UI nur per VPN erreichbar einrichten. Was machst du dann, wenn das VPN mal nicht funktioniert?

@Patrick M. Hausen
Mit dem Bereinigen meinte ich, dass die OPNsense weitestgehend den gesamten eingehenden Datenverkehr überwacht und nur das durchlässt, was den vorgegebenen Regeln entspricht, sowie weitere Schutzmaßnahmen wie Cloudflare etc. nichts dagegen haben. Somit soll eigentlich auch der SSH-Dienst komplett mit überwacht und abgesichert werden.

@meyergru
Meinst du bei der OPNsense als eine VM in dem Proxmox? Davon bin ich ja nun auch abgerückt und wollte OPNsense auf einem vorgeschalteten extra Server laufen lassen.
Beides werde ich ja nicht gleichzeitig updaten und immer schön Backups machen, bevor ich ein Update installiere oder mich an der Konfiguration vergreife.

Später werde ich mir auf jeden Fall noch ein Testsystem zulegen, wo alle Änderungen im Testsystem durchgespielt werden, bevor ich diese auf dem Live-System einspielen/einrichten werde.

@lewald
Das ich davon abgerückt bin, habe ich darauf bezogen, dass ich es nun auf 2 Servern umsetzen möchte.

  • kleiner Server mit OPNsense
  • großer Server mit Proxmox