itallrounder
Goto Top

Hetzner - Proxmox Installation mit OPNSense

Guten Abend zusammen und allen ein besinnliches und frohes Weihnachten.

Ich kam über die Tage auf den Gedanken mir bei hetzner auf den Gedanken mit einen Server zu ordern und diesen als Proxmox Host einzurichten.
Bis dato bin ich mit "RootServern" bei Netcup unterwegs gewesen oder eigener Hardware als Colocation in Frankfurt.

Der Proxmox Server ist soweit installiert und verrichtet bereits seinen Dienst.
Nun wollte ich gerne einen Reverse Proxy aufsetzen und komme mit meiner einen IP Adresse langsam an die "Grenzen".
Daher habe ich mir kurzerhand eine weitere IP Adresse bestellt, welche bereits von Hetzner bereit gestellt wurde.

Nach dem durchlesen und anschauen von diversen Tutorials und Anleitungen komme ich aber auf keinen grünen Zweig.

Meine aktuelle Netzwerkkonfiguration unter Proxmox sieht wie folgt aus:

cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
        address 144.XX.XX.104/27
        gateway 144.XX.XX.97
        up route add -net 144.XX.XX.96 netmask 255.255.255.224 gw 144.XX.XX.97 dev enp0s31f6
        post-up sysctl -w net.ipv4.ip_forward=1
        post-up iptables -t nat -A PREROUTING -i enp0s31f6 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 10.20.100.1
        post-up iptables -t nat -A PREROUTING -i enp0s31f6 -p udp -j DNAT --to 10.20.100.1
#hw_address 4c:52:62:0e:04:bd
# route 144.XX.XX.96/27 via 144.XX.XX.97

iface enp0s31f6 inet6 static
        address 2a01:XXXX:191:XXXX::2/64
        gateway fe80::1


#Bridge Transfer WAN to OPNSENSE
auto vmbr0
iface vmbr0 inet static
        address 10.20.100.0/31
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up iptables -t nat -A POSTROUTING -s '10.20.100.1/31' -o enp0s31f6 -j MASQUERADE  
        post-down iptables -t nat -D POSTROUTING -s '10.20.100.1/31' -o enp0s31f6 -j MASQUERADE  


#Bridge - Proxmox VM LAN
auto vmbr1
iface vmbr1 inet static
        address 10.20.101.0/24
        ovs_type OVSBridge

Somit konnte ich meine OPNSense bereits mit Internet versorgen und die VM's dahinter haben auch Internetzugriff.

Erläuterungen:
144.XX.XX.104/27 = Dedizierte IPv4 für den Proxmox Node
10.20.100.0/31 = Transfer Netz zwischen Proxmox "WAN" und OPNSense "WAN"
10.20.100.0/31 hat der Proxmox Server erhalten und die 10.20.100.1/31 meine OPNSense auf dem WAN interface.
10.20.101.0/24 = Eigenes Netzwerk, in welchem sich meine VM's befinden.
144.XX.XX.103/32 = Weitere nutzbare IPv4 Adresse von Hetzner mit einer entsprechenden gebundenen MAC-Adresse. (Einzusehen im Hetzner Webinterface)

Problemstellung:
Die zweitere IPv4 Adresse "144.XX.XX.103/32" soll auf meine OPNSense im Bereich "WAN" und dann auf einen Reverse NGINX Port 443 nat'ten.

Ich hatte versucht eine weitere Bridge anzulegen mit folgendem Inhalt:

auto vmbr2
iface vmbr2 inet static
	address 144.XX.XX.104
	netmask 255.255.255.255
	bridge_ports none
	bridge_stp off
	bridge_fd 0
	up ip route add 144.XX.XX103/32 dev vmbr2

Sobald ich das Interface "vmbr2" dann aber einschalte ist mein Proxmox Server nicht mehr Erreichbar....
Ohne Management Modul ist das ganze dann etwas lästig und ich musste bereits den Support bemühen mir eine KVM anzuschließen.

Könnte mir ggf. jemand den korrekten Weg aufzeigen?
Was ich nach wie vor nicht heraus gefunden habe:
Welches Interface muss die "Virtuelle MAC" von Hetzner erhalten? Meiner Meinung nach das "WAN Interface der OPNSense"?

Es geht also wirklich rein darum, die weitere IPv4 Adresse in der OPNSense als Virtual IP hinzuzufügen und z.B für einen Reverse proxy zu verwenden.

Besten Dank und schon einmal allen lesenden einen guten Rutsch in das neue Jahr.

Content-Key: 3520089462

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

Printed on: July 19, 2024 at 10:07 o'clock

Member: p4nd4b33r
p4nd4b33r Dec 26, 2023 updated at 10:28:11 (UTC)
Goto Top
Hi ITAllrounder,

Allgemein richtest du am proxmox Host nur IP Adressen ein, welche direkt den Host erreichbar machen sollen.
Sprich deine Konfiguration für die 144.XXX.XXX.104/27 bleibt auf dem iFace enp0s31f6 bestehen. Allerdings benötigst du weder die WAN Bridge auf vmbr0 noch die dedizierte IP Konfiguration auf vmbr1.
Ein leeres vmbr Interface kann man sich grob als Layer2 Switch vorstellen. Dieser benötigt eben keine eigene IP Konfiguration sondern verbindet mehrere Systeme innerhalb eines Netzes. Die Netzwerkkonfiguration findet hier auch nur an den einzelnen Systeme statt.
Dein internes Netz sollte als Gateway dann die OPNsense final haben!

Zweiter physikalischer Port:
Es sollte eigentlich eine weiteren "physikalischen" Port in deinem Proxmox Node geben für die zweite IP von Hetzner und diesen auf aktiv setzen. (Achtung dieser zweite Port benötigt keine Konfiguration! Dies übernimmt am Ende die OPNsense)
Dann legst du eine neue vmbrX an und bridgest lediglich diesen zweiten Port.
Diesen neuen vmbrX weißt du deiner OPNsense zu und richtest in deiner OPNsense entsprechend die IP und MAC Adresse auf diesem neuen Port ein.

Nur ein physikalischer Port:
Hast du nur den enp0s31f6 dann legst du trotzdem eine neue vmbrX an und bridgest eben diesen Port. (Die IP Konfiguration auf dem enp0s31f6 bleibt bestehen!) Das neue vmbr Interface mapst du dann an deine OPNsense und konfigurierst MAC und IP auf der OPNsense selbst.

Damit solltest du erstmal an deiner OPNsense über diesen Port mit der IP 144.XXX.XXX.103/27 erreichbar sein.

Für alle VMs und LXCs dahinter nutzt du ja bereits vmbr1 und musst der OPNsense eben dieses zuweisen, eine IP vergeben (10.20.101.1/24 zB) und eben allen Systemen dahinter diese IP als Gateway mitgeben. Und durch passende Regeln in deiner OPNsense kannst du dann eben Zugriffe gewähren und verbieten.
Aber ich denke das hast du bereits mit deiner aktuellen Konstellation getan.

Ich hoffe ich konnte dir weiterhelfen.

MfG
p4nd4b33r
Member: ITAllrounder
ITAllrounder Dec 26, 2023 at 11:56:36 (UTC)
Goto Top
Guten Morgen @p4nd4b33r,

vielen Dank für deine Antwort.

Zitat von @p4nd4b33r:

Hi ITAllrounder,

Allgemein richtest du am proxmox Host nur IP Adressen ein, welche direkt den Host erreichbar machen sollen.
Sprich deine Konfiguration für die 144.XXX.XXX.104/27 bleibt auf dem iFace enp0s31f6 bestehen. Allerdings benötigst du weder die WAN Bridge auf vmbr0 noch die dedizierte IP Konfiguration auf vmbr1.
Ein leeres vmbr Interface kann man sich grob als Layer2 Switch vorstellen. Dieser benötigt eben keine eigene IP Konfiguration sondern verbindet mehrere Systeme innerhalb eines Netzes. Die Netzwerkkonfiguration findet hier auch nur an den einzelnen Systeme statt.
Dein internes Netz sollte als Gateway dann die OPNsense final haben!

Das interface vmbr0 sollte dazu dienen, alle Ports der Haupt Adresse an die OPNSense zu leiten.
Ausgenommen davon Port 22 und 8006 für das Proxmox Management.

Das Interface enp0s31f6 stellt die physikalische Schnittstelle des Servers dar.

Zweiter physikalischer Port:
Es sollte eigentlich eine weiteren "physikalischen" Port in deinem Proxmox Node geben für die zweite IP von Hetzner und diesen auf aktiv setzen. (Achtung dieser zweite Port benötigt keine Konfiguration! Dies übernimmt am Ende die OPNsense)
Dann legst du eine neue vmbrX an und bridgest lediglich diesen zweiten Port.
Diesen neuen vmbrX weißt du deiner OPNsense zu und richtest in deiner OPNsense entsprechend die IP und MAC Adresse auf diesem neuen Port ein.

Mein Server ist nur mit einem Link bei Hetzner angebunden.

Nur ein physikalischer Port:
Hast du nur den enp0s31f6 dann legst du trotzdem eine neue vmbrX an und bridgest eben diesen Port. (Die IP Konfiguration auf dem enp0s31f6 bleibt bestehen!) Das neue vmbr Interface mapst du dann an deine OPNsense und konfigurierst MAC und IP auf der OPNsense selbst.

Oben erläutert. Gibt nur einen Port...

Damit solltest du erstmal an deiner OPNsense über diesen Port mit der IP 144.XXX.XXX.103/27 erreichbar sein.

Für alle VMs und LXCs dahinter nutzt du ja bereits vmbr1 und musst der OPNsense eben dieses zuweisen, eine IP vergeben (10.20.101.1/24 zB) und eben allen Systemen dahinter diese IP als Gateway mitgeben. Und durch passende Regeln in deiner OPNsense kannst du dann eben Zugriffe gewähren und verbieten.
Aber ich denke das hast du bereits mit deiner aktuellen Konstellation getan.

Hättest du eine Beispielkonfiguration für /etc/network/interfaces zur Hand?
In meinem Ausgangspost hatte ich ja die Config für mein Vorhaben bereits erwähnt

auto vmbr2
iface vmbr2 inet static
	address 144.XX.XX.104
	netmask 255.255.255.255
	bridge_ports none
	bridge_stp off
	bridge_fd 0
	up ip route add 144.XX.XX103/32 dev vmbr2

Sobald ich die Konfig aber speichere und aktiviere ist mein Proxmox Host Offline.
Die VMBR2 würde ich aber eigentlich dann als weiteres Interface an die OPNSense geben und dem Interface die entsprechende MAC Adresse von Hetzner zzgl. der zweiten gebuchten IPv4 Adresse.

Ich hoffe ich konnte dir weiterhelfen.

Schon einmal die ersten Denkanstöße face-smile Vielen Dank dafür.
MfG
p4nd4b33r
Member: p4nd4b33r
p4nd4b33r Dec 26, 2023 updated at 16:47:31 (UTC)
Goto Top
Hi,

Das interface vmbr0 sollte dazu dienen, alle Ports der Haupt Adresse an die OPNSense zu leiten.
Ausgenommen davon Port 22 und 8006 für das Proxmox Management.

Wozu genau?
Also das ist deine aktuelle Konfiguration, das verstehe ich, aber wozu benötigst du das genau?
Du kannst natürlich auch beide Adresse für verschiedene Dienste nutzen, aber Ziel soll es doch bestimmt sein, dass am Ende alles über die OPNsense und den nachgelagerten NGINX als ReversProxy läuft. (Bei mir auch so!)
Meine Empfehlung wäre, die 104er IP ausschließlich für den Host zu verwenden, und den restlichen Traffic über die 103er IP zu schicken. (Oder eben umgedreht)

Ich will ja auf dem Proxmox host so wenig wie möglich Konfigurationen setzen. Das Management der Client-Systeme übernimmt bei mir die pfsense VM.

Das Interface enp0s31f6 stellt die physikalische Schnittstelle des Servers dar.
[...}
Oben erläutert. Gibt nur einen Port...

Dann entsprechend die Konfiguration so anpassen, wie ich es beschrieben hatte.

Hättest du eine Beispielkonfiguration für /etc/network/interfaces zur Hand?
In meinem Ausgangspost hatte ich ja die Config für mein Vorhaben bereits erwähnt

Versuche es mal damit, und wie bereits erwähnt, die MAC und IP in der OPNsense an dem entsprechenden Interface konfigurieren. Weiter unten kommt noch ein Screenshot allerdings ist die Oberfläche von PFsense, aber sollte reichen

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
        address 144.XX.XX.104/27
        gateway 144.XX.XX.97
        up route add -net 144.XX.XX.96 netmask 255.255.255.224 gw 144.XX.XX.97 dev enp0s31f6
        post-up sysctl -w net.ipv4.ip_forward=1
        post-up iptables -t nat -A PREROUTING -i enp0s31f6 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 10.20.100.1
        post-up iptables -t nat -A PREROUTING -i enp0s31f6 -p udp -j DNAT --to 10.20.100.1
#hw_address 4c:52:62:0e:04:bd
# route 144.XX.XX.96/27 via 144.XX.XX.97

iface enp0s31f6 inet6 static
        address 2a01:XXXX:191:XXXX::2/64
        gateway fe80::1



auto vmbr0
iface vmbr0 inet static
        address 10.20.100.0/31
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up iptables -t nat -A POSTROUTING -s '10.20.100.1/31' -o enp0s31f6 -j MASQUERADE    
        post-down iptables -t nat -D POSTROUTING -s '10.20.100.1/31' -o enp0s31f6 -j MASQUERADE    
#Bridge Transfer WAN to OPNSENSE


auto vmbr1
iface vmbr1 inet static
        address 10.20.101.0/24
        ovs_type OVSBridge
#Bridge - Proxmox VM LAN		


auto vmbr2
iface vmbr2 inet manual
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0
#Bridge - second Hetzner IP

beispielconfig
Habe noch gesehen, dass bei meinem Bild das gateway fehlt. Das musst du dann entsprechend noch in der OPNsense konfigurieren analog zu den Vorgaben von Hetzner. Also die 144.XXX.XXX.97/27.

Viel Erfolg

Bin erstmal unterwegs, freue mich aber über ein Update, ob das funktioniert.
Wenn ja, kannst du wie gesagt überlegen, ob du evtl. die erste Verbindung anders benutzt. Aber erstmal so testen, bevor du dich wieder aussperrst.

MfG
p4nd4b33r
Member: ITAllrounder
ITAllrounder Dec 26, 2023 at 18:47:12 (UTC)
Goto Top
Nabend,

also ich habe nun noch einmal folgende Konfiguration ausprobiert:

/etc/network/interfaces

auto vmbr2
iface vmbr2 inet manual
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0
#Bridge - second Hetzner IP

OPNSense:
Interface IP: 144.XX.XX.103/27 als auch /32
MAC Adresse des Interface auf die von Hetzner angepasst

Leider war darüber keine Kommunikation möglich.
Also habe ich kurzer Hand eine PFSense aufgesetzt und die Konfig soweit angepasst, dass der Proxmox Node die "Initial Konfig" von Hetzner inne hält.
Dann eine Bridge angelegt für das externe "Netzwerk" und eine OVS Brdige für das VM LAN.
Nach Neustart des Hosts (zum übernehmen der Änderungen in /etc/network/interfaces) kam dieser mal wieder nicht hoch.

Ich scheitere also nach wie vor an dieser ver** weiteren IP Adresse.
Werde Sie wohl wieder kündigen und einfach mit der Hauptadresse arbeiten, als auch über einen Netcup Root Server per Wireguard auf den Reverse Proxy zugreifen face-smile
Problem zwar nicht gelöst aber umgangen.
Member: p4nd4b33r
p4nd4b33r Dec 26, 2023 at 18:54:44 (UTC)
Goto Top
OPNSense:
Interface IP: 144.XX.XX.103/27 als auch /32
MAC Adresse des Interface auf die von Hetzner angepasst

Leider war darüber keine Kommunikation möglich.

Hast du auch das gateway in der OPNsense angelegt?
Sonst können die Pakete nicht entsprechend geroutet werden!
Member: ITAllrounder
ITAllrounder Dec 26, 2023 at 18:58:08 (UTC)
Goto Top
Zitat von @p4nd4b33r:

OPNSense:
Interface IP: 144.XX.XX.103/27 als auch /32
MAC Adresse des Interface auf die von Hetzner angepasst

Leider war darüber keine Kommunikation möglich.

Hast du auch das gateway in der OPNsense angelegt?
Sonst können die Pakete nicht entsprechend geroutet werden!


Ja das Gateway wurde mit der IP Adresse "144.XX.XX.97" hinzugefügt.
Das führte zu keinem Erfolg...
Nachdem ich das Netzwerk mit der VMBR0 (10.20.100.0/31) entfernt habe war ein Traceroute nur bis zum Gateway möglich und danach kamen lediglich Timeouts.... face-sad
Member: p4nd4b33r
Solution p4nd4b33r Dec 26, 2023 at 20:51:00 (UTC)
Goto Top
Ja das Gateway wurde mit der IP Adresse "144.XX.XX.97" hinzugefügt.
Das führte zu keinem Erfolg...
Nachdem ich das Netzwerk mit der VMBR0 (10.20.100.0/31) entfernt habe war ein Traceroute nur bis zum Gateway möglich und danach kamen lediglich Timeouts.... face-sad

Habe gerade nochmal nachgeschaut
Der Fehler war noch folgender:
Die IP Konfiguration von dem physischen Interface auf die vmbr2 umziehen und anpassen. Der Rest sollte dann aber funktionieren.
Ansonsten hat jemand HIER genau das selbe Thema.
Also sollte alles mit den angepassten Konfigs funktionieren.

Viel Erfolg
Member: iptoux6
iptoux6 Dec 27, 2023 at 14:38:12 (UTC)
Goto Top
Ich hatte damals ebenfalls Probleme mein Setup einzurichten.

Habe es nach folgender Anleitung lösen können, habe nun einen dedi root mit 1x Public IP inc. Opensense und Proxmox.

https://schroederdennis.de/allgemein/proxmox-auf-rootserver-mit-nur-1-pu ...

Credits an Ersteller des Blogbeitrages.