Files
infrastructure/docs/GNAI-002-INFRA_Users.md
2026-08-28 18:54:45 +02:00

5.7 KiB

Standard Operating Procedure (SOP)

Dokumenten-ID: GNAI-INFRA-002

Titel: Benutzerverwaltung, SSH-Härtung & Netzwerkkonfiguration (Phase 2)

Version: 1.0


1. Zweck und Geltungsbereich

Dieses Dokument beschreibt die Erstellung von Systembenutzern mit Berechtigungen, die Härtung des SSH-Dienstes (Abschaltung von Root-Login und Passwort-Authentifizierung), die Umstellung auf eine statische IP-Adresse sowie die Konfiguration des SSH-Zugriffs von Admin-Workstations auf LLM-Servern.


2. Voraussetzungen & Berechtigungen

  • Bereits installiertes Debian-Grundsystem gemäß GNAI-INFRA-001.
  • Root-Zugriff oder Benutzer mit sudo-Rechten.
  • Admin-Workstation mit lokal installierter SSH-Suite (ssh-keygen, ssh-copy-id).

3. Prozessbeschreibung

3.1 Benutzerverwaltung & Sudo-Berechtigungen (Server-Seite)

1. Sudo-Paket installieren & prüfen (falls noch nicht geschehen)

Als root am Server anmelden:

su -
apt update && apt install -y sudo

2. Benutzer anlegen & Berechtigungen vergeben

Wichtig: Beim Anlegen von Benutzern immer adduser verwenden (interaktive Eingabe von Passwort und Benutzerdaten). Falls versehentlich userdel benötigt wird, zwingend die Option -r nutzen, um das Home-Verzeichnis mit aufzuräumen (sudo userdel -r <username>).

Neuen Benutzer anlegen und zur sudo-Gruppe hinzufügen:

# Beispiel für Benutzer 'ghost' oder 'debugofen'
sudo adduser debugofen
sudo usermod -aG sudo debugofen


3.2 Statische Netzwerkkonfiguration (Server-Seite)

1. Netzschnittstelle ermitteln & anpassen

Lass dir die primäre Netzwerkschnittstelle anzeigen (z. B. enp8s0):

ip addr show

Bearbeite die Datei /etc/network/interfaces:

sudo nano /etc/network/interfaces

Netzwerkkonfiguration für statische IP eintragen:

# Loopback Interface
auto lo
iface lo inet loopback

# Primary Network Interface
allow-hotplug enp8s0
iface enp8s0 inet static
    address 10.0.0.90/24
    gateway 10.0.0.1
    dns-nameservers 10.0.0.1 1.1.1.1

2. DNS-Resolver prüfen/anpassen

Prüfe die Datei /etc/resolv.conf:

sudo nano /etc/resolv.conf

Sicherstellen, dass folgende Nameserver eingetragen sind:

nameserver 10.0.0.1
nameserver 1.1.1.1

3. Netzwerkdienst neustarten & Funktion prüfen

sudo systemctl restart networking
ip -4 addr
ping -c 4 google.com

(Tritt ein Konfigurationskonflikt auf, das System einmal per sudo reboot neustarten).


3.3 SSH-Key-Generierung & Übertragung (Workstation-Seite)

Führe diese Schritte auf der lokalen Workstation aus.

1. Ed25519 SSH-Schlüsselpaar erzeugen

ssh-keygen -t ed25519 -C "ghost@ghostnet-ki" -f ~/.ssh/id_ed25519_ghost
ssh-keygen -t ed25519 -C "debugofen@ghostnet-ki" -f ~/.ssh/id_ed25519_debugofen

2. Public Keys auf den Server übertragen

Verwende ssh-copy-id, um die öffentlichen Schlüssel auf den Server zu kopieren (vorläufig noch mit Passwort-Authentifizierung):

ssh-copy-id -i ~/.ssh/id_ed25519_ghost.pub ghost@10.0.0.90
ssh-copy-id -i ~/.ssh/id_ed25519_debugofen.pub debugofen@10.0.0.90

3. Schlüsselbasierten Login testen

ssh -i ~/.ssh/id_ed25519_ghost ghost@10.0.0.90
ssh -i ~/.ssh/id_ed25519_debugofen debugofen@10.0.0.90

4. Workstation Client-Config einrichten (~/.ssh/config)

Erstelle/bearbeite die Datei ~/.ssh/config auf der Workstation, um Kurznamen für Verbindungen zu nutzen:

nano ~/.ssh/config

Inhalt eintragen:

Host *
    AddKeysToAgent yes
    IdentitiesOnly yes

Host ghostnet.ki
    Hostname 10.0.0.90
    User ghost
    IdentityFile ~/.ssh/id_ed25519_ghost

Berechtigungen auf der Workstation korrigieren:

chmod 600 ~/.ssh/config

Verbindung über den Alias testen:

ssh ghostnet.ki


3.4 SSH-Dienst härten (Server-Seite)

Sobald der SSH-Key-Login erfolgreich getestet wurde, wird die Passwort-Authentifizierung aus Sicherheitsgründen serverseitig komplett deaktiviert.

1. Drop-in-Konfiguration für SSH erstellen

sudo nano /etc/ssh/sshd_config.d/99-security.conf

Füge folgenden Inhalt ein:

# Root-Login über SSH komplett verbieten
PermitRootLogin no

# Passwort-Authentifizierung deaktivieren (nur SSH-Keys erlauben)
PasswordAuthentication no
KbdInteractiveAuthentication no

# Leere Passwörter verbieten
PermitEmptyPasswords no

# Nur explizite SSH-Key Methoden erlauben
PubkeyAuthentication yes

2. SSH-Konfiguration prüfen und Dienst neustarten

Achtung: Die bestehende SSH-Sitzung nicht schließen, bevor der Login in einem zweiten Terminalfenster erfolgreich verifiziert wurde!

# Syntaktische Prüfung der Konfiguration
sudo sshd -t

# Wenn sshd -t keine Fehler ausgibt, Dienst neustarten
sudo systemctl restart sshd


4. Abnahmekriterien (Checkliste für den Junior-Admin)

  • Benutzerprüfung: Der Benutzer kann sich mit sudo administrative Rechte verschaffen (whoami nach sudo ergibt root).
  • Netzwerk: Server ist unter der statischen IP 10.0.0.90 erreichbar. Ausgehender Datenverkehr funktioniert (ping google.com).
  • SSH-Alias: Der Login von der Workstation über ssh ghostnet.ki funktioniert ohne Passworteingabe.
  • Root-Sperre: Direct-Login als Root per SSH wird abgelehnt (ssh root@10.0.0.90 -> Permission denied).
  • Passwort-Sperre: Login-Versuch ohne hinterlegten SSH-Key wird direkt abgelehnt (keine Passwort-Aufforderung mehr).

5. Dokumentation der Änderungen

Datum Version Geändert von Beschreibung der Änderung
2026-08-26 1.0 spektr Erstellung des Dokuments (Benutzer, Netzwerkkonfiguration, SSH-Härtung)