first commit
This commit is contained in:
232
playbooks/SERVER_PLAYBOOK_v1.1.md
Normal file
232
playbooks/SERVER_PLAYBOOK_v1.1.md
Normal file
@ -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 <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.
|
||||
Reference in New Issue
Block a user