🎉 Optimierung der RDP-Server-Installation und Firewall-Konfiguration im Backend 🛠️. Vereinfachte Installation von xrdp und XFCE, verbesserte Fehlerbehandlung und Validierung der Firewall-Einstellungen. Aktualisierte Logik zur Überprüfung des Dienststatus und zur Konfiguration von Netzwerkquellen.

This commit is contained in:
2025-06-01 15:31:04 +02:00
parent 7b37d54e59
commit fc6ba6e87e
9 changed files with 1399 additions and 356 deletions

View File

@@ -27,9 +27,9 @@ Das neue konsolidierte `setup.sh` Skript ersetzt alle bisherigen Installationssk
## Installationsmodi
### 1. Nur Abhängigkeiten installieren
### 1. Abhängigkeiten installieren für manuelles Testen
**Zweck**: System vorbereiten ohne Kiosk-Modus zu aktivieren
**Zweck**: System vollständig vorbereiten für manuelle Tests und Entwicklung
**Was wird installiert**:
- Python 3 und pip
@@ -49,21 +49,31 @@ sudo ./setup.sh
**Ideal für**:
- Entwicklungsumgebungen
- Erste Installation und Tests
- Systeme ohne Kiosk-Anforderungen
- Manuelle Tests und Debugging
- Systeme ohne automatischen Kiosk-Modus
- Erste Installation und Validierung
### 2. Finale Kiosk-Installation
**Nach der Installation**:
- HTTPS-Backend manuell starten: `cd /opt/myp && python3 app.py`
- System bereit für Entwicklung und Tests
**Zweck**: Vollständige Kiosk-Modus-Konfiguration
### 2. Vollständige Kiosk-Installation mit Remote-Zugang
**Zweck**: Komplette Produktionsinstallation mit automatischem Kiosk-Modus
**Was wird konfiguriert**:
- Alle Abhängigkeiten (falls noch nicht installiert)
- Desktop-Environments entfernen
- Alle Abhängigkeiten (automatisch falls noch nicht installiert)
- Desktop-Environments vollständig entfernen
- Minimale X11-Umgebung installieren
- Kiosk-Benutzer erstellen
- Automatischen Login konfigurieren
- **SSH-Server** mit Benutzer `user:raspberry`
- **RDP-Server (xrdp)** mit TLS für `root:744563017196A`
- **XFCE Desktop-Umgebung** für RDP-Sessions
- **firewalld** mit erweiterten Netzwerk-Regeln
- Kiosk-Benutzer erstellen und konfigurieren
- **Automatischen Login** auf tty1 konfigurieren
- **Automatischen Kiosk-Start** beim Login einrichten
- Systemd-Services installieren und aktivieren
- System-Test durchführen
- Umfassende System-Tests
- Alte Dateien aufräumen
**Verwendung**:
@@ -75,48 +85,13 @@ sudo ./setup.sh
**Ideal für**:
- Produktionsumgebungen
- Dedizierte Kiosk-Systeme
- Finale Deployment
- Finale Deployment mit Remote-Administration
- Vollautomatische Systeme
### 3. Nur Services installieren
**Zweck**: Systemd-Services aktualisieren ohne Systemänderungen
**Was wird gemacht**:
- Service-Dateien aus `systemd/` nach `/etc/systemd/system/` kopieren
- systemd-Konfiguration neu laden
- Optional: Services aktivieren und starten
**Verwendung**:
```bash
sudo ./setup.sh
# Wähle Option 3
```
**Ideal für**:
- Service-Updates
- Konfigurationsänderungen
- Wartung bestehender Installationen
### 4. System-Test
**Zweck**: Funktionalität der Installation überprüfen
**Was wird getestet**:
- HTTPS-Verbindung zu localhost:443
- SSL-Zertifikat-Gültigkeit
- Service-Status aller systemd-Services
- Systemressourcen
**Verwendung**:
```bash
sudo ./setup.sh
# Wähle Option 4
```
**Ideal für**:
- Fehlerdiagnose
- Wartung
- Regelmäßige Systemprüfungen
**Nach der Installation**:
- **Neustart erforderlich**: `sudo reboot`
- Automatischer Kiosk-Modus beim Boot
- Remote-Zugang verfügbar über SSH und RDP
## Systemd-Services
@@ -145,6 +120,17 @@ sudo ./setup.sh
- **Zweck**: Python-basierte Überwachung
- **Ergänzung**: Zusätzliche Überwachungsfunktionen
### myp-firewall.service
- **Zweck**: Automatische Firewall-Konfiguration beim Systemstart
- **Benutzer**: root
- **Abhängigkeiten**: firewalld.service
- **Funktionen**:
- Zone `myp-backend` für Netzwerk 192.168.0.0/24
- HTTPS-Port 443/tcp
- SSH-Port 22/tcp
- RDP-Port 3389/tcp
- Automatische Aktivierung beim Boot
## Konfiguration
### SSL-Zertifikate
@@ -166,6 +152,79 @@ sudo ./setup.sh
- Gruppen: audio, video, input, dialout, plugdev, users
- Passwortlos für Sicherheit
### Remote-Zugang
**SSH-Zugang**:
- Benutzer: `user`
- Passwort: `raspberry`
- Port: 22
- Sudo-Berechtigung: ja
**RDP-Zugang**:
- Benutzer: `root`
- Passwort: `744563017196A`
- Port: 3389
- Desktop: XFCE
- Verschlüsselung: TLS 1.2/1.3
**Firewall-Konfiguration**:
- Zone: `myp-backend`
- Quell-Netzwerke:
- `192.168.0.0/16` (erweitertes lokales Netzwerk)
- `127.0.0.1/32` (localhost IPv4)
- `raspberrypi` (lokaler Hostname - automatisch gesetzt)
- `m040tbaraspi001` (Frontend-Server - falls auflösbar)
- Erlaubte Ports: 443/tcp (HTTPS), 22/tcp (SSH), 3389/tcp (RDP)
- **IPv6 vollständig deaktiviert und blockiert**
- Automatische Konfiguration beim Systemstart
### Hostname-Konfiguration
**Automatische Hostname-Setzung**:
- Lokaler Hostname wird automatisch auf `raspberrypi` gesetzt
- `/etc/hostname` und `/etc/hosts` werden entsprechend aktualisiert
- Hostname-Auflösung wird getestet und konfiguriert
- Firewall-Integration für lokalen Hostname
**Frontend-Server Integration**:
- `m040tbaraspi001` wird als separater Frontend-Server behandelt
- Automatische IP-Auflösung für `m040tbaraspi001` und `m040tbaraspi001.de040.corpintra.net`
- Firewall-Regel wird hinzugefügt, falls der Server auflösbar ist
- Keine Abhängigkeit - System funktioniert auch ohne Frontend-Server
### Netzwerk-Sicherheit
**IPv6-Deaktivierung**:
- Vollständige Deaktivierung auf Kernel-Ebene
- GRUB-Konfiguration: `ipv6.disable=1`
- Sysctl-Konfiguration für alle Interfaces
- NetworkManager/systemd-networkd Konfiguration
- Firewall blockiert alle IPv6-Pakete
**IP-Spoofing-Schutz**:
- Reverse Path Filtering aktiviert
- Source Routing deaktiviert
- ICMP Redirects ignoriert
- Secure Redirects deaktiviert
**DDoS-Schutz**:
- SYN-Flood-Schutz mit SYN-Cookies
- Optimierte TCP-Backlog-Größe
- Begrenzte SYN/SYNACK-Wiederholungen
- Broadcast-Ping-Schutz (Smurf-Angriffe)
**TCP-Optimierungen**:
- RFC-konforme Retry-Limits
- Optimierte Window-Skalierung
- Deaktivierte TCP-Timestamps (Anti-Fingerprinting)
- Deaktivierte TCP-SACK (Sicherheit)
- Time-Wait-Assassination-Schutz
**Logging und Monitoring**:
- Martian-Pakete werden geloggt
- Verdächtige Netzwerkaktivitäten protokolliert
- Bogus ICMP-Antworten ignoriert
### Verzeichnisstruktur
```
@@ -209,7 +268,7 @@ sudo ./setup.sh
3. **SSL-Zertifikat-Probleme**
```bash
sudo ./setup.sh
# Option 4 für System-Test
# Option 5 für System-Test
```
4. **Service-Neustart**
@@ -218,20 +277,67 @@ sudo ./setup.sh
sudo systemctl restart kiosk-watchdog
```
5. **SSH-Verbindung fehlgeschlagen**
```bash
# SSH-Service prüfen
sudo systemctl status ssh
# SSH-Port prüfen
sudo ss -tlnp | grep :22
# Firewall-Regeln prüfen
sudo firewall-cmd --list-all
```
6. **RDP-Verbindung fehlgeschlagen**
```bash
# xrdp-Service prüfen
sudo systemctl status xrdp
# RDP-Port prüfen
sudo ss -tlnp | grep :3389
# xrdp-Logs prüfen
sudo journalctl -u xrdp -f
```
7. **Firewall-Probleme**
```bash
# Firewall-Status prüfen
sudo systemctl status firewalld
# Aktive Zonen anzeigen
sudo firewall-cmd --get-active-zones
# Zone-Konfiguration prüfen
sudo firewall-cmd --zone=myp-backend --list-all
# Firewall neu konfigurieren
sudo ./setup.sh
# Option 4 für Remote-Zugang
```
### Manuelle Service-Verwaltung
```bash
# Services aktivieren
sudo systemctl enable myp-https myp-kiosk kiosk-watchdog
sudo systemctl enable myp-https myp-kiosk kiosk-watchdog myp-firewall
# Services starten
sudo systemctl start myp-https myp-kiosk kiosk-watchdog
# Remote-Services aktivieren
sudo systemctl enable ssh xrdp firewalld
sudo systemctl start ssh xrdp firewalld
# Status prüfen
sudo systemctl status myp-https myp-kiosk kiosk-watchdog
sudo systemctl status myp-https myp-kiosk kiosk-watchdog myp-firewall
sudo systemctl status ssh xrdp firewalld
# Logs anzeigen
sudo journalctl -u myp-https -f
sudo journalctl -u xrdp -f
sudo journalctl -u firewalld -f
```
## Wartung
@@ -254,7 +360,7 @@ sudo journalctl -u myp-https -f
4. **System-Test**
```bash
sudo ./setup.sh
# Option 4
# Option 5
```
## Sicherheit
@@ -299,7 +405,7 @@ Wenn Sie eine bestehende Installation mit `combined.sh` oder `installer.sh` habe
Bei Problemen:
1. **Log-Dateien prüfen**
2. **System-Test durchführen** (Option 4)
2. **System-Test durchführen** (Option 5)
3. **Services neu starten**
4. **Installation wiederholen** mit entsprechender Option