clusev/lang/de
boban 2b245c3d3a feat(wireguard): SSH lock + peer config download (v0.9.40)
Two dashboard additions to the WireGuard page:

- Peer config download: the show-once new-client view gets a "Download"
  button next to the QR code (streams clusev-wireguard.conf) plus an
  inline hint explaining QR-on-phone vs download-on-PC import.

- SSH lock (port 22): an optional toggle in WireGuard settings that walls
  off host SSH to the tunnel via a dedicated CLUSEV-WG-SSH chain on the
  host INPUT chain. Fail-open by construction: ESTABLISHED,RELATED + lo +
  wg0 + WG-subnet RETURN before the DROP (live sessions survive, SSH over
  the tunnel stays open); _ssh_gate_on refuses while wg0 is down; the boot
  unit's ConditionPathExists=wg0 and an in-function self-guard keep a
  broken tunnel from ever applying the DROP; ssh_gate_apply re-validates
  the subnet shape and fails open on a corrupt wg.env. Strong lock-out
  warning shown inline AND in the confirm modal (recommend a backup peer).
  New CLI escapes: clusev wg ssh-lock / ssh-unlock; clusev wg down clears
  both gates. Panel gate and SSH gate are independent toggles.

Write-bridge: new gate-ssh-on/gate-ssh-off actions (no args, host
whitelist + ConfirmToken wgSshGate, single-use uid-bound). Status collector
now reports gate.ssh. Adversarial lock-out review: all 8 failure modes
refuted. 348 tests pass, shellcheck clean, Pint clean, R12 verified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 09:25:19 +02:00
..
accounts.php feat(accounts): multi-user admin management — create (temp pw), list, remove, force-logout 2026-06-14 23:39:34 +02:00
audit.php feat(audit): configurable retention + scheduled clusev:prune-audit 2026-06-14 23:40:17 +02:00
auth.php i18n(auth): drop orphaned 2FA recovery hint strings 2026-06-20 15:47:26 +02:00
backend.php feat(ssh): SshKeyProvisioner — generate+install key, verify, switch credential, then disable password (rollback-safe) 2026-06-14 21:57:45 +02:00
common.php feat(webauthn): use a security key at the login challenge 2026-06-14 18:26:58 +02:00
dashboard.php feat(i18n): bilingual foundation (DE/EN) + localize auth/dashboard/servers/fleet/account 2026-06-13 22:36:16 +02:00
errors.php feat(auth): guests-only BlockBannedIp middleware + 403 page 2026-06-20 17:45:16 +02:00
files.php feat(branding): favicons + PWA manifest, and custom branded error pages 2026-06-14 15:27:49 +02:00
help.php feat(wg): WireGuard help topic (registration + DE/EN content + test) 2026-06-20 22:46:04 +02:00
mail.php fix(security): harden brute-force, rate-limiting and auth-DoS (audit follow-up) 2026-06-17 17:59:45 +02:00
modals.php feat(security): signed confirm-action tokens + airtight backup-code reveal 2026-06-15 18:35:33 +02:00
servers.php feat(servers): move fail2ban banned-IP list into a scrollable modal 2026-06-14 23:10:36 +02:00
services.php fix(services): live journal poll + command-palette server search 2026-06-14 20:13:08 +02:00
sessions.php feat(sessions): database sessions + list/revoke (other devices, per-user, global) with remember-token rotation 2026-06-14 23:34:00 +02:00
settings.php feat(auth): Anmeldeschutz settings tab + unban confirm flow 2026-06-20 18:13:12 +02:00
shell.php feat(wg): /wireguard live-status page (read-only) + nav (DE/EN) 2026-06-20 23:35:58 +02:00
system.php feat: short clusev commands in versions panel, lang strings, MOTD 2026-06-19 23:18:25 +02:00
update.php feat(versions): professional update phase labels, responsive update card, changelog accordion 2026-06-20 20:40:35 +02:00
validation.php feat(i18n): custom bilingual validation messages (DE + EN) 2026-06-14 15:45:02 +02:00
versions.php feat(versions): grouped + paginated changelog browser (no endless scroll) 2026-06-20 21:47:45 +02:00
wireguard.php feat(wireguard): SSH lock + peer config download (v0.9.40) 2026-06-21 09:25:19 +02:00