11 KiB
MYP Druckerverwaltung - Setup-Anleitung
Übersicht
Das neue konsolidierte setup.sh
Skript ersetzt alle bisherigen Installationsskripte und bietet eine benutzerfreundliche Menüführung für verschiedene Installationsmodi.
Voraussetzungen
- Betriebssystem: Debian/Raspbian (Raspberry Pi OS)
- Berechtigung: Root-Zugriff (sudo)
- Internetverbindung: Für Paket-Downloads erforderlich
- Hardware: Raspberry Pi oder kompatibles Debian-System
Neue Struktur
Dateien
setup.sh
- Konsolidiertes Hauptinstallationsskriptsystemd/
- Verzeichnis mit allen systemd-Service-Dateienmyp-https.service
- HTTPS-Backend-Servicemyp-kiosk.service
- Kiosk-Browser-Servicekiosk-watchdog.service
- Überwachungsservicekiosk-watchdog-python.service
- Python-Watchdog-Service
Entfernte Dateien
combined.sh
- Konsolidiert insetup.sh
installer.sh
- Konsolidiert insetup.sh
Installationsmodi
1. Abhängigkeiten installieren für manuelles Testen
Zweck: System vollständig vorbereiten für manuelle Tests und Entwicklung
Was wird installiert:
- Python 3 und pip
- Node.js und npm
- SSL-Zertifikate (inkl. Mercedes Corporate)
- Python-Pakete (Flask, SQLAlchemy, etc.)
- npm-Abhängigkeiten
- Anwendungsdeployment nach
/opt/myp
- SSL-Zertifikat-Generierung
- Minimaler Funktionstest
Verwendung:
sudo ./setup.sh
# Wähle Option 1
Ideal für:
- Entwicklungsumgebungen
- Manuelle Tests und Debugging
- Systeme ohne automatischen Kiosk-Modus
- Erste Installation und Validierung
Nach der Installation:
- HTTPS-Backend manuell starten:
cd /opt/myp && python3 app.py
- System bereit für Entwicklung und Tests
2. Vollständige Kiosk-Installation mit Remote-Zugang
Zweck: Komplette Produktionsinstallation mit automatischem Kiosk-Modus
Was wird konfiguriert:
- Alle Abhängigkeiten (automatisch falls noch nicht installiert)
- Desktop-Environments vollständig entfernen
- Minimale X11-Umgebung installieren
- 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
- Umfassende System-Tests
- Alte Dateien aufräumen
Verwendung:
sudo ./setup.sh
# Wähle Option 2
Ideal für:
- Produktionsumgebungen
- Dedizierte Kiosk-Systeme
- Finale Deployment mit Remote-Administration
- Vollautomatische Systeme
Nach der Installation:
- Neustart erforderlich:
sudo reboot
- Automatischer Kiosk-Modus beim Boot
- Remote-Zugang verfügbar über SSH und RDP
Systemd-Services
myp-https.service
- Zweck: HTTPS-Backend auf Port 443
- Benutzer: root (für privilegierten Port)
- Abhängigkeiten: network.target
- SSL: Automatische Zertifikat-Generierung
myp-kiosk.service
- Zweck: Chromium-Browser im Kiosk-Modus
- Benutzer: kiosk
- Abhängigkeiten: myp-https.service, graphical-session.target
- Features: Vollbild, SSL-Ignorierung, automatische Auflösungserkennung
kiosk-watchdog.service
- Zweck: Intelligente Systemüberwachung
- Funktionen:
- HTTPS-Backend-Überwachung
- SSL-Zertifikat-Überwachung
- Kiosk-Session-Überwachung
- Speicher-Überwachung
- Automatische Neustarts
kiosk-watchdog-python.service
- 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
- Zone
Konfiguration
SSL-Zertifikate
Mercedes Corporate Zertifikate:
- Automatische Installation aus
certs/mercedes/
- Unterstützte Formate: .crt, .pem, .cer
- DER-zu-PEM Konvertierung
Localhost-Zertifikat:
- Automatische Generierung für HTTPS
- Gültigkeitsdauer: 365 Tage
- Speicherort:
/opt/myp/certs/localhost/
Kiosk-Benutzer
Benutzer: kiosk
- Automatischer Login auf tty1
- 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
undm040tbaraspi001.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
/opt/myp/ # Hauptanwendungsverzeichnis
├── app.py # Flask-Hauptanwendung
├── models.py # Datenbankmodelle
├── blueprints/ # Flask-Blueprints
├── config/ # Konfigurationsdateien
├── database/ # SQLite-Datenbank
├── static/ # Statische Dateien (CSS, JS)
├── templates/ # HTML-Templates
├── uploads/ # Upload-Verzeichnis
├── utils/ # Hilfsfunktionen
├── logs/ # Log-Dateien
└── certs/ # SSL-Zertifikate
└── localhost/ # Localhost-Zertifikate
Logging
Installationslog: /var/log/myp-install.log
Service-Logs: journalctl -u <service-name>
Watchdog-Log: /var/log/kiosk-watchdog.log
Fehlerbehebung
Häufige Probleme
-
HTTPS-Backend nicht erreichbar
sudo systemctl status myp-https sudo journalctl -u myp-https -f
-
Kiosk-Browser startet nicht
sudo systemctl status myp-kiosk sudo journalctl -u myp-kiosk -f
-
SSL-Zertifikat-Probleme
sudo ./setup.sh # Option 5 für System-Test
-
Service-Neustart
sudo systemctl restart myp-https sudo systemctl restart kiosk-watchdog
-
SSH-Verbindung fehlgeschlagen
# 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
-
RDP-Verbindung fehlgeschlagen
# 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
-
Firewall-Probleme
# 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
# Services aktivieren
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 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
Regelmäßige Aufgaben
-
System-Updates
sudo apt update && sudo apt upgrade -y
-
Log-Rotation
- Automatisch durch systemd
- Watchdog rotiert eigene Logs bei >10MB
-
SSL-Zertifikat-Erneuerung
- Automatisch durch Watchdog bei Ablauf
- Manuell: Option 1 im Setup-Skript
-
System-Test
sudo ./setup.sh # Option 5
Sicherheit
Implementierte Maßnahmen
- Minimale Berechtigungen: Services laufen mit minimal nötigen Rechten
- SSL-Verschlüsselung: HTTPS für alle Verbindungen
- Systemd-Härtung: NoNewPrivileges, ProtectSystem
- Automatische Updates: Watchdog überwacht und repariert
- Passwortlose Kiosk: Reduziert Angriffsfläche
Empfohlene Zusatzmaßnahmen
- Firewall-Konfiguration
- SSH-Schlüssel statt Passwörter
- Regelmäßige Backups
- Monitoring der Log-Dateien
Migration von alten Installationen
Wenn Sie eine bestehende Installation mit combined.sh
oder installer.sh
haben:
-
Backup erstellen
sudo cp -r /opt/myp /opt/myp.backup
-
Neue Installation
sudo ./setup.sh # Option 3 für Service-Update
-
Konfiguration übertragen
- Datenbank-Dateien
- Upload-Verzeichnisse
- Benutzerdefinierte Konfigurationen
Support
Bei Problemen:
- Log-Dateien prüfen
- System-Test durchführen (Option 5)
- Services neu starten
- Installation wiederholen mit entsprechender Option
Das konsolidierte Setup-System bietet maximale Flexibilität bei minimaler Komplexität und ermöglicht sowohl Entwicklungs- als auch Produktionsumgebungen.