Debian Template: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 33: | Zeile 33: | ||
%sudo ALL=(ALL:ALL) NOPASSWD:ALL | %sudo ALL=(ALL:ALL) NOPASSWD:ALL | ||
| − | = Automatische | + | = Automatische SSH-Hostschlüssel nur auf dem Template erzeugen = |
| − | + | ||
| − | + | Damit nicht alle Klone des Templates dieselben SSH-Hostschlüssel verwenden, sollen die Schlüssel nur dann neu erzeugt werden, wenn der Hostname ''debian-template'' ist. Dies wird beim Start automatisch über einen ExecStartPre-Hook im ssh.service erledigt. | |
| − | + | ||
| − | + | == Skript zur Erzeugung der Schlüssel == | |
| − | + | ||
| + | Datei: /usr/local/sbin/new-ssh-host-keys | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
| − | |||
| − | |||
| − | + | template_name="debian-template" | |
| + | current_host=$(hostname) | ||
| + | |||
| + | if [ "$current_host" = "$template_name" ]; then | ||
| + | echo "Template erkannt – SSH-Hostschlüssel werden neu erzeugt." | ||
| + | rm -f /etc/ssh/ssh_host_* | ||
| + | ssh-keygen -A | ||
| + | else | ||
| + | echo "Nicht das Template – keine Änderung." | ||
| + | fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | Ausführbar machen: | |
| − | + | ||
| − | + | chmod +x /usr/local/sbin/new-ssh-host-keys | |
| − | + | ||
| + | == systemd-Dienst anpassen == | ||
| + | |||
| + | Der ssh.service wird so angepasst, dass das Skript vor dem Start ausgeführt wird. | ||
| + | |||
| + | systemctl edit ssh.service | ||
| + | |||
| + | Folgendes ergänzen: | ||
| + | |||
| + | <pre> | ||
| + | [Service] | ||
| + | ExecStartPre=/usr/local/sbin/new-ssh-host-keys | ||
| + | </pre> | ||
| − | + | Änderung aktivieren: | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | systemctl daemon-reexec | |
| − | |||
| − | |||
| − | |||
| − | + | == Ergebnis == | |
| − | |||
| − | |||
| − | |||
| − | * | + | * Auf dem Template-Host ''debian-template'' werden die alten Schlüssel gelöscht und neu erzeugt |
| + | * Auf allen Klonen passiert nichts – die Schlüssel bleiben erhalten | ||
| + | * Kein zusätzlicher systemd-Dienst nötig | ||
| + | * Sauber integriert in den bestehenden ssh.service | ||
Version vom 12. April 2025, 13:09 Uhr
Anleitung für das Erstellen einer Vorlage für einfache Debian-Server zum Testen.
Mindestvorraussetzungen für Hardware
- 1 CPU
- 1 GB RAM
- 10 GB Festplattenspeicher
Installationsoptionen
- Falls bei einem Menü nach dem Installieren einer graphischen Oberfläche gefragt wird, sollten die Haken dafür entnommen werden
- Die Installation eines SSH-Servers sollte aber angekreuzt werden
Einrichtung
- Für eine angenehme Schriftgröße kann der Befehl dpkg-reconfigure console-setup benutzt werden, um diese auf den Bildschirm anzupassen
- Diese Pakete sollte man nachzuinstallieren, um auf der Kommandozeile arbeiten zu können
- apt install vim sudo git curl tcpdump nmap
- Der Standardeditor sollte auf vim.basic gestellt werden
- update-alternatives --config editor
- Falls ein Benutzer passwortlos zum root-Nutzer werden darf, muss dieser in der sudo-Gruppe sein und die /etc/sudoers-Datei angepasst werden
- gpasswd -a user sudo
- sicheres Bearbeiten der /etc/sudoers-Datei
- visudo
# Kein Check des Hostnamens nötig # Das macht nur Probleme beim Ändern des Hostnamens Defaults !fqdn ... # Alter Eintrag # %sudo ALL=(ALL:ALL) ALL # Neuer Eintrag %sudo ALL=(ALL:ALL) NOPASSWD:ALL
Automatische SSH-Hostschlüssel nur auf dem Template erzeugen
Damit nicht alle Klone des Templates dieselben SSH-Hostschlüssel verwenden, sollen die Schlüssel nur dann neu erzeugt werden, wenn der Hostname debian-template ist. Dies wird beim Start automatisch über einen ExecStartPre-Hook im ssh.service erledigt.
Skript zur Erzeugung der Schlüssel
Datei: /usr/local/sbin/new-ssh-host-keys
#!/bin/bash
template_name="debian-template"
current_host=$(hostname)
if [ "$current_host" = "$template_name" ]; then
echo "Template erkannt – SSH-Hostschlüssel werden neu erzeugt."
rm -f /etc/ssh/ssh_host_*
ssh-keygen -A
else
echo "Nicht das Template – keine Änderung."
fi
Ausführbar machen:
chmod +x /usr/local/sbin/new-ssh-host-keys
systemd-Dienst anpassen
Der ssh.service wird so angepasst, dass das Skript vor dem Start ausgeführt wird.
systemctl edit ssh.service
Folgendes ergänzen:
[Service] ExecStartPre=/usr/local/sbin/new-ssh-host-keys
Änderung aktivieren:
systemctl daemon-reexec
Ergebnis
- Auf dem Template-Host debian-template werden die alten Schlüssel gelöscht und neu erzeugt
- Auf allen Klonen passiert nichts – die Schlüssel bleiben erhalten
- Kein zusätzlicher systemd-Dienst nötig
- Sauber integriert in den bestehenden ssh.service