Security Advisor¶
Der Security Advisor prüft die Sicherheitskonfiguration jedes angebundenen Servers sowie panelweite Einstellungen und fasst die Ergebnisse in einem Score zusammen. Jede Prüfung liefert eine Bewertung (Bestanden, Warnung oder Kritisch) und – wo sicher möglich – einen Ein-Klick-Fix.
Die Seite finden Sie im Admin-Bereich unter Security Advisor.
Score-Übersicht¶
Oben zeigt eine Ringgrafik das Verhältnis bestandener zu geprüften Checks (z. B. 12/15).
| Score | Farbe | Bedeutung |
|---|---|---|
| ≥ 80 % bestanden | Grün | Gute Grundhärtung |
| 50–79 % bestanden | Gelb | Verbesserungen empfohlen |
| < 50 % bestanden | Rot | Dringender Handlungsbedarf |
Die einzelnen Prüfungen werden darunter als Karten angezeigt und automatisch sortiert: Kritisch zuerst, dann Warnungen, dann bestandene Checks. Bei Multi-Server-Setups trägt jede Karte den Namen des betroffenen Servers.
Live-Abfrage
Die Daten werden bei jedem Aufruf frisch von jedem aktiven Server abgefragt (nicht gecacht). Über Aktualisieren oben rechts können Sie die Prüfung erneut auslösen.
Panel-Prüfungen¶
Diese Checks betreffen das Panel selbst, unabhängig vom Server.
| Prüfung | Bestanden wenn | Fix |
|---|---|---|
| Passwort-Mindestlänge | Mindestlänge ≥ 12 Zeichen (sonst Warnung) | Setzt die Mindestlänge auf 12 |
| Brute-Force-Schutz | Login-Schutz aktiv (Max. Versuche und Sperrzeit gesetzt), sonst Kritisch | Aktiviert den Schutz (5 Versuche, 15 Min. Sperre) |
Beide Fixes ändern die entsprechenden Panel-Einstellungen direkt. Die Feinjustierung nehmen Sie unter Einstellungen > Sicherheit vor.
Server-Prüfungen¶
Diese Checks werden vom Agent auf jedem aktiven Server ausgeführt.
SSH¶
| Prüfung | Bestanden | Warnung | Kritisch |
|---|---|---|---|
Root-Login (PermitRootLogin) |
no |
prohibit-password / forced-commands-only |
yes |
| Passwort-Authentifizierung | no (nur Schlüssel) |
yes |
– |
| SSH-Port | Nicht-Standard-Port | Port 22 | – |
Firewall & Brute-Force¶
| Prüfung | Bestanden | Kritisch / Warnung |
|---|---|---|
| nftables-Firewall | Dienst aktiv | Kritisch, wenn inaktiv |
| fail2ban | Dienst aktiv | Kritisch, wenn nicht läuft |
fail2ban SSH-Jail (sshd) |
Jail aktiv | Warnung, wenn nicht aktiv |
System & PHP¶
| Prüfung | Bestanden | Warnung / Kritisch |
|---|---|---|
| Unattended Upgrades | Automatische Sicherheitsupdates aktiv | Warnung, wenn deaktiviert |
| PHP-Version | Keine EOL-Version installiert | Kritisch, wenn PHP < 8.1 gefunden wird |
Automatische Fixes¶
Karten mit dem Status Warnung oder Kritisch bieten einen Beheben-Button. Folgende Server-Fixes sind hinterlegt:
| Check | Was der Fix tut |
|---|---|
ssh_root_login |
Setzt PermitRootLogin no (Drop-in /etc/ssh/sshd_config.d/enconf.conf), reload sshd |
ssh_password_auth |
Setzt PasswordAuthentication no, reload sshd |
firewall_active |
systemctl enable --now nftables |
fail2ban_active |
systemctl enable --now fail2ban |
fail2ban_ssh_jail |
Legt sshd-Jail an und startet fail2ban neu |
unattended_upgrades |
Installiert und aktiviert unattended-upgrades |
SSH-Fixes brauchen eine Bestätigung
Vor jedem SSH-Fix erscheint eine Rückfrage. Der Agent hat zusätzlich fest verdrahtete Schutzmechanismen, damit Sie sich nicht aussperren:
- Root-Login deaktivieren wird abgelehnt, solange kein anderer Benutzer einen
authorized_keys-Eintrag hat. - Passwort-Auth deaktivieren wird abgelehnt, solange kein Benutzer einen SSH-Key hinterlegt hat.
- SSH-Port wird nie automatisch geändert – das müssen Sie manuell und mit angepasster Firewall/Konsole tun.
In diesen Fällen bleibt der Check unverändert und Sie erhalten eine erklärende Meldung.
AppArmor-Status¶
Ist AppArmor auf mindestens einem Server verfügbar, erscheint eine eigene AppArmor-Karte mit einer Zusammenfassung über alle Server:
| Kennzahl | Bedeutung |
|---|---|
| Server | Server mit verfügbarem AppArmor / Gesamtzahl |
| Profile | Anzahl geladener enconf-<user>-Profile |
| Complain | Profile im Complain-Mode |
| Enforce | Profile im Enforce-Mode |
Darunter listet die Karte jeden Server einzeln auf (geladene Profile gesamt, davon enforce/complain, davon enconf-Profile) mit einem Umschalter Complain ↔ Enforce.
Complain-Mode ist der Auslieferungszustand
enconf erzeugt für jedes Kunden-PHP-FPM ein eigenes AppArmor-Profil (enconf-<user>) und lädt es im Complain-Mode. In diesem Modus wird nichts blockiert – Regelverstöße werden lediglich nach syslog protokolliert. Das ist die aktive Absicherung und dient dazu, echtes Kundenverhalten zu beobachten, bevor blockiert wird.
Enforce-Mode ist eine bewusste Entscheidung (Phase 2)
Der Umschalter kann die Profile eines Servers auf Enforce stellen – dann werden Verstöße tatsächlich blockiert. Aktivieren Sie das erst, wenn Sie über die Complain-Logs genügend Daten gesammelt haben, um False-Positives auszuschließen. Andernfalls können legitime Kunden-PHP-Aufrufe brechen.
Schlägt das Laden im Enforce-Mode fehl, fällt der Server automatisch auf Complain zurück; die Karte zeigt dann einen entsprechenden Hinweis.
CRA-Compliance¶
Der Security Advisor hat einen zweiten Tab CRA-Compliance. Er bewertet die laufenden Sicherheits-Prüfungen gegen die Anforderungen des Cyber Resilience Act (Verordnung (EU) 2024/2847, Anhang I) und macht daraus einen Readiness-Nachweis.
- Anforderungs-Katalog — jede CRA-Anforderung (Zugriffsschutz, Angriffsfläche, DoS-Widerstand, Sicherheitsupdates, Support-Zeitraum/EOL, Ausnutzungs-Minderung) wird mit den Advisor-Checks belegt, die sie stützen — inkl. Verweis auf die Anhang-I-Fundstelle.
- Readiness-Score — Prozentsatz der erfüllten von den bewertbaren Anforderungen.
- EOL-Prüfung — PHP- und Debian-Versionen werden gegen ihr Support-Ende geprüft (End-of-Life = Sicherheitslücke im Sinne des CRA-Support-Zeitraums). Jede installierte PHP-Version wird erfasst — auch zusätzlich installierte alte Versionen.
- Komponenten-Inventur — Web (nginx), FTP (ProFTPD), Mail (Postfix/Dovecot/rspamd), Datenbank (MariaDB) und DNS (PowerDNS) werden namentlich mit Version im Nachweis aufgeführt. Diese Dienste stammen aus den Debian-Paketquellen und erhalten Sicherheits-Backports über den gesamten OS-Lebenszyklus — die Versionsnummer ist daher kein EOL-Signal, entscheidend sind OS-Support (OS-EOL) und automatische Updates.
- Security-Ring verifiziert — der Update-Check bestätigt nicht nur, dass
unattended-upgradesläuft, sondern dass die Debian-Security-Suite (<codename>-security) als Quelle konfiguriert ist, im Origins-Pattern steht und der periodische Trigger (APT::Periodic::Unattended-Upgrade "1") aktiv ist. Nur dann fließen Security-Fixes wirklich. - Pro-Dienst-Härtung — dedizierte Checks über die Inventur hinaus: Mail-Transport-TLS (Postfix), MariaDB nicht öffentlich erreichbar, ProFTPD-chroot (
DefaultRoot ~), sowie fail2ban-Jails für Mail und FTP (nicht nur SSH). - Informative Checks — nginx (HTTPS-Abdeckung: wie viele Vhosts ein TLS-Zertifikat haben) und PowerDNS (DNSSEC-Abdeckung: wie viele Zonen signiert sind). Bewusst informativ statt rote Ampel, weil TLS pro Vhost und DNSSEC pro Zone optional sein können.
Ehrliche Einordnung: CRA vs. NIS2
Der CRA verpflichtet Hersteller von Produkten mit digitalen Elementen — ein Hosting-/Managed-Dienst ist selbst kein CRA-Produkt. CRA-relevant ist daher (a) enconf als Produkt (Pflicht seines Herstellers) und (b) dieses Dashboard als Umgebungs-Nachweis für Kunden, die selbst Produkte herstellen. Für den Betrieb eines Hosting-/DNS-Dienstes greifen primär die NIS2-Pflichten (Art. 21 Risikomanagement-Maßnahmen). Die hier geprüften technischen Maßnahmen (Patch-Management, Kryptografie, Zugriffskontrolle, Härtung) decken beide Rahmen weitgehend mit ab — das Dashboard liefert Nachweise, keine rechtliche Konformität.
- Nachweis-Export — Button Nachweis exportieren erzeugt ein zeitgestempeltes, in sich geschlossenes Dokument (HTML oder JSON) mit Panel-Version, Score und je Anforderung dem Status samt Belegen. Ideal für Kunden-Nachfragen, Cyber-Versicherungs-Fragebögen oder Ausschreibungen.
Ehrliche Einordnung
Das Cockpit unterstützt die technischen CRA-Anforderungen durch laufende Überwachung und Nachweis-Dokumentation — es ersetzt keine rechtliche Konformität oder Zertifizierung. Konformitätsbewertung, CE-Kennzeichnung und Meldepflichten bleiben Herstellerpflicht. Dieser Hinweis steht auch in jedem exportierten Dokument.
Einordnung: Was aktiv ist, was Phase 2 ist¶
Der Advisor spiegelt den realen Härtungsstand wider und übertreibt nicht:
- Aktiv und ausgerollt: eigener Linux-User pro Website, Webroot
0710, PHP-FPM-Pool pro Website,open_basedir,disable_functions, Per-Customer/tmp, MariaDB-Grants pro Kunde, root-only Panel-Secrets, ProFTPD-chroot, nftables SMTP-Egress-Block, fail2ban, systemd-Slices pro Kunde und AppArmor-Profile im Complain-Mode. - Phase 2 (nicht als Standard aktiv): AppArmor-Enforce-Mode pro Server (über den Umschalter opt-in), tiergestufte systemd-Slice-Limits.
- Architektonisch nicht isolierbar: geteilter Kernel, eine MariaDB-Instanz, gemeinsames PHP-Binary, eine Postfix/Dovecot/PowerDNS-Instanz – das gilt für jedes Single-Kernel-Panel und ist nur mit Updates zu mitigieren.
Die vollständige Aufstellung finden Sie unter Sicherheit.