106 lines
8.1 KiB
PHP
106 lines
8.1 KiB
PHP
<?php
|
||
|
||
// Human-readable strings returned by backend services (HardeningService,
|
||
// FirewallService, Fail2banService, MaintenanceService, OsProfile) and shown in
|
||
// the UI: confirm-modal copy, guard/lockout refusals, read errors, and the
|
||
// supports()/reason sentences. Technical tokens (sshd, ufw, firewalld, ports,
|
||
// paths) stay verbatim. Reuse common.* for save/cancel/active/inactive/etc.
|
||
return [
|
||
// ── HardeningService: state labels + detail ──────────────────────────
|
||
'item_not_installed' => 'nicht installiert',
|
||
'label_ssh_root' => 'SSH-Root-Login',
|
||
'label_ssh_password' => 'SSH-Passwort-Login',
|
||
'label_auto_updates' => 'Automatische Updates',
|
||
|
||
// ── HardeningService: modal titles (per direction) ───────────────────
|
||
'title_ssh_root_enable' => 'SSH-Root-Login erlauben',
|
||
'title_ssh_root_disable' => 'SSH-Root-Login deaktivieren',
|
||
'title_ssh_password_enable' => 'SSH-Passwort-Login erlauben',
|
||
'title_ssh_password_disable' => 'SSH-Passwort-Login deaktivieren',
|
||
'title_fail2ban_enable' => 'fail2ban aktivieren',
|
||
'title_fail2ban_disable' => 'fail2ban deaktivieren',
|
||
'title_firewall_enable' => 'Firewall aktivieren',
|
||
'title_firewall_disable' => 'Firewall deaktivieren',
|
||
'title_unattended_enable' => 'Automatische Updates aktivieren',
|
||
'title_unattended_disable' => 'Automatische Updates deaktivieren',
|
||
|
||
// ── HardeningService: modal descriptions (per direction) ─────────────
|
||
'desc_ssh_root_enable' => 'Erlaubt direkten Root-Login über SSH wieder (PermitRootLogin yes) und lädt den SSH-Dienst neu.',
|
||
'desc_ssh_root_disable' => 'Unterbindet direkten Root-Login über SSH vollständig (PermitRootLogin no) — blockiert die Anmeldung als root per Passwort UND per SSH-Key — und lädt den SSH-Dienst neu.',
|
||
'desc_ssh_password_enable' => 'Erlaubt die Anmeldung per Passwort wieder (PasswordAuthentication yes).',
|
||
'desc_ssh_password_disable' => 'Anmeldung nur noch per SSH-Key (PasswordAuthentication no). Nur möglich, wenn ein Key hinterlegt ist.',
|
||
'desc_fail2ban_enable' => 'Installiert fail2ban (falls nötig) und startet den Dienst. Wiederholte Fehl-Logins werden gesperrt.',
|
||
'desc_fail2ban_disable' => 'Stoppt fail2ban und deaktiviert den Autostart.',
|
||
'desc_firewall_enable' => 'Installiert die Firewall (falls nötig), gibt vorher SSH + 80/443 frei und aktiviert sie.',
|
||
'desc_firewall_disable' => 'Deaktiviert die Firewall des Servers.',
|
||
'desc_unattended_enable' => 'Installiert (falls nötig) und aktiviert die automatischen Sicherheitsupdates des Systems.',
|
||
'desc_unattended_disable' => 'Schaltet die automatischen Updates ab.',
|
||
|
||
// ── HardeningService: errors + guards ────────────────────────────────
|
||
'hardening_status_read_failed' => 'Härtungs-Status konnte nicht gelesen werden.',
|
||
'ssh_probe_no_exec' => 'SSH-Anmeldung erfolgreich, aber es lassen sich keine Befehle ausführen.',
|
||
'ssh_password_self_lockout' => 'Clusev verbindet sich selbst per Passwort — Passwort-Login kann nicht deaktiviert werden, sonst verliert Clusev den Zugang. Hinterlege zuerst einen SSH-Key-Zugang.',
|
||
'ssh_password_no_key' => 'Kein SSH-Key hinterlegt — Passwort-Login kann nicht deaktiviert werden (Aussperrgefahr).',
|
||
'ssh_root_self_lockout' => 'Clusev verbindet sich als root — Root-Login kann nicht deaktiviert werden, sonst sperrt sich Clusev selbst aus. Lege zuerst einen Nicht-Root-Benutzer (mit sudo + SSH-Key) an und stelle Clusev darauf um.',
|
||
|
||
// ── FirewallService: guards / reasons / errors ───────────────────────
|
||
'firewalld_read_only' => 'Regelverwaltung für firewalld ist in dieser Version nur lesend — bitte am Server konfigurieren.',
|
||
'invalid_port' => 'Ungültiger Port (1–65535).',
|
||
'invalid_source' => 'Ungültige Quelle — IP-Adresse oder CIDR erwartet.',
|
||
'port_or_source_required' => 'Port oder Quelle ist erforderlich.',
|
||
'deny_without_port_blocks_ssh' => 'Eine :action-Regel ohne Port würde auch den SSH-Zugang blockieren und ist nicht erlaubt. Nutze fail2ban, um einzelne IPs vom SSH-Zugang auszusperren.',
|
||
'deny_on_ssh_port_blocks_ssh' => 'Eine :action-Regel auf den SSH-Port (:port) ist nicht erlaubt (Aussperrgefahr). Nutze fail2ban, um einzelne IPs vom SSH-Zugang auszusperren.',
|
||
'firewalld_port_required' => 'firewalld: Bitte einen Port angeben.',
|
||
'firewall_status_read_failed' => 'Firewall-Status konnte nicht gelesen werden — Regel nicht entfernt.',
|
||
'rule_gone' => 'Regel existiert nicht mehr.',
|
||
'ssh_rule_guard' => 'Diese Regel hält den SSH-Zugang (Port :port) offen und kann nicht entfernt werden — sonst sperrt sich Clusev selbst aus. Deaktiviere bei Bedarf die gesamte Firewall.',
|
||
|
||
// ── Fail2banService: guards / reasons / errors ───────────────────────
|
||
'ip_belongs_to_clusev' => 'Diese IP gehört zum Clusev-Zugang und kann nicht gesperrt werden (Aussperrgefahr).',
|
||
'already_whitelisted' => 'Bereits auf der Whitelist.',
|
||
'not_on_whitelist' => 'Nicht auf der Whitelist.',
|
||
'loopback_stays_whitelisted' => 'Loopback bleibt immer auf der Whitelist.',
|
||
'invalid_input' => 'Ungültige Eingabe.',
|
||
'invalid_ip_or_cidr' => 'Ungültige IP-Adresse oder CIDR.',
|
||
'fail2ban_config_read_failed' => 'fail2ban-Konfiguration konnte nicht gelesen werden.',
|
||
|
||
// ── OsProfile: family labels ─────────────────────────────────────────
|
||
'family_debian' => 'Debian/Ubuntu',
|
||
'family_rhel' => 'RHEL/Fedora',
|
||
'family_suse' => 'openSUSE/SLES',
|
||
'family_arch' => 'Arch Linux',
|
||
'family_alpine' => 'Alpine Linux',
|
||
'family_unknown' => 'Unbekanntes System',
|
||
|
||
// ── OsProfile: firewall labels ───────────────────────────────────────
|
||
'firewall_label_ufw' => 'Firewall (UFW)',
|
||
'firewall_label_firewalld' => 'Firewall (firewalld)',
|
||
'firewall_label_generic' => 'Firewall',
|
||
|
||
// ── OsProfile: supports() reasons (:family = familyLabel()) ──────────
|
||
'support_ssh' => 'SSH-Härtung benötigt systemd, das auf :family nicht erkannt wurde.',
|
||
'support_services' => 'Dienst-Steuerung benötigt systemd, das hier nicht erkannt wurde.',
|
||
'support_updates' => 'Paket-Updates über Clusev werden unter :family noch nicht unterstützt.',
|
||
'support_fail2ban' => 'fail2ban wird unter :family über Clusev noch nicht unterstützt.',
|
||
'support_firewall' => 'Eine unterstützte Firewall (UFW oder firewalld) wurde unter :family nicht gefunden.',
|
||
'support_auto_updates' => 'Automatische Updates werden unter :family über Clusev noch nicht unterstützt.',
|
||
|
||
// ── FleetService: SFTP / file-manager / journal errors ───────────────
|
||
'authorized_keys_unreadable' => 'authorized_keys leer oder nicht lesbar.',
|
||
'delete_failed_perms' => 'Löschen fehlgeschlagen (Rechte?).',
|
||
'file_too_large_download' => 'Datei zu groß für den Download (>50 MB).',
|
||
'save_failed_perms' => 'Speichern fehlgeschlagen (Rechte?).',
|
||
'upload_failed_perms' => 'Upload fehlgeschlagen (Rechte?).',
|
||
'journal_needs_privileges' => 'Systemjournal benötigt erhöhte Rechte (Gruppe adm/systemd-journal) oder sudo.',
|
||
|
||
// ── CredentialVault: SSH credential guards (:server = name) ──────────
|
||
'no_ssh_credential' => 'Kein SSH-Credential für Server :server hinterlegt.',
|
||
'ssh_access_locked' => 'SSH-Zugang für :server ist gesperrt.',
|
||
|
||
// ── HardeningService: invalid action invariant (:action) ─────────────
|
||
'unknown_hardening' => 'Unbekannte Härtung: :action',
|
||
|
||
// ── SshKeyProvisioner ─────────────────────────────────────────────────
|
||
'ssh_key_verify_failed' => 'Key-Login konnte nicht bestätigt werden (:error) — Passwort-Login bleibt aktiv.',
|
||
];
|