Linux - Proxmox - Container bereitstellen


  • Die Verwendung von Containern gegenüber von VM's hat klare Vorteile. Wie diese bereitgestellt werden, zeige ich Euch in diesem Artikel.
    • Einige Vorteile zusammengefasst
      • Weniger Speicherplatz
      • keine Performanceeinbussen
      • schnellere Bereitstellung

Vorbereitung

  • Bevor wir einen Container bereitstellen können, benötigen wir noch ein Verzeichnis für unseren LVM-Speicher. Hier wird der Container später abgelegt.
    • Diesen legen wir unter „Rechenzentrum / Storage / Hinzufügen / LVM“ an
ID: Beliebiger Name, ich verwende hier LVM
Basis-Storage: Existierende Volume-Group
Volume-Gruop: Eure Volume-Gruppe, bei mir pve
Inhalt: Hier könnt Ihr eingrenzen was gespeichert werden soll, ich verwende Disk-Image, Container

Container erstellen

  • Um einen Container zu erstellen wählen wir rechts oben „Erstelle CT“
Knoten Hier ist Euer Proxmox-Server ausgewhält. Sollten mehrere vorhanden sein, kann hier der betroffene ausgewählt werden
CT ID: Hier wird eine numerische eindeutige ID vergeben. Das System zählt hier selbständig von 100 hoch
Hostname: Der Name Eurer VM - hier jollyroger.eu
Ressource-Pool: Wenn verschiedene Pools vorhanden sind können diese hier ausgewählt werden
Kennwort / bestätigen: Euer SSH Kennwort für den Root-Benutzer
Öffentlicher SSH Schlüssel: hier kann auch ein zusätzlicher SSH-Schlüssel hinterlegt werden
  • Auswahl des Templates
Storage: local
Template: Auswahl des Templates
  • Bestimmung des Speicherortes und der Festplattengröße
Storage: Hier wählen wir das vorher angelegte Verzeichnis LVM aus
Disk-Größe (GB): Angabe der Festplattengröße in GB
  • Anzahl der CPU-Kerne
  • Größe Speicher und SWAP
  • Vorgaben für die Netzwerkkonfiguration
Name (i.e. eth0) eth0 Name für das primäre Interface im Container
MAC-Adresse: Auto
Bridge vmbr0 Hier wählen wir das zuvor angelegt Interface für die interne Verbindung aus
VLAN Tag: no VLAN
Rate limit (MB/S): unlimited
IPv4: Statisch Die Netzwerkadresse mus statisch vergeben werden, eine Vergabe macht weder Sinn noch ist sie in diesem Fall möglich
IPv4/CIDR: 10.10.10.2/24 Vergabe einer IP aus dem /24 Netz
IPv6: keine Einstellungen Da von mir nicht in Verwendung wird hier keine Konfiguration vorgenommen
  • Hier verwenden wir die Einstellungen des Hosts
  • Hier könnt Ihr die Einstellungen nochmals überprüfen und die Einrichtung Abschließen
  • Im folgenden Fenster wird Euch der Fortschritt angezeigt. Erscheint die Meldung TASK OK, ist das erstellen erfolgreich abgeschlossen
  • Das Fenster kann dann geschlossen werden

SSH Zugang von aussen erreichbar machen

  • Da der Container eine interne IP besitzt, ist er per SSH aus dem Internet nicht erreichbar.
  • Hier müssen wir eine Portweiterleitung via IPTables einrichten um dies zu ermöglichen.
  • ACHTUNG: Bitte sichert den Server vorher ab und legt Euch einen Benutzer an
Externe IP-Adresse 150.0.0.203
Externer SSH-Port 2222 - hier wählt Ihr einen beliebigen Highport
Interface des Proxmox-Servers enp2s0
Interne IP des Containers 10.10.10.2
Interner SSH-Port 22
Interface des Containers eth0 - Dies haben wir bei der Netzwerkkonfiguration des Containers angegeben
  • Als erstes stoppen wir wieder fail2ban
    • service fail2ban stop
  • Mit folgenden Zeilen konfiguriert Ihr die Portweiterleitung
iptables -t nat -A POSTROUTING -s <Container IP> -o <Container Interface> -j SNAT --to <Externe IP>
iptables -t nat -A PREROUTING -p tcp -d <Externe IP> --dport <Externer SSH-Port> -i <Interface des Proxmox-Servers> -j DNAT --to-destination <Interne IP des Containers>:<Interner SSH-Port>

In diesem Fall also:
iptables -t nat -A POSTROUTING -s 10.10.10.2 -o eth0 -j SNAT --to 150.0.0.203
iptables -t nat -A PREROUTING -p tcp -d 150.0.0.203 --dport 2222 -i enp2s0 -j DNAT --to-destination 10.10.10.2:22
  • Anschließend könnt ihr prüfen, ob Euer Server von extern erreichbar ist
    • ssh -p <gewählter Port> <benutzer>@<externe-ip>
    • z.B. ssh -p 2222 jollyroger@150.0.0.203
  • Ist die Verbindung erfolgreich könnt Ihr die Konfiguration mit iptables-save < /etc/iptables/rules.v4 sichern
  • Anschließend fail2ban wieder starten. service fail2ban start

  • Der Container ist nun erstellt und erscheint links in der Baumansicht. Diesen könnt Ihr nun einschalten und Euch über die noVNC Konsole oder SSH einloggen.
  • Bitte beachtet nochmals, dass es sich hier um ein minimales System handelt. Bevor Ihr diese von extern erreichbar macht, müsst Ihr diese absichern.

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen: