diff --git a/Lastenheft.md b/Lastenheft.md deleted file mode 100644 index 53b39cb..0000000 --- a/Lastenheft.md +++ /dev/null @@ -1,221 +0,0 @@ -# Lastenheft – OPNsense Zentralmanagement Agent - -## 1. Zielsetzung - -Ziel dieses Projektes ist die Entwicklung eines **OPNsense Zentralmanagement-Agents**, der es einer externen Management‑ und Monitoring‑Plattform ermöglicht, weitreichende Systeminformationen auszulesen sowie definierte Systemaktionen und Änderungen auf OPNsense‑Firewalls durchzuführen. - -Da die bestehende OPNsense‑API für den vorgesehenen Funktionsumfang nicht ausreichend ist, soll ein **Agent-basiertes Architekturmodell** umgesetzt werden. Der Agent stellt eine sichere, persistente Verbindung zu einem zentralen Backend her und fungiert als Kontroll‑, Informations‑ und Tunnel‑Endpunkt. - -Fur das frontent orientiere dich an dem vorschalg der Beispielbilder - -## 2. Ausgangssituation - -* Mehrere OPNsense‑Firewalls (verschiedene Versionen, Standorte, Kunden) -* Zentrale Verwaltungsoberfläche (ähnlich den gezeigten UI‑Mockups) -* Bestehende OPNsense‑API liefert nicht alle benötigten Informationen -* Bedarf an: - - * System‑Transparenz - * Fernzugriff (SSH / WebUI) - * Zentralem Backup‑ und Zertifikatsmanagement - -## 3. Gesamtarchitektur - -### 3.1 Komponenten - -#### 3.1.1 OPNsense Agent (pro Firewall) - -* Läuft lokal auf der OPNsense (Plugin oder Service) -* Baut **initiativ** eine Verbindung zum Backend auf (Outbound only) -* Liefert Systemdaten -* Führt Kommandos und Aktionen kontrolliert aus - -#### 3.1.2 Backend Server (Control Plane) - -* Zentrale Kommunikations‑ und Steuerinstanz -* Hält persistente Agent‑Verbindungen -* Stellt APIs für das Frontend bereit -* Baut Tunnel (SSH / HTTPS) zu den Firewalls über den Agent auf - -#### 3.1.3 Frontend Server (UI / Webinterface) - -* Web‑UI für Administratoren -* Darstellung der Firewalls (Übersichten, Details, Status) -* Steuerung von Aktionen (Tunnel, Backups, Reloads) - -## 4. Funktionale Anforderungen – Agent - -### 4.1 Hardware‑ und Systeminformationen - -Der Agent muss folgende Informationen bereitstellen: - -* Hersteller -* Modell -* Seriennummer -* BIOS‑Version -* CPU (Typ, Kerne, Threads, Takt) -* RAM (gesamt, frei) -* Massenspeicher (Typ, Kapazität, Belegung) -* OPNsense‑Version -* Uptime - -### 4.2 Dienste und Status - -Der Agent muss: - -* Alle Systemdienste auflisten -* Status je Dienst liefern (running / stopped) -* Dienst neu starten / stoppen / starten können (optional konfigurierbar) - -Beispiele: - -* configd -* dhcpd / kea -* unbound -* openvpn -* wireguard -* cron - -### 4.3 Netzwerk‑Interfaces - -Der Agent muss: - -* Alle Interfaces anzeigen -* Rolle (WAN / LAN / OPT) -* IP‑Adresse(n) -* MAC‑Adresse -* RX/TX‑Traffic -* Status (up/down) - -### 4.4 VPN‑Informationen - -#### 4.4.1 WireGuard - -* Tunnelname -* Peers -* Status (up/down) -* Transferstatistiken - -#### 4.4.2 OpenVPN - -* Server / Client‑Instanzen -* Verbindungsstatus -* Road‑Warrior‑Sessions - -### 4.5 Routing - -* Anzeige der Routing‑Tabelle -* Zielnetz -* Gateway -* Interface -* Typ (statisch / dynamisch) - -### 4.6 DHCP (KEA) - -* Aktive DHCP‑Instanzen -* Pools -* Leases (IPv4 / IPv6) -* Lease‑Status -* Zuordnung MAC ↔ IP - -### 4.7 Zertifikate - -* Auflistung aller Zertifikate -* Typ (CA, Server, User, ACME) -* Gültigkeitszeitraum -* Ablaufwarnungen -* Zertifikat neu laden / erneuern (optional) - -### 4.8 Backups - -Der Agent muss: - -* Konfigurations‑Backups erstellen können -* Backup lokal zwischenspeichern -* Backup an Backend übertragen -* Metadaten liefern (Größe, Zeitstempel) - -## 5. Tunnel‑Funktionalität - -### 5.1 Ziel - -Das Backend soll on‑demand Tunnel zu einer Firewall aufbauen können, ohne dass direkte eingehende Verbindungen zur Firewall notwendig sind. - -### 5.2 Tunnelarten - -* SSH‑Tunnel -* HTTPS‑Tunnel (WebUI) - -### 5.3 Funktionsweise - -* Agent hält persistente Verbindung zum Backend -* Backend fordert Tunnel an -* Agent öffnet lokalen Zielport (z. B. 127.0.0.1:22 oder 443) -* Agent erstellt Reverse‑Tunnel -* Backend stellt öffentlichen / internen Zugriffspunkt bereit - -### 5.4 Anforderungen an Tunnel - -* Vergleichbar mit **stunnel** -* Konfigurierbar: - - * Zielport - * Protokoll - * Laufzeit - * Zugriffsbeschränkung -* Frontend zeigt klickbaren Link zum Tunnel - -## 6. Sicherheit & Compliance - -### 6.1 Kommunikation - -* TLS‑verschlüsselt (mTLS bevorzugt) -* Agent authentifiziert sich eindeutig -* Zertifikatsbasierte Identität - -### 6.2 Rechte & Rollen - -* Agent darf nur explizit erlaubte Aktionen ausführen -* Rollenmodell im Backend (Admin, Read‑Only, Operator) - -### 6.3 Logging & Audit - -* Alle Aktionen werden protokolliert -* Tunnel‑Nutzung wird geloggt -* Konfigurationsänderungen nachvollziehbar - -## 7. Nicht‑funktionale Anforderungen - -### 7.1 Performance - -* Geringe Last auf OPNsense -* Asynchrone Abfragen - -### 7.2 Stabilität - -* Agent überlebt OPNsense‑Updates -* Automatische Reconnect‑Logik - -### 7.3 Skalierbarkeit - -* Unterstützung für viele hundert Firewalls -* Mandantenfähigkeit (Kunden / Standorte) - -## 8. Abgrenzung - -Nicht Bestandteil dieses Lastenhefts: - -* Vollständige Firewall‑Rule‑Bearbeitung -* Deep Packet Inspection -* IDS/IPS‑Regelverwaltung - -## 9. Abnahmekriterien - -* Alle genannten Informationspunkte sind im Frontend sichtbar -* Tunnel können on‑demand aufgebaut und beendet werden -* Backups sind abrufbar und wiederherstellbar -* Agent funktioniert mit mehreren OPNsense‑Versionen - ---- - -*Dieses Lastenheft basiert auf den bereitgestellten Screenshots, der beschriebenen Zielarchitektur und den funktionalen Anforderungen des Auftraggebers.* diff --git a/beispielbilder/Firewall_sec_wazuh.png b/beispielbilder/Firewall_sec_wazuh.png deleted file mode 100644 index 0fa4a55..0000000 Binary files a/beispielbilder/Firewall_sec_wazuh.png and /dev/null differ diff --git a/beispielbilder/Lastenheft b/beispielbilder/Lastenheft deleted file mode 100644 index 1331861..0000000 --- a/beispielbilder/Lastenheft +++ /dev/null @@ -1,221 +0,0 @@ -# Lastenheft – OPNsense Zentralmanagement Agent - -## 1. Zielsetzung - -Ziel dieses Projektes ist die Entwicklung eines **OPNsense Zentralmanagement-Agents**, der es einer externen Management‑ und Monitoring‑Plattform ermöglicht, weitreichende Systeminformationen auszulesen sowie definierte Systemaktionen und Änderungen auf OPNsense‑Firewalls durchzuführen. - -Da die bestehende OPNsense‑API für den vorgesehenen Funktionsumfang nicht ausreichend ist, soll ein **Agent-basiertes Architekturmodell** umgesetzt werden. Der Agent stellt eine sichere, persistente Verbindung zu einem zentralen Backend her und fungiert als Kontroll‑, Informations‑ und Tunnel‑Endpunkt. - -im Ordner beispielbilder sind vergleichbare Portale - -## 2. Ausgangssituation - -* Mehrere OPNsense‑Firewalls (verschiedene Versionen, Standorte, Kunden) -* Zentrale Verwaltungsoberfläche (ähnlich den gezeigten UI‑Mockups) -* Bestehende OPNsense‑API liefert nicht alle benötigten Informationen -* Bedarf an: - - * System‑Transparenz - * Fernzugriff (SSH / WebUI) - * Zentralem Backup‑ und Zertifikatsmanagement - -## 3. Gesamtarchitektur - -### 3.1 Komponenten - -#### 3.1.1 OPNsense Agent (pro Firewall) - -* Läuft lokal auf der OPNsense (Plugin oder Service) -* Baut **initiativ** eine Verbindung zum Backend auf (Outbound only) -* Liefert Systemdaten -* Führt Kommandos und Aktionen kontrolliert aus - -#### 3.1.2 Backend Server (Control Plane) - -* Zentrale Kommunikations‑ und Steuerinstanz -* Hält persistente Agent‑Verbindungen -* Stellt APIs für das Frontend bereit -* Baut Tunnel (SSH / HTTPS) zu den Firewalls über den Agent auf - -#### 3.1.3 Frontend Server (UI / Webinterface) - -* Web‑UI für Administratoren -* Darstellung der Firewalls (Übersichten, Details, Status) -* Steuerung von Aktionen (Tunnel, Backups, Reloads) - -## 4. Funktionale Anforderungen – Agent - -### 4.1 Hardware‑ und Systeminformationen - -Der Agent muss folgende Informationen bereitstellen: - -* Hersteller -* Modell -* Seriennummer -* BIOS‑Version -* CPU (Typ, Kerne, Threads, Takt) -* RAM (gesamt, frei) -* Massenspeicher (Typ, Kapazität, Belegung) -* OPNsense‑Version -* Uptime - -### 4.2 Dienste und Status - -Der Agent muss: - -* Alle Systemdienste auflisten -* Status je Dienst liefern (running / stopped) -* Dienst neu starten / stoppen / starten können (optional konfigurierbar) - -Beispiele: - -* configd -* dhcpd / kea -* unbound -* openvpn -* wireguard -* cron - -### 4.3 Netzwerk‑Interfaces - -Der Agent muss: - -* Alle Interfaces anzeigen -* Rolle (WAN / LAN / OPT) -* IP‑Adresse(n) -* MAC‑Adresse -* RX/TX‑Traffic -* Status (up/down) - -### 4.4 VPN‑Informationen - -#### 4.4.1 WireGuard - -* Tunnelname -* Peers -* Status (up/down) -* Transferstatistiken - -#### 4.4.2 OpenVPN - -* Server / Client‑Instanzen -* Verbindungsstatus -* Road‑Warrior‑Sessions - -### 4.5 Routing - -* Anzeige der Routing‑Tabelle -* Zielnetz -* Gateway -* Interface -* Typ (statisch / dynamisch) - -### 4.6 DHCP (KEA) - -* Aktive DHCP‑Instanzen -* Pools -* Leases (IPv4 / IPv6) -* Lease‑Status -* Zuordnung MAC ↔ IP - -### 4.7 Zertifikate - -* Auflistung aller Zertifikate -* Typ (CA, Server, User, ACME) -* Gültigkeitszeitraum -* Ablaufwarnungen -* Zertifikat neu laden / erneuern (optional) - -### 4.8 Backups - -Der Agent muss: - -* Konfigurations‑Backups erstellen können -* Backup lokal zwischenspeichern -* Backup an Backend übertragen -* Metadaten liefern (Größe, Zeitstempel) - -## 5. Tunnel‑Funktionalität - -### 5.1 Ziel - -Das Backend soll on‑demand Tunnel zu einer Firewall aufbauen können, ohne dass direkte eingehende Verbindungen zur Firewall notwendig sind. - -### 5.2 Tunnelarten - -* SSH‑Tunnel -* HTTPS‑Tunnel (WebUI) - -### 5.3 Funktionsweise - -* Agent hält persistente Verbindung zum Backend -* Backend fordert Tunnel an -* Agent öffnet lokalen Zielport (z. B. 127.0.0.1:22 oder 443) -* Agent erstellt Reverse‑Tunnel -* Backend stellt öffentlichen / internen Zugriffspunkt bereit - -### 5.4 Anforderungen an Tunnel - -* Vergleichbar mit **stunnel** -* Konfigurierbar: - - * Zielport - * Protokoll - * Laufzeit - * Zugriffsbeschränkung -* Frontend zeigt klickbaren Link zum Tunnel - -## 6. Sicherheit & Compliance - -### 6.1 Kommunikation - -* TLS‑verschlüsselt (mTLS bevorzugt) -* Agent authentifiziert sich eindeutig -* Zertifikatsbasierte Identität - -### 6.2 Rechte & Rollen - -* Agent darf nur explizit erlaubte Aktionen ausführen -* Rollenmodell im Backend (Admin, Read‑Only, Operator) - -### 6.3 Logging & Audit - -* Alle Aktionen werden protokolliert -* Tunnel‑Nutzung wird geloggt -* Konfigurationsänderungen nachvollziehbar - -## 7. Nicht‑funktionale Anforderungen - -### 7.1 Performance - -* Geringe Last auf OPNsense -* Asynchrone Abfragen - -### 7.2 Stabilität - -* Agent überlebt OPNsense‑Updates -* Automatische Reconnect‑Logik - -### 7.3 Skalierbarkeit - -* Unterstützung für viele hundert Firewalls -* Mandantenfähigkeit (Kunden / Standorte) - -## 8. Abgrenzung - -Nicht Bestandteil dieses Lastenhefts: - -* Vollständige Firewall‑Rule‑Bearbeitung -* Deep Packet Inspection -* IDS/IPS‑Regelverwaltung - -## 9. Abnahmekriterien - -* Alle genannten Informationspunkte sind im Frontend sichtbar -* Tunnel können on‑demand aufgebaut und beendet werden -* Backups sind abrufbar und wiederherstellbar -* Agent funktioniert mit mehreren OPNsense‑Versionen - ---- - -*Dieses Lastenheft basiert auf den bereitgestellten Screenshots, der beschriebenen Zielarchitektur und den funktionalen Anforderungen des Auftraggebers.* diff --git a/beispielbilder/firewal_dienste.png b/beispielbilder/firewal_dienste.png deleted file mode 100644 index c21eca7..0000000 Binary files a/beispielbilder/firewal_dienste.png and /dev/null differ diff --git a/beispielbilder/firewall_agent.png b/beispielbilder/firewall_agent.png deleted file mode 100644 index e916891..0000000 Binary files a/beispielbilder/firewall_agent.png and /dev/null differ diff --git a/beispielbilder/firewall_backup.png b/beispielbilder/firewall_backup.png deleted file mode 100644 index c9905ba..0000000 Binary files a/beispielbilder/firewall_backup.png and /dev/null differ diff --git a/beispielbilder/firewall_check.png b/beispielbilder/firewall_check.png deleted file mode 100644 index 3dd4561..0000000 Binary files a/beispielbilder/firewall_check.png and /dev/null differ diff --git a/beispielbilder/firewall_dhcp.png b/beispielbilder/firewall_dhcp.png deleted file mode 100644 index 9687cef..0000000 Binary files a/beispielbilder/firewall_dhcp.png and /dev/null differ diff --git a/beispielbilder/firewall_interface.png b/beispielbilder/firewall_interface.png deleted file mode 100644 index 826366b..0000000 Binary files a/beispielbilder/firewall_interface.png and /dev/null differ diff --git a/beispielbilder/firewall_loschen.png b/beispielbilder/firewall_loschen.png deleted file mode 100644 index b0f9d75..0000000 Binary files a/beispielbilder/firewall_loschen.png and /dev/null differ diff --git a/beispielbilder/firewall_portal_log.png b/beispielbilder/firewall_portal_log.png deleted file mode 100644 index db32b65..0000000 Binary files a/beispielbilder/firewall_portal_log.png and /dev/null differ diff --git a/beispielbilder/firewall_routen.png b/beispielbilder/firewall_routen.png deleted file mode 100644 index a270ac6..0000000 Binary files a/beispielbilder/firewall_routen.png and /dev/null differ diff --git a/beispielbilder/firewall_shell.png b/beispielbilder/firewall_shell.png deleted file mode 100644 index 9f302f7..0000000 Binary files a/beispielbilder/firewall_shell.png and /dev/null differ diff --git a/beispielbilder/firewall_tunnel.png b/beispielbilder/firewall_tunnel.png deleted file mode 100644 index 664e432..0000000 Binary files a/beispielbilder/firewall_tunnel.png and /dev/null differ diff --git a/beispielbilder/firewall_ubersicht.png b/beispielbilder/firewall_ubersicht.png deleted file mode 100644 index 2fc086a..0000000 Binary files a/beispielbilder/firewall_ubersicht.png and /dev/null differ diff --git a/beispielbilder/firewall_update.png b/beispielbilder/firewall_update.png deleted file mode 100644 index f9461b7..0000000 Binary files a/beispielbilder/firewall_update.png and /dev/null differ diff --git a/beispielbilder/firewall_vpn.png b/beispielbilder/firewall_vpn.png deleted file mode 100644 index ae6856c..0000000 Binary files a/beispielbilder/firewall_vpn.png and /dev/null differ diff --git a/beispielbilder/firewall_wazuh.png b/beispielbilder/firewall_wazuh.png deleted file mode 100644 index f62dbc9..0000000 Binary files a/beispielbilder/firewall_wazuh.png and /dev/null differ diff --git a/beispielbilder/firewall_zertifikate.png b/beispielbilder/firewall_zertifikate.png deleted file mode 100644 index e882a68..0000000 Binary files a/beispielbilder/firewall_zertifikate.png and /dev/null differ diff --git a/beispielbilder/firewalljob.png b/beispielbilder/firewalljob.png deleted file mode 100644 index 6adfec1..0000000 Binary files a/beispielbilder/firewalljob.png and /dev/null differ diff --git a/beispielbilder/startseite.png b/beispielbilder/startseite.png deleted file mode 100644 index 6af3166..0000000 Binary files a/beispielbilder/startseite.png and /dev/null differ