traefik-hardening SKILL.md skillA

traefik-hardening from air-gapped/skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add air-gapped/skills/traefik-hardening@git:20261027.35cd08f

Pins git:20261027.35cd08f in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
air-gapped/skills
Path
.claude/skills/traefik-hardening/SKILL.md
Versions recorded
9
Latest version
git:20261027.0311dd9, committed Oct 27, 2026
First version recorded
Jul 22, 2026
Size
13,198 bytes
Repository stars
6
License
MIT

Harden a Traefik 2.x/3.x reverse proxy against abusive or unwanted traffic — per-identity rate + concurrency limiting, IP allowlisting, request-body buffering, middleware chaining, keying limits on a JWT claim/header instead of raw source IP, air-gapped plugin loading (localPlugins/WASM), and detection/response via access logs. Covers the 2.x→3.x middleware deltas (IPWhiteList→IPAllowList, Redis-backed distributed RateLimit, status-based Retry), the single-leader-counting trap, and where…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Traefik hardening — capping abusive traffic at the ingress

Harden a Traefik reverse proxy (standalone or Kubernetes ingress, 2.x or 3.x) against traffic that is *authorized but abusive* — a real user replaying their session token from a script, one client opening 50 parallel streams, request floods, scrapers — the cases a login wall doesn't stop.

## The one idea to internalize first

**A proxy usually cannot reliably tell a "bad" client from a "good" one — so don't try to classify; cap per-identity resource use regardless of client type.**

Every instinct to *detect* the abuser fails on inspection:
- **User-Agent** is one line to spoof (`curl -A "Mozilla/…"`).
- **TLS fingerprint (JA3/JA4)** genuinely separates a browser stack from `python-requests` — but **Traefik cannot see it** (the plugin API never receives the ClientHello; see `references/detection-and-response.md`), and `curl-impersonate` defeats it anyway.
- **Request rate** doesn't cleanly separate: a human dragging their mouse across a chat list fires hundreds of cheap GETs in seconds, while an agentic script doing long-context calls may crawl. Rate ≠ client type.
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add air-gapped/skills/traefik-hardening@sha256:088e932d82570d9b

The line at the top of this page pins the label git:20261027.35cd08f, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_lbkv6zgxchznxwbo.svg)](https://markdownregistry.com/a/art_lbkv6zgxchznxwbo)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 9 versions of this file, between Jul 22, 2026 and Oct 27, 2026, about one every 12 days.

versioncommittedcommitsizeaudit
git:20261027.0311dd9 latest2026-10-27 0311dd9 13,198 BA view · diff
git:20261027.0bd8d422026-10-27 0bd8d42 13,340 BA view · diff
git:20261027.35cd08f2026-10-27 35cd08f 13,428 BA view · diff
git:20261027.a5c541c2026-10-27 a5c541c 13,428 BA view · diff
git:20261027.ebcf7212026-10-27 ebcf721 13,130 BA view · diff
git:20260915.6a17e6d2026-09-15 6a17e6d 12,632 BA view · diff
git:20260821.f73edf02026-08-21 f73edf0 10,135 BA view · diff
git:20260725.aef8f182026-07-25 aef8f18 10,553 BA view · diff
git:20260722.863ea8f2026-07-22 863ea8f 10,437 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (13198 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

air-gapped/skills · 6 stars · license MIT · pushed 2026-11-04 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_lbkv6zgxchznxwbo
GET https://markdownregistry.com/api/v1/resolve?ref=air-gapped/skills/traefik-hardening
GET https://markdownregistry.com/api/v1/blob/088e932d82570d9b33786930994bc5cea5fe435468a177b402ebd128b38c56ea

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from air-gapped/skills

aiperf SKILL.md skill
air-gapped/skills · .claude/skills/aiperf/SKILL.md · NVIDIA AIPerf — vendor-neutral generative-AI inference benchmarking (genai-perf successor). `aiperf profile`…
git:20261019.9eca78f · audit A · 6 stars
airgap-vetting SKILL.md skill
air-gapped/skills · .claude/skills/airgap-vetting/SKILL.md · Vet an open-source product for air-gap readiness BEFORE adoption. Answers eight questions — telemetry…
git:20261027.4b5fb58 · audit A · 6 stars
analytical-troubleshooting SKILL.md skill
air-gapped/skills · .claude/skills/analytical-troubleshooting/SKILL.md · Structured live troubleshooting for deviation problems: something worked (or should work) and now doesn't, and the…
git:20261019.819b406 · audit A · 6 stars
ansible-idrac-9-10 SKILL.md skill
air-gapped/skills · .claude/skills/ansible-idrac-9-10/SKILL.md · Run and debug `dellemc.openmanage` Ansible playbooks against Dell PowerEdge **iDRAC 9** (14G–16G) and **iDRAC 10** (17G…
git:20261019.b3bbe99 · audit A · 6 stars
argo-cd-apps SKILL.md skill
air-gapped/skills · .claude/skills/argo-cd-apps/SKILL.md · Author and maintain Argo CD `Application` and `ApplicationSet` manifests as a GitOps consumer (publisher), targeting…
git:20261027.31fbcc7 · audit A · 6 stars
autoresearch SKILL.md skill
air-gapped/skills · .claude/skills/autoresearch/SKILL.md · Autonomous experiment loops that hill-climb a measurable metric — apply one change, measure, keep it only if the number…
git:20261027.75d87c7 · audit A · 6 stars
baml-expert SKILL.md skill
air-gapped/skills · .claude/skills/baml-expert/SKILL.md · BAML (Boundary ML) expert for projects defining LLM calls as typed functions in .baml files with a generated Python…
git:20261027.db2bb25 · audit A · 6 stars
ceph-performance SKILL.md skill
air-gapped/skills · .claude/skills/ceph-performance/SKILL.md · Tune and benchmark a healthy Ceph cluster, with Rook-on-Kubernetes specifics: mClock profiles and the NVMe…
git:20261027.28d2580 · audit A · 6 stars
ceph-s3 SKILL.md skill
air-gapped/skills · .claude/skills/ceph-s3/SKILL.md · Run Ceph RGW as an S3 endpoint under Rook (CephObjectStore, CephObjectStoreUser, ObjectBucketClaim, COSI…
git:20261027.61472c6 · audit A · 6 stars
ceph-troubleshooting SKILL.md skill
air-gapped/skills · .claude/skills/ceph-troubleshooting/SKILL.md · Diagnose and recover an unhealthy Ceph cluster, with Rook-on-Kubernetes specifics: slow or stuck recovery/backfill…
git:20261027.0ad34cc · audit A · 6 stars
chat-completions-api SKILL.md skill
air-gapped/skills · .claude/skills/chat-completions-api/SKILL.md · Reference for the OpenAI Chat Completions API (/v1/chat/completions) and legacy /v1/completions as the lingua-franca…
git:20261027.42f4242 · audit A · 6 stars
claude-code-ci-harness SKILL.md skill
air-gapped/skills · .claude/skills/claude-code-ci-harness/SKILL.md · Run Claude Code headlessly as an isolated CI harness against any Anthropic Messages-compatible endpoint (local engine…
git:20261019.25dcc92 · audit A · 6 stars

Every file in air-gapped/skills

Browse by kind, by grade A, or by owner.