Proxmox auf Root Server => Kein Internet-Zugriff aus LXC heraus

  • Hallo zusammen,


    ich bin neu hier und wollte auf meinem Root Server gerne Proxmox betreiben. Dass das VT-X-Flag nicht gesetzt ist und ich daher keine VMs betreiben kann, ist mir klar.

    Ich würde aber gerne einige LXCs erstellen, die dann ins Internet bzw. ins Netzwerk einen Zugriff benötigen.

    Bei der Installation hat er mir ja direkt eine Netzwerkverbindung ens3 und eine Linux Bridge vmbr0 angelegt. Letztere hat dann als CIDR die öffentliche IP samt der Range 22 (89.58.x.x/22) bekommen und auch als Gateway die IP des Netcup-Routers (89.58.x.1). In der Shell von Proxmox kann ich auch externe DNS wie heise.de pingen.


    Mir ist aber leider die Netzwerk-Konfiguration für die LXC noch nicht ganz klar und hatte gehofft, dass mir jemand da unter die Arme greifen kann bzw. im Internet ein Tutorial kennt, woran ich mich orientieren könnte. Wenn ich einen neuen Container erstelle, kann ich nur den vmbr0 auswählen. Welche IP und welches Gateway muss ich denn dann dort eingeben? Oder muss ich vorab eine weitere Linux Bridge vmbr1 erstellen? Was müsste ich da dann einstellen?


    Es wäre nett, wenn mir jemand da weiterhelfen könnte.


    Vielen Dank schonmal im Voraus.


    Grüße

    afeiler

  • Bei der Installation hat er mir ja direkt eine Netzwerkverbindung ens3 und eine Linux Bridge vmbr0 angelegt.

    Ja, und das sind hoffentlich auch zwei getrennte Interfaces und ens3 wurde nicht in vmbr0 integriert. ens3 ist das WAN Interface, während vmbr0 die interne Bridge für alle Container und das Host-System ist. Betrachte vmbr0 als ein internes LAN auf dem VPS, und ens3 als das Interface nach draußen. Bei dir zu Hause ist ens3 quasi der DSL Anschluss, während vmbr0 der Switch ist, der all deine Heimgeräte miteinander verbindet.

    Und was ist zwischen DSL und Switch? Genau, ein Router. Die Rolle muss auch dein VPS übernehmen. Also IP-Forwarding, Routing, NAT und Firewall. Das wirst du von Hand einrichten müssen - ggf. in der Proxmox GUI, aber letztlich musst du es selber machen.


    Wenn ich einen neuen Container erstelle, kann ich nur den vmbr0 auswählen. Welche IP und welches Gateway muss ich denn dann dort eingeben?

    Du musst für vmbr0 ein internes Netz vergeben. Das kannst du dir im Grunde selber aussuchen aus dem Bereich der RFC1918 Adressen.


    Grundsätzlich MUSST du dich mit den IP-Grundlagen befassen. Dazu gehört vor allem auch die Absicherung deines Systems für Angriffe von außen. Immer dran denken, dein System hängt vollkommen schutzlos im Internet, und es wird ca. 1 Angriff pro Sekunde darauf ausgeführt - auch jetzt schon.


    Also ToDos:

    1. Firewall einrichten. Sichere als Erstes dein System gegen Zugriffe von außen ab. Mach erst mal alles zu und öffne dann nur die Dienste, die du zwingend brauchst. Zugriff auf die Proxmox Oberfläche nur aus einem VPN heraus oder über einen SSH Tunnel. Ich würde im ersten Schritt den SSH Port auf irgendwas weit weg von Port 22 verlegen, Zertifikatsbasierte Anmeldung aktivieren und dann alle anderen Ports dicht machen. Zugriff erfolgt ab sofort nur noch über SSH mit passendem Zertifikat und über NICHTS anderes mehr.

    2. Schau dir Grundlagen IP-Routing für IPv4 und IPv6 an. Dazu gehören vollwertiges Routen (besonders für IPv6) und NAT für IPv4. Portfreigaben und Portweiterleitungen gehören dazu (und müssen dann auch in der Firewall berücksichtigt werden).


    Tutorials als Video oder in Schriftform gibt es reichlich. "iptables", "nftables" oder "ufw" sind die Suchbegriffe für Punkt 1, dazu kommt SSH Portforwarding. "iproute2" ist der Suchbegriff für Punkt 2. Wichtig: Tippe nicht einfach irgendeine Beispielkonfiguration aus einem Tutorial ab, denn die ist garantiert falsch. Du musst VERSTEHEN, was da abgeht, und dann die Konfiguration an dein System anpassen. Das gilt für beide Punkte.

  • Nur interessehalber: wieso LXCs und keine Docker Container?

    Weil er Proxmox verwendet - und das unterstützt kein Docker über die Web-GUI und die eigenen Kommandozeilen.

    Allerdings ist LXC seit einiger Zeit über Tools OCI-kompatibel. LXC jetzt aber auch kein Beinbruch, wenn man damit umgehen kann. Vorallem müllt es nicht die Regeln voll, wie Docker es tut :)


    PS: Ich habe übrigens das VT-x-Flag, bezahle dafür, aber kann es nicht nutzen :)

  • Allerdings ist LXC seit einiger Zeit über Tools OCI-kompatibel. LXC jetzt aber auch kein Beinbruch, wenn man damit umgehen kann. Vorallem müllt es nicht die Regeln voll, wie Docker es tut :)

    Nach eigener Erfahrung schadet es grundsätzlich nicht, beim Einsatz von Docker die letztere Installation zusätzlich in einen LXC-/LXD-Container zu legen. Der damit verbundene Overhead ist heutzutage vernachlässigbar, aber man hat eine saubere Kapselung. Gerade dann beruhigend, wenn die Docker-Abbilder teilweise immer größer/komplexer/undurchsichtiger werden (vgl. Gitlab usw.) …

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

    Gefällt mir 2
  • Weil er Proxmox verwendet - und das unterstützt kein Docker über die Web-GUI und die eigenen Kommandozeilen.

    Naja, das ist ja erst mal nicht unbedingt ein Grund per se, für Docker bräuchte man ja auch gar kein Proxmox. Docker direkt auf dem RS/VPS ist halt weniger Overhead und Docker hat eigene Web GUIs, mit denen man gut arbeiten kann.


    Die Kapselung von m_ueberall ist da für mich eher ein Argument das ich eingängig finde.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Naja, das ist ja erst mal nicht unbedingt ein Grund per se, für Docker bräuchte man ja auch gar kein Proxmox. Docker direkt auf dem RS/VPS ist halt weniger Overhead und Docker hat eigene Web GUIs, mit denen man gut arbeiten kann.

    Ich kenne viele Leute, die Proxmox nutzen, weil sie eben kein Bock auf Kommandozeile haben und Proxmox von Backup über Netzwerkkonfiguration usw. alles über die Oberfläche ermöglicht. Du installierst es auf ein leeres System und ab da musst du nur noch klicken.


    Docker hat bei mir auf den Systemen übrigens keine Heimat mehr - ich nutze durchgehend Podman. Allerdings habe ich noch nie Docker oder Podman in einen LXC Container geworfen und ich bin mir nicht sicher, ob ich mir da ein Sicherheitsgrab buddle. Stichwort "Docker in Docker", was nie für die Produktion geeignet ist. AFAIK muss man "nesting" und "keyctl" aktivieren. Ein LXC Container ist dadurch kein wirklich isoliertes System, wie eine virtuelle Maschine, und sowohl Podman/Docker als auch LXC nutzen viele Kernel-Funktionen (Namespaces, etc.)... ich bin mir unsicher, ob sich das alles verträgt. Wohlgemerkt sicherheitstechnisch. Dass es funktioniert heißt ja nicht, dass es auch sicher ist.


    Ich erinnere mich auch, dass ich Probleme mit overlay2 hatte... vielleicht geht das ja inzwischen? Aber das ist hier Offtopic. Können wir gerne woanders diskutieren, da es sicher auch andere interessiert? @m_ueberall

  • Ich kenne viele Leute, die Proxmox nutzen, weil sie eben kein Bock auf Kommandozeile haben und Proxmox von Backup über Netzwerkkonfiguration usw. alles über die Oberfläche ermöglicht. Du installierst es auf ein leeres System und ab da musst du nur noch klicken.

    Ich verwende seit gut einem Jahr auch Proxmox auf einen KVM Container mit nur LXC Containern und bin, was die Stabilität angeht, von Proxmox sehr angetan.


    Seit einem halben Jahr betreibe ich in einem LXC Container sogar produktiv Plesk mit ca. 200 GB Nutzdaten (Webspace und mehrere Nextcloud Instanzen).


    Allerdings läuft mein Setup nicht bei Netcup, sondern bei einem Mitbewerber auf einem Dedicated Server wiederum in einem KVM Container, der wiederum in dem OS Rocky Linux 8.x installiert ist, da ich hier bei Netcup das Problem hatte, dass mir innerhalb von ca. 10 Tagen immer wieder ungewollt und nicht wirklich vorhersehbar die zwei Test KVM Container vom Typ RS 8000 neu gestartet wurden und dieses Problem nachher seitens Supports dann nur von ca. 10 Tagen auf ca. 30 Tagen verlängert wurde, so meine Beobachtungen.


    Um dieses Problem eventuell beseitigen zu können, wurde mir damals vom Support angeraten, einen viel älteren Kernel vom Typ LTS auf den beiden KVM´s zu installieren, was aber für mich auch aus Sicherheitsgründen keine Option war.

  • zwei Test KVM Container vom Typ RS 8000 neu gestartet wurden und dieses Problem nachher seitens Supports dann nur von ca. 10 Tagen auf ca. 30 Tagen verlängert wurde, so meine Beobachtungen.


    Um dieses Problem eventuell beseitigen zu können, wurde mir damals vom Support angeraten, einen viel älteren Kernel vom Typ LTS auf den beiden KVM´s zu installieren, was aber für mich auch aus Sicherheitsgründen keine Option war.

    Das Problem ist übrigens gelöst.

  • Naja, das ist ja jetzt nicht unbedingt Proxmox zugute zu schreiben

    Dass LXC und Qemu stabil laufen?

    Ich glaube schon, dass ein Paket Maintainer darauf großen Einfluss hat, vorallem was Konfiguration anbelangt.


    Da habe ich mit dem libvirt Ökosystem nicht so viel Glück - da bin ich noch auf Version 8.3.0, weil die Versionen danach Bugs haben, die bei Google nur zwei Treffer haben.


    In Punkto Stabilität, vorallem während und nach einem Update, und nach einem Major OS Update von Debian, läuft Proxmox einwandfrei - das ist definitiv Proxmox anzurechnen.