feat(crowdsec): CrowdSec IDS/IPS Management — v1.2.61
- Backend: internal/crowdsec/service.go — vollständige cscli-Wrapper (Decisions, Alerts, Bouncers, Machines, Collections, ServiceStatus) - Handler: 12 REST-Endpoints mit Audit-Logging unter /crowdsec/* - Migration 0036: crowdsec_settings-Tabelle - postinst: CrowdSec-Auto-Install (crowdsec + crowdsec-firewall-bouncer-nftables) inkl. sudoers-Einträge für alle cscli-Operationen - systemd: /var/lib/crowdsec in ReadWritePaths - UI: CrowdSec-Page mit StatusStrip + 5 Tabs (Decisions, Alerts, Bouncers, Machines, Collections), Sidebar-Eintrag, i18n EN+DE - firewall: flush ruleset → flush table inet edgeguard (CrowdSec-nftables-Table bleibt bei Firewall-Render erhalten) - cluster: Firewall-Reload nur bei echter IP-Änderung, nicht bei jedem periodischen Secondary-Heartbeat (verhindert nftables-Counter-Reset) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
"alerts": "Alarme",
|
||||
"license": "Lizenz",
|
||||
"settings": "Einstellungen",
|
||||
"crowdsec": "CrowdSec IDS",
|
||||
"section": {
|
||||
"overview": "Übersicht",
|
||||
"routing": "Routing",
|
||||
@@ -1679,5 +1680,82 @@
|
||||
"next": "Weiter",
|
||||
"showing": "Zeile {{from}}–{{to}}"
|
||||
}
|
||||
},
|
||||
"cs": {
|
||||
"title": "CrowdSec IDS",
|
||||
"intro": "Kollaborative Intrusion-Detection: Log-basierte Erkennung + Community-Blocklisten via nftables-Bouncer.",
|
||||
"notInstalled": "CrowdSec ist nicht installiert. Bitte das Paket crowdsec + crowdsec-firewall-bouncer-nftables installieren.",
|
||||
"status": {
|
||||
"agent": "Agent",
|
||||
"bouncer": "Bouncer",
|
||||
"decisions": "Aktive Sperren",
|
||||
"alerts": "Alarme",
|
||||
"running": "Aktiv",
|
||||
"stopped": "Gestoppt",
|
||||
"notInstalled": "Nicht installiert"
|
||||
},
|
||||
"tabs": {
|
||||
"decisions": "Entscheidungen",
|
||||
"alerts": "Alarme",
|
||||
"bouncers": "Bouncers",
|
||||
"machines": "Maschinen",
|
||||
"collections": "Collections"
|
||||
},
|
||||
"decision": {
|
||||
"ip": "IP-Adresse",
|
||||
"reason": "Grund",
|
||||
"origin": "Herkunft",
|
||||
"duration": "Dauer",
|
||||
"country": "Land",
|
||||
"as": "AS-Name",
|
||||
"type": "Typ",
|
||||
"unban": "Entsperren",
|
||||
"banModal": "Manuell sperren",
|
||||
"banBtn": "IP sperren",
|
||||
"confirmUnban": "IP {{ip}} wirklich entsperren?",
|
||||
"addSuccess": "IP {{ip}} wurde gesperrt.",
|
||||
"deleteSuccess": "Sperre aufgehoben."
|
||||
},
|
||||
"alert": {
|
||||
"id": "ID",
|
||||
"scenario": "Szenario",
|
||||
"events": "Events",
|
||||
"sourceIP": "Quell-IP",
|
||||
"country": "Land",
|
||||
"start": "Beginn",
|
||||
"stop": "Ende",
|
||||
"delete": "Verwerfen",
|
||||
"confirmDelete": "Alarm #{{id}} wirklich verwerfen?"
|
||||
},
|
||||
"bouncer": {
|
||||
"name": "Name",
|
||||
"ip": "IP",
|
||||
"validKey": "Key gültig",
|
||||
"version": "Version",
|
||||
"lastPull": "Letzter Pull",
|
||||
"type": "Typ",
|
||||
"delete": "Entfernen",
|
||||
"confirmDelete": "Bouncer {{name}} wirklich entfernen?"
|
||||
},
|
||||
"machine": {
|
||||
"id": "Machine-ID",
|
||||
"created": "Angelegt",
|
||||
"lastPush": "Letzter Push",
|
||||
"validated": "Validiert",
|
||||
"version": "Version",
|
||||
"delete": "Entfernen",
|
||||
"confirmDelete": "Maschine {{id}} wirklich entfernen?"
|
||||
},
|
||||
"collection": {
|
||||
"name": "Collection",
|
||||
"status": "Status",
|
||||
"version": "Version",
|
||||
"author": "Author",
|
||||
"install": "Installieren",
|
||||
"remove": "Entfernen",
|
||||
"enabled": "Installiert",
|
||||
"disabled": "Nicht installiert",
|
||||
"confirmRemove": "Collection {{name}} wirklich entfernen?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user