Debian Template: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 39: Zeile 39:
 
== Skript zur Erzeugung der Schlüssel ==
 
== Skript zur Erzeugung der Schlüssel ==
  
*vi /usr/local/sbin/new-ssh-host-keys
+
Datei: /usr/local/sbin/new-ssh-host-keys
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Zeile 56: Zeile 56:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Ausführbar machen:
+
* '''chmod +x /usr/local/sbin/new-ssh-host-keys'''
 
 
chmod +x /usr/local/sbin/new-ssh-host-keys
 
  
 
== systemd-Dienst anpassen ==
 
== systemd-Dienst anpassen ==
  
Der ssh.service wird so angepasst, dass das Skript vor dem Start ausgeführt wird.
+
* '''systemctl edit ssh.service'''
 
 
systemctl edit ssh.service
 
  
 
Folgendes ergänzen:
 
Folgendes ergänzen:
Zeile 73: Zeile 69:
 
</pre>
 
</pre>
  
Änderung aktivieren:
+
* '''systemctl daemon-reexec'''
 
 
systemctl daemon-reexec
 
  
 
== Ergebnis ==
 
== Ergebnis ==

Version vom 12. April 2025, 13:11 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
  • chmod +x /usr/local/sbin/new-ssh-host-keys

systemd-Dienst anpassen

  • systemctl edit ssh.service

Folgendes ergänzen:

[Service]
ExecStartPre=/usr/local/sbin/new-ssh-host-keys
  • 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