Seit einer Weile läuft in meiner Heimnetzumgebung ein Proxmox Server mit unterschiedlichen VMs, welche zwar alle ihre Funktionen erfüllen, aber alle recht unspektakulär vor sich hin laufen. Nun bot es sich an, den Grundaufbau neu zu strukturieren und weitere Funktionen einzusetzen, die Proxmox zusätzlich zur Verfügung stellt, etwa die Verwendung von VLANs und virtuellen Switches.

In einem anderen Tutorial schrieb ich damals über die Nutzung der OPNsense Firewall auf einem Single NIC Device. Diesmal soll es darum gehen OPNsense in Proxmox zu virtualisieren und wieder in einer Router on a Stick Topologie zu betreiben. Die dazu notwenigen Werkzeugte bringt Proxmox gleich mit und die Einrichtung sollte recht zügig zu bewerkstelligen sein. Da dies meine ersten Gehversuche mit Proxmox sind, muss auf geeignete Literatur zurückgegriffen werden. Zur Umsetzung meines Vorhabens dient eine Anleitung, welche die Sache recht gut trifft und die ich weiter unten verlinkt habe. Statt der dort verwendeten pfSense soll jedoch eine OPNsense Firewall den Dienst verrichten. Dazu sind an manchen Stellen Änderungen vorzunehmen, die allgemeine Methodik ist aber die Gleiche. Zusätzlich soll zum Ende des Tutorials aufgezeigt werden, wie sich eine VM von außen erreichbar machen lässt, um so sinnvolle Anwendungen bereitzustellen.

Bei dem folgenden Setup ersetzt eine zentrale Bridge den Switch. Diese Bridge führt die VLANS von den unterschiedlichen VMs zusammen. Die OPNsense Firewall, welche das Routing übernimmt, ist mit einem Trunk Port mit dem Switch verbunden. Jede VM bildet in diesem Beispiel ein eigenes VLAN mit den Bezeichnung 10, 20 und 30.

Um Netzwerkanpassungen in Proxmox ohne Neustart vorzunehmen ist es sinnvoll "ifupdown2" zu installieren. Das Tutorial hierzu ist nachzulesen unter folgendem Link: https://technium.ch/proxmox-ifupdown2-installieren-tutorial/

1. Hinzufügen einer Bridge

2. Installation von OPNsense als VM
2.1 Download des Installationsimages
2.2 Anlegen einer OPNsense als neue VM
2.3 OPNsense Konfiguration

3. Erstellen einer VM mit dem VLAN-Tag 10

4. Hinzufügen der VLANs 20 und 30

5. Konfiguration der Firewall für die Erreichbarkeit von Außen auf eine VM

1. Hinzufügen einer Bridge

Vor der Installation der OPNsense Firewall richten wir auf unserer Proxmox Zielnode eine Linux Bridge ein. Dazu gehen wir unter "Netzwerk" -> "Erstellen" -> "Linux Bridge" und fügen den Bridgenamen hinzu, in unserem Fall "vmbr99". Zusätzlich setzen wir den Haken bei "VLAN aware". Die restlichen Optionen bleiben unverändert.


2. Installation von OPNsense als VM

2.1 Download des Installationsimages

Für die Installation benötigen wir zunächst das aktuelle Installationsimage, welches wir uns über die Webseite des OPNsense Anbieters herunterladen können. In unserem Falle verwenden wir das DVD Image. Anschließend können wir das Image auf unserem PVE Storage hinzufügen um es anschließend für unsere neue VM nutzen zu können.

2.2 Anlegen einer OPNsense als neue VM

Nun erstellen wir eine neue VM indem wir auf "Erstelle VM" klicken. Bei der Abfrage der Netzwerkoptionen stellen wir sicher, dass wir die Bridge "vmbr0" verwenden. Diese dient nach der Installation als WAN Interface. Alle vorangegangen Optionen können wir je nach verwendeter Hardware anpassen. Lediglich das Setzen unseres Installationsimages unter dem Reiter OS ist vorzunehmen. Nach Erstellen unserer neuen OPNsense VM fügen wir ein zweites Netzwerkinterface hinzu. Dazu wählen wir unsere neue VM aus und unter "Hardware" -> "Hinzufügen" klicken wir auf "Netzwerkkarte". Anschließend wählen wir den Namen der Bridge, welche wir anfangs eingerichtet haben, also "vmbr99". Zudem wählen wir ein VirtIO als Modell aus.


2.3 OPNsense Konfiguration

Sind beide Netzwerkkarten in unser Setup eingefügt starten wir unsere VM. Anschließend durchlaufen wir den Installationsprozess bis wir auf der Konsole angekommen sind. (Die Standard Logindaten für die Installation lauten: installer / opnsense). Ist der Installer durchgelaufen und ein reboot durchgeführt worden, können wir mit der Installation unserer VLANs beginnen. Dazu wählen wir "Assign interfaces" aus und führen folgende Einstellungen durch (an dieser Stelle führen wir exemplarisch die Konfiguration des VLAN10 durch, VLAN20 und VLAN30 installieren wir über die Weboberfläche der OPNsense)

1) Configure VLANS? -> y
2) Enter the parent interface name for the new VLAN: vtnet1

(Das Parent Interface soll in unserem Fall vtnet1 sein, welches das LAN Interface ist. In der PVE Übersicht muss die Netzwerkkarte mit der Bridge vmbr99 verbunden sein)


3) Enter the VLAN tag (1-4094): 10
4) (Enter nothing to finish the VLAN setup)
5) Enter the WAN interface name: vtnet0

Das WAN Interface lautet in unserem Fall vtnet0 und ist mit der Bridge vmbr0 verbunden.

6) Enter the LAN interface name: vtnet1
7) Enter the Optional 1 interface: vtnet1_vlan10

Schreibweise für OPT1 beachten! Anschließend beenden wir die Einrichtung des ersten VLANs.

8) Option 8 auswählen (Shell): pfctl -d eingeben um die Firewallregeln vorübergehend zu deaktivieren und um Zugang für die Konfiguration der OPNsense zu erlangen.

Die weitere Konfiguration verläuft nun mit Hilfe des Wizards auf der Weboberfläche der OPNsense, die wir mit der dem Browser aufrufen können (Login: root / opnsense). Die einzigen Einstellungen, die wir vornehmen müssen sind:

Konfiguration WAN Schnittstelle -> Löschen des Hakens "Blockiere private Netze" und "Blockiere Bogon-Netze"
Konfiguration LAN Schnittstelle -> Vergabe der IP Addresse, etwa 192.168.99.1

Nach dem Abschluss des Wizards begeben wir uns erneut zur Shell der OPNsense und deaktivieren die Firewall mit pfctl -d Um dauerhaft Zugang zur OPNsense Weboberfläche zu erhalten, erstellen wir folgende Regel: "Firewall" -> "Regeln" -> "Fließend" -> "Hinzufügen". Bei der Angabe der Quelle wählen wir "WAN Netzwerk" und verwenden für das Ziel "Diese Firewall". Anschließend Speichern wir die Einstellungen und aktivieren die Änderungen.

Bevor wir mit dem Erstellen der restlichen VLANs fortfahren aktivieren zunächst die weiter oben erstelle OPT1 Schnittstelle. Dazu manövrieren zu "Schnittstellen" -> "OPT1" -> "Schnittstelle aktivieren". Unter "IPv4 Konfigurationstyp" wählen wir "Statisches IPv4". Unter der Option "IPv4 Adresse" setzen wir die IP auf "192.168.110.1/24". Danach speichern wir die Einstellungen und aktivieren die gemachten Änderungen. Nun erstellen wir auf unsere Schnittstelle einen DHCP Server. Dazu gehen wir unter "Dienste" -> "DHCPv4" -> "OPT1" und wählen "Aktiviere den DHCP-Server auf der OPT1-Schnittstelle". Als "Bereich" nutzen wir die IP-Adressen von "192.168.110.20 bis 192.168.110.150". Abschlie0end speichern wir die Einstellungen.

3. Erstellen einer VM mit dem VLAN-Tag 10

Da nun die erste unserer Schnittstellen konfiguriert ist, setzen wir eine neue VM auf, welche wir an die Bridge "vmbr99" hängen. Dazu gehen wir bei unserem Proxmox Host auf "Erstelle VM" und passen folgende Einstellung an: Unter dem Reiter "Netzwerk" stellen wir die "Bridge" auf "vmbr99" und das VLAN Tag auf "10". Nach dem Starten der VM können wir uns mit dem Befehl ip a die Netzwerkeigenschaften anzeigen lassen.

Als Ausgabe erhalten wir etwa folgendes:

inet 192.168.110.20 netmask 255.255.255.0

Um nun eine Internetverbindung herstellen zu können müssen wir unter "Firewall" -> "Regeln" -> "OPT1" folgende Regel hinzufügen. Die Optionen Protokoll, Quelle und Ziel müssen wir auf any bzw. jegliche stellen. Danach speichern wir die Regel und aktivieren die Veränderungen.


4. Hinzufügen der VLANs 20 und 30 zu unseren OPNsense Einstellungen

Um die restlichen beiden VLANs unserer Konfiguration hinzuzufügen gehen wir auf "Schnittstellen" -> "Andere Typen" -> "VLAN" und klicken auf "Hinzufügen". Als übergeordnete Schnittstelle verwenden wir "vtnet1" (welches unsere LAN Schnittstellen ist). Als nächstens setzen wir das VLAN Tag auf 20 und können zusätzlich noch eine Beschreibung hinzufügen. Dann speichern wir die Einstellungen. Unter "Schnittstellen" -> "Zuweisungen" fügen wir unsere soeben erstellte Schnittstellen hinzu. Unsere neue Schnittstelle gliedert sich mit dem Namen OPT2 in die Liste ein. Nun klicken wir auf OPT2 und aktivieren unsere Schnittstelle. Den IPv4 Konfigurationstyp stellen wir auf "Statisches IPv4". Die IP Adresse unserer Schnittstelle setzen wir auf 192.168.120.1/24, welches unser späteres Gateway darstellt. Abschließend speichern wir unsere Eingaben und aktivieren unsere Änderungen. Um nun IP Adressen zu neu hinzugefügten VMs verteilen zu können, aktivieren wir unter "Dienste" -> "DHCPv4" -> "OPT2" den DHCP-Server. Den Bereich zur Adressvergabe setzen wir auf 192.168.120.20 bis 192.168.120.150. Zu guter Letzt speichern wir unsere Einstellungen. Um nun die neuen Einstellungen mit einer neuen VM zu testen gehen wir vor wie zu VLAN 10. Statt VLAN Tag 10 benutzen wir nun VLAN 20. Sind alle Eingaben getätigt, erhalten wir die folgende Übersicht:

5. Konfiguration der Firewall für die Erreichbarkeit von außen auf eine VM

Zunächst installieren wir einen Webserver, zu welchem wir uns später verbinden können. Dazu wählen wir in unserer Proxmox VE eine unserer neunen VM aus, beispielsweise mit der IP 192.168.130.20. Dann verbinden wir uns auf die Shell und installieren mit dem folgenden Befehl einen Apache Webserver:

apt update
apt install apache2

Zur Anpassung des Ports von 80 auf 8080 öffnen wir die Apache Konfigurationsdatei:

nano /etc/apache2/ports.conf

und ändern die Portnummer auf von 80 auf 8080

Nach einem Neustart unseres Apache Webservres werden die Änderungen angenommen. Als letztens folgt die NAT Regel in der OPNsense.
 
Schnittstelle: WAN
TCP/IP Version: IPv4
Protokoll: TCP
Ziel: einzelner Host oder Netzwerk, <IP Adresse der Firewall angeben>
Zielportbereich: anderer, 8080
Ziel-IP-umleiten: 192.168.130.20
Zielport weiterleiten: anderer, 8080

Es gilt darauf zu achten, dass wir beim Erstellen der NAT Regel folgende Option setzen:

"Filter Regel Zuordnung" -> "Erlauben"

Nach derselben Methotik läßt sich bei Bedarf ein ssh Server einrichten. Das Ergebnis unserer Firewwallregeln sieht nach der Konfiguration wie folgt aus:

Einzelnachweise:

https://www.laroberto.com/vlans-with-proxmox-and-pfsense/
https://ubuntu.com/tutorials/install-and-configure-apache#2-installing-apache
https://technium.ch/proxmox-ifupdown2-installieren-tutorial/
https://ubuntu.com/server/docs/service-openssh

Add comment

Submit

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.