Hetzner - DokuWiki

Proxmox VE

Inhaltsverzeichnis

Proxmox VE

Startpage-with-cluster.png

Proxmox VE ist eine Open-Source Virtualisierungsplattform mit Unterstützung für OpenVZ (bis v3.4), KVM und ab Version 4.0 für 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 OpenVZ/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: 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 OpenVZ/LXC ausreichend.
  • Soll OpenVZ/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.
    • OpenVZ/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.

Installation

1. Die Grundlagen

  • 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)
  • Nach Wunsch RAID-Level, Partitionierung und Hostnamen in der Konfiguration anpassen
  • Speichern und nach Abschluss der Installation neustarten

2. APT Sourcen (/etc/apt/sources.list) anpassen

echo "deb http://download.proxmox.com/debian stretch pve-no-subscription" >> /etc/apt/sources.list

Key hinzufügen:

wget -q http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg

Aktualisieren Sie nun die Pakete:

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

3. Proxmox VE installieren.

Da Proxmox eigene Firmware mitbringt, sollten zunächst die vorhandene Firmwarepakete deinstalliert werden:

aptitude -q -y purge firmware-bnx2x firmware-realtek firmware-linux firmware-linux-free firmware-linux-nonfree

Anschließend kann Promox installiert werden.

apt-get install proxmox-ve

Nach einem Neustart sollte der Proxmox-Kernel geladen sein:

# uname -rv
4.13.13-1-pve #1 SMP PVE 4.13.13-31 (Mon, 11 Dec 2017 10:00:13 +0100)

4. 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.

Netzkonfiguration

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

  • LXC
    • Vorteile: Leichtgewichtig. Schnell. Geringerer RAM Bedarf
    • Nachteile: Es wird der Kernel des Hostsystems verwendet. Nur Linux-Distributionen lassen sich nutzen
  • KVM
    • Vorteile: nahezu beliebige Betriebssysteme lassen sich installieren. Keine Modifikation an der VM nötig.


  • Routed
    • Vorteile: Mehrere IP-Adressen können auf einer VM genutzt werden. IPv6 kann in allen VMs genutzt werden
    • Nachteile: IP-Konfiguration kann bei Einzel-IPs nicht per DHCP bezogen werden. Bei IP-Adressen aus verschiedenen Netzen ist ein Pointopoint-Setup erforderlich.
  • Bridged
    • Vorteile: Für Anfänger "einfachere" Konfiguration
    • Nachteile: Zusätzliche MAC-Adressen müssen über den Hetzner Robot beantragt werden. Ist nur für Einzel-IPs möglich. Mehrere IP-Adressen können nicht in einer VM genutzt werden.
    • IPv6 kann nur auf dem Host oder in einer einzelnen VM genutzt werden.

Beim 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

Verwaltung

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. 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: eth0
auto eth0
iface eth0 inet static
  address <Haupt-IP>
  netmask 255.255.255.255
  pointopoint <Gateway-IP>
  gateway <Gateway-IP>
iface eth0 inet6 static
  address <Adresse aus dem IPv6-Subnetz> #z.B. 2001:db8::2
  netmask 128
  gateway fe80::1
  up sysctl -p
# fuer 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::2
  netmask 64
# fuer 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

Für die Nutzung von IPv6 mit mehreren Bridges (mehrere IPv4-Subnetze oder IPv4-Einzel-IPs und Subnetz) muss eine kleinere Netzmaske für IPv6 verwendet werden.

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 fuer Einzel-IP aus fremden Subnetz
# Loopback device:
auto lo
iface lo inet loopback
# device: eth0
auto eth0
iface eth0 inet static
  address <Zusatz-IP>
  netmask 255.255.255.255
  pointopoint <Haupt-IP>
  gateway <Haupt-IP>
iface eth0 inet6 static
  address <Adresse aus dem IPv6-Subnetz> # z.B. 2001:db8::f001
  netmask 64
  gateway <IPv6-Adresse vmbr0> # z.B. 2001:db8::2
# /etc/network/interfaces
### Beispiel fuer Subnetz
# Loopback device:
auto lo
iface lo inet loopback
# device: eth0
auto  eth0
iface eth0 inet static
  address <Nutzbare IP aus dem Subnetz>
  netmask <Netzmaske des Subnetzes>
  gateway <Im Hostsystem konfigurierte IP aus dem Subnetz>
iface eth0 inet6 static
  address <Adresse aus dem IPv6-Subnetz> # z.B. 2001:db8::f001
  netmask 64
  gateway <IPv6-Adresse vmbr0> # z.B. 2001:db8::2

Netzwerkkonfiguration 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
auto vmbr0
iface vmbr0 inet static
  address <Haupt-IP>
  netmask 255.255.255.255
  pointopoint <Gateway-IP>
  gateway <Gateway-IP>
  bridge_ports eth0
  bridge_stp off
  bridge_fd 1
  bridge_hello 2
  bridge_maxage 12
# fuer 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: eth0
auto eth0
iface eth0 inet static
  address <Zusatz-IP>
  netmask 255.255.255.255
  pointopoint <Gateway der Zusatz-IP>
  gateway <Gateway der Zusatz-IP>

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:

Sonstiges

Wichtige Links



© 2018. Hetzner Online GmbH. Alle Rechte vorbehalten.