Security and privacy, in practice
A pentest agent fleet against my own site: what the architecture got right
I pointed PentestCode, an open-source multi-agent pentest harness, at everything I run under zakaria.lu. The interesting part was not the 40 findings but how a coordinator, shared state and a critic killed two false HIGHs before they reached the report.
1 Nov 2026
·
6 min read
·50 views
Security and privacy, in practice
Hiding the Keycloak admin console from the internet with an SSH tunnel
For a month my Keycloak admin console was one HTTPS request from anyone. How I closed it at the Traefik edge, opened a loopback-only door over SSH, and the details that decide whether the tunnel works or locks you out.
9 Oct 2026
·
6 min read
·93 views
Security and privacy, in practice
How to Redirect Keycloak to One Identity Provider
My Keycloak broker showed a username/password form beside LinkedIn even though LinkedIn was the only supported recruiter identity. Here is how I replaced that ambiguous page with a fail-closed browser flow.
14 Sep 2026
·
5 min read
·115 views
Working with Codex / ChatGPT
After Daybreak: enabling Codex Security on code I own
I applied for verified Daybreak access, completed the identity check, and mapped the next step: connecting my own GitHub repositories to Codex Security without giving up human review or scope control.
10 Sep 2026
·
5 min read
·196 views
Working with Claude Code
The Claude Code security-guidance plugin, pushed to its limits
I had Anthropic's always-on security plugin installed for a month and assumed it was reviewing every turn. Its own log said otherwise. What each layer actually does, how far its configuration goes, and the one hook that says no.
6 Sep 2026
·
8 min read
·353 views
Security and privacy, in practice
A honeypot that only listens (and fail2ban that bites)
A logging-only honeypot on my Hetzner box: an unprivileged user, a systemd sandbox with one non-obvious trap that silences it, and fail2ban to turn every knock into a self-expiring firewall ban.
30 Aug 2026
·
5 min read
·115 views
Security and privacy, in practice
Keycloak part 1: reading the login URL, parameter by parameter
I froze the redirect Spring sends you through and read it parameter by parameter. Three lookalike strings turned out to close three different attacks, and PKCE was already on without me asking for it.
9 Aug 2026
·
5 min read
·140 views
Working with Claude Code
I brokered my sign-in through Keycloak, and broke my own owner check
Putting a self-hosted identity server in front of LinkedIn deleted 240 lines of workaround and turned PKCE back on. It also handed out a privilege escalation — because the claim never changed, but the trust underneath it did.
8 Aug 2026
·
7 min read
·110 views
Security and privacy, in practice
Why /.well-known/security.txt matters, and how to serve it properly
RFC 9116 answers the one question a stranger needs answered about your site: who do I tell about a vulnerability. What the file must contain, why the expiry date belongs in a test, and the routing trap that makes an SPA host serve it as HTML at 200.
2 Aug 2026
·
8 min read
·209 views
Security and privacy, in practice
I didn't need an MCP gateway, I needed a smaller credential
I put an MCP server on the public internet so an AI client could file todos onto my private kanban board. The interesting part wasn't the protocol — it was making the dangerous call unrepresentable.
1 Aug 2026
·
7 min read
·133 views