Skip to main content

Preparing a Secure LXC Template (Proxmox)

Dieses Kapitel beschreibt, wie du eine gehärtete LXC-Vorlage erstellst, die du in Proxmox klonen kannst. Jeder Container, der aus dieser Vorlage erstellt wird, bietet:

  • SSH-Zugang ausschließlich über einen admin-Benutzer
  • Nutzung deines lokalen SSH-Public-Keys
  • Verbot von direktem Root-Login
  • Deaktivierung der Passwort-Authentifizierung

Dieser Ansatz sorgt für konsistente und sichere Deployments ohne manuelle Nachbearbeitungsschritte.

Schritt 1: Einen Basis-Container erstellen

Erstelle einen normalen LXC-Container aus deinem bevorzugten Image, zum Beispiel:

pveam update
pveam download local debian-12-standard_*.tar.zst

Danach deploy den Container:

pct create <CTID> local:vztmpl/debian-12-standard_*.tar.zst

Starte ihn:

pct start <CTID>
pct enter <CTID>

Schritt 2: Den Admin-Benutzer in der Vorlage anlegen

Innerhalb des Containers:

adduser admin
usermod -aG sudo admin

Dieser Benutzer wird der einzige SSH-Einstiegspunkt.

Schritt 3: Deinen SSH-Public-Key installieren

Auf deiner lokalen Maschine stelle sicher, dass du einen Key hast:

ssh-keygen -t ed25519 -C "admin@lxc"

Kopiere ihn in den Container:

ssh-copy-id admin@<container-ip>

Teste den Login:

ssh admin@<container-ip>

Du solltest dich ohne Passwort einloggen können.

Schritt 4: Die SSH-Konfiguration härten

Innerhalb des Containers:

sudo nano /etc/ssh/sshd_config

Wende folgendes an:

- PermitRootLogin yes
+ PermitRootLogin no

- PasswordAuthentication yes
+ PasswordAuthentication no

- ChallengeResponseAuthentication yes
+ ChallengeResponseAuthentication no

(Optional):

PubkeyAuthentication yes

Starte neu:

sudo systemctl restart sshd

Schritt 5: Aufräumen und für die Vorlage vorbereiten

Damit keine temporären Artefakte weitervererbt werden:

Innerhalb des Containers:

history -c
rm -rf /tmp/*
apt clean

Nicht löschen:

  • /home/admin/.ssh/authorized_keys
  • den admin-Benutzer
  • die Änderungen an der SSH-Konfiguration

Diese Dinge werden für die Funktionalität der Vorlage benötigt.

Schritt 6: Herunterfahren und in eine Vorlage umwandeln

Verlasse den Container und stoppe ihn:

pct stop <CTID>

Wandle ihn in eine Proxmox-Vorlage um:

pct template <CTID>

Der Container ist jetzt als wiederverwendbare Vorlage gespeichert.

Ergebnis

Jeder zukünftige Container, den du aus dieser Vorlage klonst, bietet automatisch:

  • sicheren SSH-Zugang
  • keinen Root-Login
  • erzwungene Schlüssel-basierte Authentifizierung
  • konsistente sudo-Konfiguration

Keine weiteren SSH-Härtungsschritte mehr nötig.

Beispiel zum Klonen

pct clone <TEMPLATE-ID> 120 --hostname web01 --storage local-lvm
pct start 120

Danach sofort verbinden:

ssh admin@web01