Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Proxmox VE Installieren und Konfigurieren

profile picture
Author
Hetzner Online
Published
2021-09-12
Time to read
7 minutes reading time

Einführung

Proxmox VE ist eine Open-Source Virtualisierungsplattform mit Unterstützung für KVM und (ab Version 4.0) Linux Containers (LXC). Weiterhin gibt es ab Proxmox 4.0 eine volle Unterstützung für IPv6. Für weitere Informationen bezüglich den Neuerungen, besuchen Sie bitte die offizielle Roadmap im Proxmox VE-Wiki.

Die Einrichtung sollte in der Regel unkompliziert verlaufen, da LXC bereits einiges an Vorarbeit leistet und nicht mehr sonderlich viel zusätzlichen Konfigurationsaufwand benötigt.

Achtung: Ab Version 4.0 wurde die Unterstützung für OpenVZ entfernt und völlig gegen LXC ersetzt. Bitte beachten Sie dies, bevor Sie ein Upgrade durchführen! Mehr Informationen zur Konvertierung der OpenVZ-Container zu LXC, können Sie dem Proxmox Wiki entnehmen: Convert OpenVZ to LXC

Vor der Installation

Vorab einige Anregungen bzw. Ratschläge, bevor mit der Einrichtung der Umgebung begonnen wird:

  • Werden nur Linux-Maschinen verwendet werden? Dann wäre unter Umständen LXC ausreichend.
  • Soll LXC oder KVM verwendet werden? Beide bieten Vor- sowohl als auch Nachteile. Eine bedachte Entscheidung und gute Recherche kann hierbei für weniger Arbeit/Ärger in der Zukunft sorgen.
  • LXC ist etwas performanter, unterstützt dafür aber auch nur unixoide Betriebssysteme und eine Migrierung in andere Formate wie z.B. zu KVM/VMware ESXi ist aufwendiger.
  • KVM ist zwar nicht so performant wie OpenVZ/LXC, bietet dafür jedoch eine komplette Hardwarevirtualisierung und ermöglicht das Betreiben jedes der gängigsten Betriebssysteme (auch Windows). Eine Konvertierung der virtuellen Festplatten in Formate wie VMDK ist hierbei einfacher.

Schritt 1 - Installation

Schritt 1.1 - Grundinstallation auf einem Hetzner Server

Den Server in das Rescue-System booten. Dort installimage aufrufen und das gewünschte Debian-System auswählen und installieren.

Um einen möglichst stabilen Betrieb zu ermöglichen empfiehlt es sich die geeignete Debian-Version zu der dazupassenden Proxmox-Version einzusetzen, welche auch Verwendung in den offiziellen vorgefertigten Installationsmedien finden:

  • Seit Proxmox 4.0: Debian 8 (jessie)
  • Seit Proxmox 5.0: Debian 9 (stretch)
  • Seit Proxmox 6.0: Debian 10 (buster)

Nach Wunsch RAID-Level, Partitionierung und Hostnamen in der Konfiguration anpassen. Speichern und nach Abschluss der Installation neustarten.

Schritt 1.2 - APT Sources (/etc/apt/sources.list) anpassen

Als nächstes müssen die APT-Sources angepasst werden: echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

Key hinzufügen: curl -#o /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg

Nun müssen noch die Pakete aktualisiert werden:

apt update          # Paketlisten aktualisieren
apt upgrade         # Alle Pakete auf den aktuellsten Stand bringen
apt dist-upgrade    # Debian auf den aktuellsten Stand bringen

Da Proxmox eigene Firmware mitbringt, sollten zunächst die vorhandenen Firmwarepakete deinstalliert werden: apt purge firmware-bnx2x firmware-realtek firmware-linux-free

Anschließend kann Proxmox installiert werden: apt install proxmox-ve

Nach einem Neustart sollte der Proxmox-Kernel geladen sein:

# uname -rv
5.4.103-1-pve #1 SMP PVE 5.4.103-1 (Sun, 07 Mar 2021 15:55:09 +0100)

Schritt 1.3 - Kernel Modul laden

Prüfen Sie nun mit dem Befehl

lsmod | grep kvm

ob das Modul kvm geladen wurde. Sollten die Kernel Module nicht geladen worden sein, dann können Sie diesen Schritt manuell nachholen.

Für Intel Prozessoren:

modprobe kvm
modprobe kvm_intel

Für AMD-Prozessoren:

modprobe kvm
modprobe kvm_amd

Beachten Sie: Die Kernel-Module werden für die KVM Hardware-Virtualisierung benötigt. Sollten diese nicht vorhanden sein, können keine KVM-Gäste gestartet werden.

Schritt 2 - Netzkonfiguration

Zunächst ist es wichtig, zu entscheiden, welche Virtualisierungslösung (LXC und/oder KVM) und welche Variante (bridged/routed) verwendet werden soll.

LXC (Linux Containers)
  • Vorteile:
    • leichtgewichtig, schnell, geringerer RAM Bedarf.
  • Nachteile:
    • Es wird der Kernel des Hostsystems verwendet, nur Linux-Distributionen lassen sich nutzen.
KVM (Kernel-Based Virtual Machine)
  • Vorteile:
    • Nahezu beliebige Betriebssysteme lassen sich installieren.
  • Nachteile:
    • Höherer Ressourcenverbrauch, da die VMs Ihren eigenen Kernel nutzen.

Routed

  • Vorteile:

    • Sowohl Einzel-IP-Adressen, als auch IP-Adressen aus einem zusätzlichen Subnetz können ohne weiteres in allen VMs genutzt werden.
  • Nachteile:

    • Bei IP-Adressen aus verschiedenen Netzen ist ein Pointopoint-Setup erforderlich.

Bridged

  • Vorteile:

    • Das Host-System ist transparent und nicht Teil der Route.
    • VMs können direkt mit dem Gateway des eigenen IP-Netzes kommunizieren.
  • Nachteile:

    • VMs dürfen nur mittels der MAC-Adresse kommunizieren, die der jeweiligen IP-Adresse zugeordnet ist. Diese müssen über den Hetzner Robot beantragt werden.
    • IP-Adressen aus zusätzlichen Subnetzen sind nur auf dem Host-System oder einer einzelnen VM mit einer Einzel-IP (sofern das Subnetz auf diese geroutet ist) nutzbar (gilt auch für IPv6)

Bei einem Routed Setup wird die vmbr0 nicht mit dem physischen Interface verbunden. Ebenso muß das IP-Forwarding auf dem Hostsystem aktiviert werden. Dies kann über /etc/sysctl.conf beim Booten automatisch geschehen. (Bitte beachten Sie, daß bei der Hetzner-Standardinstallation das Forwarding deaktiviert ist. Die Einstellung finden Sie entweder in /etc/sysctl.conf oder in /etc/sysctl.d/99-hetzner.conf)

sysctl -w net.ipv4.ip_forward=1

Für IPv6 muss noch analog IPv6 Forwarding aktiviert werden. Dies ist ebenso in der Hetzner-Standardinstallation vorhanden und muss nur noch aktiviert werden.

sysctl -w net.ipv6.conf.all.forwarding=1

Die virtuellen Maschinen können nach einer erfolgreichen Installation unter https://server-IP:8006 verwaltet werden.

Netzwerkkonfiguration Hostsystem Routed

Bei der Verwendung eines Routed-Setups ist es nötig die Route zu einer virtuellen Maschine manuell hinzuzufügen. Außerdem müssen eventuell zugewiesene virtuelle MAC-Adressen entfernt werden. Da eine Host-Route gesetzt wird, sind auch IP-Adressen aus anderen Subnetzen problemlos möglich. Also zum Beispiel:

# /etc/network/interfaces
### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: enp1s0
auto enp1s0
iface enp1s0 inet static
  address <Haupt-IP>
  netmask 255.255.255.255
  pointopoint <Gateway-IP>
  gateway <Gateway-IP>

iface enp1s0 inet6 static
  address <Adresse aus dem IPv6-Subnetz> #z.B. 2001:db8::2
  netmask 128
  gateway fe80::1
  up sysctl -p

# für Einzel-IPs
auto vmbr0
iface vmbr0 inet static
  address <Haupt-IP>
  netmask 255.255.255.255
  bridge_ports none
  bridge_stp off
  bridge_fd 0
  up ip route add <erste Zusatz-IP>/32 dev vmbr0
  up ip route add <zweite Zusatz-IP>/32 dev vmbr0

iface vmbr0 inet6 static
  address <Adresse aus dem IPv6-Subnetz>
  #z.B. 2001:db8::3, sollte nicht die selbe wie auf enp1s0/eth0 sein
  netmask 64
  up ip -6 route add 2001:db8::/64 dev vmbr0

# für ein zusätzliches IPv4 Subnet
auto vmbr1
iface vmbr1 inet static
  address <eine nutzbare Subnetz-IP>
  netmask <Netzmaske des Subnetzes>
  bridge_ports none
  bridge_stp off
  bridge_fd 0

Netzwerkkonfiguration Gastsystem Routed

Als Gateway wird immer die IP der Bridge im Hostsystems genutzt, d.h. für Einzel-IPs die Haupt-IP, für Subnetze die im Hostsystem konfigurierte IP aus dem Subnetz.

# /etc/network/interfaces
### Beispiel für Einzel-IP aus fremden Subnetz
# Loopback device:
auto lo
iface lo inet loopback

# device: ens18
auto ens18
iface ens18 inet static
  address <Zusatz-IP>
  netmask 255.255.255.255
  pointopoint <Haupt-IP>
  gateway <Haupt-IP>

iface ens18 inet6 static
  address <Adresse aus dem IPv6-Subnetz> # z.B. 2001:db8::f001
  netmask 64
  gateway <IPv6-Adresse vmbr0> # z.B. 2001:db8::3

# /etc/network/interfaces
### Beispiel für Subnetz
# Loopback device:
auto lo
iface lo inet loopback

# device: ens18
auto  ens18
iface ens18 inet static
  address <Nutzbare IP aus dem Subnetz>
  netmask <Netzmaske des Subnetzes>
  gateway <Im Hostsystem konfigurierte IP aus dem Subnetz>

iface ens18 inet6 static
  address <Adresse aus dem IPv6-Subnetz> # z.B. 2001:db8::f001
  netmask 64
  gateway <IPv6-Adresse vmbr0> # z.B. 2001:db8::3

Netzwerkkonfiguration Hostsystem Bridged

Bei der Verwendung des Bridge-Modus ist es UNBEDINGT nötig vorher virtuelle MAC-Adressen für die Einzel-IPs zu beantragen. Die Konfiguration von Subnetzen ist analog.

# /etc/network/interfaces
### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback

iface enp1s0 inet manual

auto vmbr0
iface vmbr0 inet static
  address <Haupt-IP>
  hwaddress <aa:bb:cc:dd:ee> # MAC Addresse der NIC, seit proxmox 7.0 nötig
  netmask 255.255.255.255
  pointopoint <Gateway-IP>
  gateway <Gateway-IP>
  bridge_ports enp1s0
  bridge_stp off
  bridge_fd 1

# für ein Subnet
auto vmbr1
iface vmbr1 inet static
  address <eine nutzbare Subnetz-IP>
  netmask <Netzmaske des Subnetzes>
  bridge_ports none
  bridge_stp off
  bridge_fd 0

Netzwerkkonfiguration Gastsystem Bridged

Als Gateway für Einzeln-IPs wird das Gateway des Hostsystems oder der zugewiesenen IP genutzt. Für Subnetze erfolgt die Konfiguration identisch zum Routed-Setup.

# /etc/network/interfaces
# Loopback device:
auto lo
iface lo inet loopback

# device: ens18
auto ens18
iface ens18 inet static
  address <Zusatz-IP>
  netmask 255.255.255.255
  pointopoint <Gateway der Zusatz-IP>
  gateway <Gateway der Zusatz-IP>

Schritt 3 - Sicherheit

Das Webinterface ist durch zwei verschiedene Authentifzierungsmethoden geschützt: Proxmox VE standard authentication (von Proxmox eigene Authentifizierung) und Linux PAM standard authentication (Authentifizierung über Konten des Betriebssystems).

Dennoch wären zusätzliche Schutzmaßnahmen empfehlenswert, um sich gegen das Ausnutzen eventueller Sicherheitslücken oder diverser anderen Attacken zu schützen.

Hier würden sich mehrere Möglichkeiten anbieten:

Fazit

Hiermit sollten sie Proxmox als Platform zur Virtualisierung ihres Servers installiert und konfiguriert haben.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue

Discover our

Dedicated Servers

Configure your dream server. Top performance with an excellent connection at an unbeatable price!

Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more