Post

Proxmox VMs isolieren

Mit der Hilfe von einer Linux Bridge Option können VMs voneinander isoliert werden.

Einleitung

Auf meinem Proxmox Server gibt es mehrere VMs die ich in der Zone DMZ habe.
Für diese Zone habe ich auf dem Proxmox Host die Linux Bridge vmbr4010angelegt.
Per Default kann jede VM in der dieser Bridge ohne Gateway miteinander kommunizieren.
Um diese Kommunikation zu unterbinden gibt es die Linux Bridge Option BR_ISOLATED

Proxmox Version: 8.2.7

Überblick

Overview of bridge isolation Erstellt von B. Jesuiter©

Bridge Interfaces

Zeigt alle Bridges und deren Interfaces an:

1
  brctl show

Hier meine Bridge vmbr4010 mit den Interfaces von tap111i0 = VM111 und tap420i0 = VM420, diese Interfaces sollen nicht miteinander kommunizieren dürfen:

1
2
3
4
5
6
7
  brctl show vmbr4010
  
  bridge name     bridge id               STP enabled     interfaces
  vmbr4010        8000.1c697a69f346       no              eno1.4010
                                                          fwpr401p0
                                                          tap111i0
                                                          tap420i0

VM Interfaces isolieren

Zum unterbinden der Kommunikation muss die Option auf den VM Interfaces gesetzt werden:

1
2
  bridge link set dev tap111i0 isolated on
  bridge link set dev tap420i0 isolated on

Damit lässt sich prüfen ob die Option isolated on auf dem VM Interface aktiv ist:

1
2
3
  bridge -d link show | grep -A1 "tap420i0"
  1877: tap420i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 master vmbr4010 state forwarding priority 32 cost 2
      hairpin off guard off root_block off fastleave off learning on flood on mcast_flood on bcast_flood on mcast_router 1 mcast_to_unicast off neigh_suppress off vlan_tunnel off isolated on locked off

Funktionstest

Ping Test mit den VMs:

1
2
3
4
5
6
7
8
9
10
11
12
13
# isolated off
VM420:~$ ping VM111
PING VM111 (VM111) 56(84) bytes of data.
64 bytes from VM111: icmp_seq=1 ttl=64 time=0.492 ms
64 bytes from VM111: icmp_seq=2 ttl=64 time=0.457 ms
64 bytes from VM111: icmp_seq=3 ttl=64 time=0.305 ms

# isolated on
VM420:~$ ping VM111
PING VM111 (VM111) 56(84) bytes of data.
^C
--- VM111 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2087ms

Zusammenfassung

Die Option BR_ISOLATED eignet sich sehr gut um in einer DMZ die VMs auf dem gleichen Host zu isolieren, so dass diese nur noch mit dem Gateway kommunizieren können. Sollte eine VM kompromittiert werden, kann diese innerhalb der Bridge auf keine VM zugreifen.

Die Option ist im Proxmox WebUI noch nicht verfügbar, es gibt aber bereits einen Patch der leider noch nicht gemerged wurde.

Patched Proxmox Web UI Vorschau des WebUIs, erstellt von B. Jesuiter©

Weitere nützliche Infos die ich zu diesem Thema gefunden habe:

This post is licensed under CC BY 4.0 by the author.