4.0 KiB
4.0 KiB
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
- Sicherheit (SSH, Fail2ban, Samba, Firewall)
- Docker-Modernisierung
- Serverordner-Struktur
- Monitoring & Logging
- Backup-Strategie
- Infrastructure-as-Code (optional)
- 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 <netz>
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@<gerät>"
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.