first commit
This commit is contained in:
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Server Documentation Repository
|
||||||
|
|
||||||
|
Dieses Repo enthält Playbook, Scripts und Struktur.
|
||||||
2
docs/chatgpt.md
Normal file
2
docs/chatgpt.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
## Session Resumé
|
||||||
|
Wir haben Serveranalyse, Hardening, Playbook v1.1, SSH Key Setup, FileDrop Struktur erstellt.
|
||||||
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.
|
||||||
2
scripts/setup_ssh.sh
Normal file
2
scripts/setup_ssh.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# placeholder script
|
||||||
Reference in New Issue
Block a user