commit 9087c6ccc7acbc10d91d438d374b438b7038c27d Author: stephan Date: Thu Dec 4 14:37:28 2025 +0100 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..d2cdf0e --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Server Documentation Repository + +Dieses Repo enthält Playbook, Scripts und Struktur. \ No newline at end of file diff --git a/docs/chatgpt.md b/docs/chatgpt.md new file mode 100644 index 0000000..33eda9e --- /dev/null +++ b/docs/chatgpt.md @@ -0,0 +1,2 @@ +## Session Resumé +Wir haben Serveranalyse, Hardening, Playbook v1.1, SSH Key Setup, FileDrop Struktur erstellt. \ No newline at end of file diff --git a/playbooks/SERVER_PLAYBOOK_v1.1.md b/playbooks/SERVER_PLAYBOOK_v1.1.md new file mode 100644 index 0000000..3443db5 --- /dev/null +++ b/playbooks/SERVER_PLAYBOOK_v1.1.md @@ -0,0 +1,232 @@ +# SERVER PLAYBOOK v1.1 +*Erweiterte Version mit SSH‑Key‑Ökosystem & FileDrop‑Struktur* + +Dieses Playbook beschreibt einen vollständigen, iterativen Modernisierungsprozess für einen Linux‑Server. +Version **1.1** ergänzt: + +- Passwortlose SSH‑Authentifizierung zwischen allen Geräten des Users *stephan* +- Zentrale FileDrop‑Struktur zur einfachen Dateiübertragung +- Aktualisierte Firewall‑Regeln + +--- + +# 🧭 Gesamtüberblick über die Iterationen + +1. **Sicherheit (SSH, Fail2ban, Samba, Firewall)** +2. **Docker-Modernisierung** +3. **Serverordner-Struktur** +4. **Monitoring & Logging** +5. **Backup-Strategie** +6. **Infrastructure-as-Code (optional)** +7. **NEU: SSH-Key-Ökosystem & FileDrop (v1.1)** + +--- + +# Iteration 1 – Sicherheit herstellen + +## 1. SSH Hardening +``` +PermitRootLogin no +PasswordAuthentication no +PubkeyAuthentication yes +``` +Restart: +``` +systemctl restart ssh +``` + +## 2. Fail2ban reparieren +``` +mkdir -p /var/log +touch /var/log/auth.log +chown syslog:adm /var/log/auth.log +systemctl restart rsyslog +systemctl restart fail2ban +``` + +## 3. Samba absichern +``` +ufw default deny incoming +ufw default allow outgoing +ufw allow from 192.168.12.0/23 to any port 445 +ufw allow from 192.168.12.0/23 to any port 139 +ufw deny 445 +ufw deny 139 +ufw enable +``` + +## 4. Docker-UI-Ports absichern +``` +ufw deny 3000 +ufw deny 2222 +ufw deny 5000 +ufw deny 9000 +ufw deny 9443 +ufw deny 81 +``` + +## 5. Fehlerhafte fstab-Einträge korrigieren +``` +nano /etc/fstab +systemctl daemon-reload +``` + +--- + +# Iteration 2 – Docker Modernisierung + +## Zentrales Netzwerk anlegen +``` +docker network create wlkns-net +``` + +## compose.yml vereinheitlichen +``` +networks: + default: + external: true + name: wlkns-net +``` + +## Standard-Verzeichnisstruktur +``` +/docker/ + compose/ + env/ + volumes/ +``` + +## Alte Netzwerke entfernen +``` +docker network rm +``` + +--- + +# Iteration 3 – Serverstruktur standardisieren + +## Zielstruktur +``` +/srv/ + gitea/ + oidc/ + nginx/ + minecraft/ + mumble/ +/docker/ + compose/ + volumes/ + env/ +/data/ + db/ + media/ + backups/ +/backup/ +``` + +--- + +# Iteration 4 – Monitoring & Logging +- journald konfigurieren +- Docker-Logging-Treiber optimieren +- Node Exporter / Grafana Agent installieren + +--- + +# Iteration 5 – Backup-Strategie +- daily / weekly / monthly Backups +- systemd timer +- Restore-Test durchführen + +--- + +# Iteration 6 – Optional: Infrastructure-as-Code +- compose.yml versionieren +- .env trennen +- Rebuild-Dokumentation erstellen + +--- + +# Iteration 7 – SSH-Key-Ökosystem & FileDrop (NEU in v1.1) + +Diese Iteration ermöglicht: + +- Passwortlose SSH-Logins von allen Geräten (User: **stephan**) +- Dateiübertragung ohne Passworteingabe +- Einheitliche Key-Struktur auf allen Clients +- Zentralen Upload-Ordner auf dem Server + +--- + +## 1. Auf jedem Client einen SSH-Key erzeugen (falls nicht vorhanden) +``` +ssh-keygen -t ed25519 -C "stephan@" +``` + +Key liegt danach unter: +``` +~/.ssh/id_ed25519 +~/.ssh/id_ed25519.pub +``` + +--- + +## 2. Public Key auf den Server übertragen +Empfohlener Weg: +``` +ssh-copy-id stephan@srv01 +``` + +Alternativ: +``` +cat ~/.ssh/id_ed25519.pub | ssh stephan@srv01 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' +``` + +--- + +## 3. SSH-Konfiguration für komfortablen Zugriff +Client-seitige Datei: +``` +~/.ssh/config +``` + +Beispiel: +``` +Host srv01 + HostName 192.168.12.1 + User stephan + IdentityFile ~/.ssh/id_ed25519 +``` + +Jetzt reicht: +``` +ssh srv01 +``` + +--- + +## 4. SSH nur im LAN erlauben (Firewall) +``` +ufw allow from 192.168.12.0/23 to any port 22 +ufw deny 22 +``` + +--- + +## 5. FileDrop-Struktur auf dem Server anlegen +``` +sudo mkdir -p /srv/filedrop/stephan +sudo chown stephan:stephan /srv/filedrop/stephan +chmod 700 /srv/filedrop/stephan +``` + +Upload: +``` +scp datei.txt srv01:/srv/filedrop/stephan/ +``` + +--- + +# Abschluss +Version **1.1** des Playbooks erweitert den gesamten Modernisierungsprozess um ein sicheres und konsistentes SSH-Key-Ökosystem sowie eine zentrale FileDrop-Infrastruktur. +Alle Iterationen bleiben modular, ohne Downtime und jederzeit pausierbar. diff --git a/scripts/setup_ssh.sh b/scripts/setup_ssh.sh new file mode 100644 index 0000000..175cf9d --- /dev/null +++ b/scripts/setup_ssh.sh @@ -0,0 +1,2 @@ +#!/bin/bash +# placeholder script