Debian Template: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 39: | Zeile 39: | ||
* Anschließend erstellen wir ein einfaces Skript für die Generation der Schlüssel falls sie fehlen | * Anschließend erstellen wir ein einfaces Skript für die Generation der Schlüssel falls sie fehlen | ||
* '''vim ''/usr/local/bin/new-ssh-host-keys'' ''' | * '''vim ''/usr/local/bin/new-ssh-host-keys'' ''' | ||
| + | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
| Zeile 46: | Zeile 47: | ||
cd $ssh_dir && ssh-keygen -A | cd $ssh_dir && ssh-keygen -A | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | * '''chmod +x ''/usr/local/bin/new-ssh-host-keys'' ''' | ||
| + | * Jetzt muss [[:Kategorie:systemd|systemd]] so angepasst werden, dass der '''ssh.service''' vor dem Start dieses Skript ausführt | ||
| + | * Dazu erstellen wir einen weiteren Dienst | ||
| + | * '''systemctl edit --full --force new-ssh-host-keys.service''' | ||
| + | |||
| + | [Unit] | ||
| + | Description=Neue Schlüssel des SSH-Hosts nach dem Klonen | ||
| + | Wants=basic.target | ||
| + | |||
| + | [Service] | ||
| + | ExecStart=/usr/local/bin/new-ssh-host-keys | ||
| + | Type=oneshot | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=ssh.service | ||
| + | |||
| + | * Die Option ''Type=oneshot'' sorgt dafür, dass der Befehl komplett ausgeführt wurde, bevor '''ssh.service''' startet | ||
| + | * '''systemctl enable new-ssh-host-keys.service''' | ||
| + | * Der Dienst '''ssh.service''' sollte nun warten bis der Dienst '''new-ssh-host-keys.service''' fertig ist | ||
| + | * '''systemctl edit ssh.service''' | ||
| + | |||
| + | ... | ||
| + | [Unit] | ||
| + | After=network.target auditd.service new-ssh-host-keys.service | ||
| + | ... | ||
| + | |||
| + | * Nun sollte jeder Boot zu neuen Schlüssel des SSH-Hosts führen | ||
Version vom 16. September 2024, 18:45 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 Generation neuer Schlüssel des SSH-Hosts
- Damit nicht alle Klone der Vorlage über diesselbe Identifikation verfügen, löschen wir die Schlüssel der Vorlage und generieren diese bei Bedarf neu
- cd /etc/ssh
- rm -vi ssh_host_*
- Anschließend erstellen wir ein einfaces Skript für die Generation der Schlüssel falls sie fehlen
- vim /usr/local/bin/new-ssh-host-keys
#!/bin/bash
ssh_dir="/etc/ssh"
ls $ssh_dir/ssh_host_* > /dev/null 2>&1 || exit 0
cd $ssh_dir && ssh-keygen -A
- chmod +x /usr/local/bin/new-ssh-host-keys
- Jetzt muss systemd so angepasst werden, dass der ssh.service vor dem Start dieses Skript ausführt
- Dazu erstellen wir einen weiteren Dienst
- systemctl edit --full --force new-ssh-host-keys.service
[Unit] Description=Neue Schlüssel des SSH-Hosts nach dem Klonen Wants=basic.target [Service] ExecStart=/usr/local/bin/new-ssh-host-keys Type=oneshot [Install] WantedBy=ssh.service
- Die Option Type=oneshot sorgt dafür, dass der Befehl komplett ausgeführt wurde, bevor ssh.service startet
- systemctl enable new-ssh-host-keys.service
- Der Dienst ssh.service sollte nun warten bis der Dienst new-ssh-host-keys.service fertig ist
- systemctl edit ssh.service
... [Unit] After=network.target auditd.service new-ssh-host-keys.service ...
- Nun sollte jeder Boot zu neuen Schlüssel des SSH-Hosts führen