Hetzner - Proxmox mit Pfsense als Firwall

LinuTuris

Active Member
Nov 4, 2017
4
0
41
24
Hallo Community,
ich habe einen Rootserver angemietet und auf diesem Proxmox installiert.
Nun möchte ich meine VMs hinter einer Firewall-VM (Pfsense) betreiben.

Doch leider komme ich mit der Netzwerkkonfiguration nicht klar.

Daten:
Haupt-IP: 144.76.xxx.122
Gateway: 144.76.xxx.97
SubNetzmaske: 255.255.255.224

Zusatz-IP mit MAC-Adresse:
IP: 144.76.xxx.113
Gateway: 144.76.xxx.97
SubNetzmaske: 255.255.255.224

In der /etc/betwork/interfaces des Hosts steht folgendes drin:
Code:
### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp3s0
iface enp3s0 inet manual
#iface enp3s0 inet static
 # address 144.76.xxx.122
 # netmask 255.255.255.224
 # gateway 144.76.xxx.97
  # route 144.76.xxx.96/27 via 144.76.xxx.97
 # up route add -net 144.76.xxx.96 netmask 255.255.255.224 gw 144.76.xxx.97 dev enp3s0

iface enp3s0 inet6 static
  address 2a01:4f8:200:7057::2
  netmask 64
  gateway fe80::1

auto vmbr0
iface vmbr0 inet static
 address 144.76.xxx.122
 netmask 255.255.255.224
 gateway 144.76.xxx.97
 pointopoint 144.76.xxx.97
 bridge_ports enp3s0
 bridge_stp off
 bridge_fd 0
 up route add -net 144.76.xxx.0 netmask 255.255.255.224 gw 144.76.xxx.97 vmbr0
 up ip route add 144.76.xxx.113/32 dev vmbr0

auto vmbr1
iface vmbr1 inet static
# address 192.168.175.254
# netmask 255.255.255.0
 #gateway 192.168.175.1
 bridge_ports none
 bridge_stp off
 bridge_fd 0

Meine Vorstellung war:
vmbr0 als WAN in der Pfsense und vmbr1 als LAN-Interface in der Pfsense.
In der Pfsense habe ich das auch so eingerichtet, jedoch kann ich von der
Pfsense-VM aus keine Pings ins Internet ausführen. Es erscheint immer
ein resolve Fehler.


Vielen Dank im voraus.


Mit freundlichen Grüßen
LinuTuris
 
Hallo LinuTuris,

hast du das IP-Forwarding eingeschaltet?
Code:
sysctl -w net.ipv4.ip_forward=1

Am besten besten kannst du dich an diese Konfiguration orientieren: https://forum.proxmox.com/threads/hetzner-routed-setup.37869/

Welche Netzwerkkarten hat deine PFSense?
Falls das Virtio-Karten sind, musst du noch die Virtio-Support aktivieren (in der VM). https:\\doc.pfsense.org/index.php/VirtIO_Driver_Support

VG Lars
 
Hallo,

es hat mit folgender Konfig geklappt:

Code:
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp4s0
iface enp4s0 inet manual
  pointopoint 46.4.xx.x3
  #up route add -net 46.4.xx.x2 netmask 255.255.255.224 gw 46.4.xx.x3 dev enp4s0

iface enp4s0 inet6 static
  address 2a01:4f8:140:7123::2
  netmask 64
  gateway fe80::1
 
auto vmbr0
iface vmbr0 inet static
 address 46.4.xx.x4
 netmask 255.255.255.224
 gateway 46.4.xx.x3
 bridge_ports enp4s0
 bridge_stp off
 bridge_fd 0
 up ip route add 46.4.xx.x7/32 dev vmbr0
 up ip route add 46.4.xx.x8/32 dev vmbr0

auto vmbr1
iface vmbr1 inet static
 address 192.168.175.254
 netmask 255.255.255.0
 bridge_ports none
 bridge_stp off
 bridge_fd 0

die Firewall VM für die VMs läuft nun.
Als Firewall des Hosts wollte ich Shorewall verwenden. Jedoch gelingt mir die Konfiguation nicht. Ich schaffe es nicht, dass Shorewall nur die Ports öffnet, die ich wirklich benötige (in /etc/shorewall/rules eingetragen habe). Ich habe enp4s0 nicht als Zone in /etc/shorewall/zones eingetragen sondern:
net vmbr0
loc vmbr1

Ich bin am verzweifeln. Hat jemand ein gutes HowTo oder eine Idee?

Danke im Voraus

Mit freundlichen Grüßen
LinuTuris
 
Last edited:
Hallo LinuTuris,

Ich würde für den PVE Host die eingebaute Firewall verwenden. Am besten installierst du dir einen Testserver (lokal) und nicht im Internet. Da besteht die Möglichkeit, sich selbst auszusperren. Sollte das der Fall sein, kannst du nur noch über die physikalische Konsole die Firewall deaktivieren.
https://pve.proxmox.com/wiki/Firewall

Die PVE Firewall ist über das Webinterface konfigurierbar.

VG Lars
 
hier ist das ding.

wenn du bridged arbeitet iptables immer als trasnparente firewall mit.
das ist eine sehr sehr nette sache mit deiner config jedoch komplizierst du dinge ins unendliche :))

egal ob du nun die eingebaute firewall nimmst oder iptables direkt, du darfst nie vergessen das nun min 2 firewalls laufen.
einmal wird die bridge durch die hostfirewall gefiltert dann nochmal am virtuellen web zwischen vmbr 1 und 0 mit pfsense.

dummerweise sind vmbr1 ports gleichzeitig nun host ports. im prinzip müstest du fast alles aufmachen weil du sonst für jeden port 2 accepts schlaten must (einmal am host einmal pfsense)

was die promoxfirewall betrifft so ist sie leider doch arg unübersichtlich. freilich für 3-4 rules ists ok
bei einer richtigen konfig aber wirds wahnsinn, die fehlerwuote wird extrem hoch.

da besteht noch die möglichkeit das ganze mit firewall-builder abzubilden
die entwicklung ist zwar eingestellt für ipv4 aber wirds wohl für imemr brauchbar bleiben.


firewallbuilder ist ein visuelelr rulebuilder der das ganze dann auch noch an die firewalls verteilen kann. sprich du kanns xbeliebig viele in einem file managed und gleicheztig verteilen.
für iptables das beste was mir jemals untergekommen ist und zudem opensource

ist übrigens von einem der google netzbuilder verfasst worden und da ist sehr viel brauchbares für die praxis drinnen.


also wenns nur wenig rules sind nimm promox, ansonsten empfehl ich dir dringen fwbuilder
 
Hallo bofh,

wie könnte ich denn meine Netzwerkkonfig (also /etc/network/interfaces) anpassen, dass ich enp4s0 als net / vmr0 als wan für die pfsense / vmbr1 als LAN für die Pfsense verwenden kann. Dann sollte doch zwischen vmbr0 und 1 nur noch die pfsense filtern oder? Die Shorewall müsste dann mit drei Interfaces konfiguriert oder eben fwbuilder.

Also enp4s0 soll über die Haupt-IP des Servers erreichbar sein und die PfSense über die erste zusätzliche IP. Die zweite zusätzliche IP ist für einen Mailserver gedacht.

Braucht fwbuilder eine Grafische Desktopoberfläche?

Vielen Dank.

Mit freundlichen Grüßen
LinuTuris
 
es gibt viele wege nach rom

in einem fall machst du vmbr0 zur absoluten bridge
d.h. alles was auf vmbr0 läuft braucht eine öffentliche ip und du must die mac adresse der vm bei hetzer im portal eintragen sonst ärgerst du nur deren junipers

vorteil du hast eine klare trennung zwischen host und deiner pfsense
vorteil 2 etwas einfachere config
nachteil du verbräts eine ganze ip für nix.


in dem fall must du alle ports des hosts nach aussen dicht machen und nur von deinen öffentlichen ips zulassen
nachteil das ist nicht wasserdicht gegen spoofing.


ich rate dir zu einer anderen config

mach eth0 zu deinem inet interface und weise im alle adressen zu die du ahst

mch 2 brdiges vmbr0 und vmbr1

zb
eth0 46.4.xx.x2
vmbr0 10.10.1.0/32
vmbr1 10.10.10.0/32

VM - pfsense
interface WAN - 10.10.1.20-30 - vmbr0
- du brauchst eine 10er adresse am wan für jede öffentliche ip fürs nat
interface lan - 10.10.10.20 - vmbr1

auf dem host nun iptables sowas wie
allow from any from any an destination 10.10.1.20-30
allow from 10.10.x.x to hauptip port 8006 bzw
allow from 10.10.x.x. to 10.10.1.1
deny den rest
und
allow from 10.10.1.20-30 to any any

und natürlich noch snat
je ips alle ports (ausgenommen promox port auf hauptip) - forward an 10.10.1.20 / 10.10.1.21,.... etc

dann hat pfsense am alle öffentlichen ips genatted am wan port und kann von dort weiter natten auf die vms
keine vm bekommt eine öffentliche ip



bei deiner config - weise alle ips bis auf die hauptip pfsense zu
trag das auch im portal ein
natte dann an pfsense - aber eine ip ist dann weg
alle vms haben erst recht interne ips und brauchen nat


dritte variante
wie bei 2 pfsense bekommt das 5er subnet plsu eine 2te ip
and routed das subnet an die vms auf vmbr1
verlierst 2 ips



wenn du nur eine ip hast bleibt dir gar nix anderes übrig als meine lösung zu fahren


firewallbuilder braucht keine gui - firewall builder IST die gui für netfilter bzw iptables.
fwbuilder generiert dir die regelns und macht dir die startupscripts, lädt das ganze auch für dich per ssh hoch
bequemer gehts nicht :))
 
Hallo bofh,
ich habe insgesamt drei ips.
Meine Überlegung war
- Host die Haupt-IP
- vmbr0 (pfsense) erste zusatz IP
- vmbr1 interne Lan-IPs (192.168.168.175.x)
Die zweite Zusatz IP per NAT über die Pfsense auf die MailServer VM

Mit freundlichen Grüßen
LinuTuris
 
in dem fall machst das bridged setup
deine config wäre routed das willst du nicht ernsthaft

im hetzenr wiki steht eh die config die wäre sowas wie

Code:
# remove or disable configuration for eth0
#auto eth0
#iface eth0 inet static
#
auto  br0
iface br0 inet static
 address (Main IP)
 netmask (like eth0, e.g: 255.255.255.254)
 gateway (same as that for the main IP)
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12

so was passiert hier
man verwendet nicht mehr eth0 (oder wie auch immer das device heist) sondern das virtuelle device vmbr0 und bindet das physische device ans virtuelle.
eth0 bekommt somit keine physische adresse, nciht notwendig, es ist nur noch slave fürs virtuelle

nun bekommt pfsense die 2 interfaces, vmbr0 und 1.
die mac von vmbr0 muss nun beimi hetzner bei allen ips eingetragen werden auf die es antworten soll

am host selber reicht dann einfache iptables für die host ip selbst

2 gedanken dazu
1. man sollte den hsot komplett dich machen und zugang nur über vpn erlauben
man könnte das über die pf sense spielen allerdings verliert man zugang zum host wenn die vm nciht läuft

das führt uns zu gedanken 2
warum das ganze eigentlich?

wenn kein special pupose da ist macht das nicht so richtig sinn.
pf sense ist als reine firewall ganz erlich eher suboptimal
durch seine friendly rules ist es nicht wirklich gut konfigurierbar. sie macht sinn bei einer hardwarefirewall weils gleicheztig eine gemütliche oberfläche für den ganzen host ist und eben nebenfunktionen wie vlans, vpns dhcp server etc erfüllt
als virtuelles teil aber ist etwas redundant und kann kaum eine aufgabe echt optimal

was halt sher unintuitiv ist das alle interfaces als inbound gelten.
das wird zum problem mit mehreren interfaces
zb du hast ein interface für server zwei fürs lan und ein wan.
dann must du im lan interface festlegen was lan nach server darf und dann nochmal was lan2 an server darf
anstelle vom natürlichen erlaube xxx von lan yyy von lan2 block rest im serverinterface

auch die vpn funktion ist in dem fall für dich praktisch wertlos.
läuft die vm nicht ist vpn weg, serverupgrades sind so damit nicht möglich
einzig das data flow monitoring etc ist ganz net wenn auch noch lang nicht ausgereift oder am level von prof. lösungen.


in jedem fall würd ich dir zu einem 2ten openvpn server am host raten und dort den port aufmachen allein für die wartung
die host firewall config nimm wie gesagt firewall builder
die lernkurve sollte nicht zu hoch sein und die möglichkeiten damit sind sehr umfangreich
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!