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