#42Case studyInfrastructure & Dev

Branded Errors + Scanner Armor

Every site on the server fleet got branded error pages (the 404 now pitches a free evyAI account) and behavior-based scanner blocking tuned against 96,597 real probe requests, without ever blocking the bots that matter.

Branded Errors + Scanner Armor screenshot
15 domains branded · 96,597 probe requests analyzed · AI crawlers welcomed on purpose
⚡ Even the 404 page sells

The problem

Visitors hitting a dead link saw a bare server error, while vulnerability scanners hammered the fleet with tens of thousands of probes for exploits that do not exist here.

What Claude Code did

Claude replaced every error page across 15 domains with branded ones, in two tiers so client sites stay brand-neutral, and masked the server fingerprint. Then it replayed 96,597 real probe requests from the logs to tune blocking rules keyed on behavior, never on IP ranges, because LinkedIn's preview bot and Bing live in the same cloud as the attackers. Scanners now get a closed connection and zero bytes.

The result

412 scanner IPs would have been auto-banned under the new rules, humans who hit a 404 get a page that sells, and the AI crawlers Joe wants indexing his sites (231,000 hits from one of them) sail through untouched.

Under the hood

Claudenginxfail2banLog-replay tuning

FAQ

Why not just ban the attacking networks?

The first draft flagged Joe's own home IP and a batch of real mobile users. Behavior is reliable; IP reputation is not.

Why welcome AI crawlers while blocking scanners?

House rule: never gate the crawl. AI assistants citing your pages is free distribution; scanners probing for exploits is free noise.

Ask Joe about this project

Want to build things like this?Apply to the Claude Masterclass →