Zurück zu Fähigkeiten

dns-zonefile-config

guia-matthieu
Aktualisiert 2 days ago
6 Ansichten
111
20
111
Auf GitHub ansehen
Entwicklungaiapiautomation

Über

Diese Claude Skill unterstützt Entwickler dabei, DNS-Zonendateien korrekt für E-Mail-Zustellbarkeit (SPF, DKIM, DMARC), Sicherheit (DNSSEC, CAA) und Automatisierung mittels APIs und Terraform zu konfigurieren. Nutzen Sie sie beim Einrichten von E-Mail-Authentifizierung, um Spam-Filterung zu vermeiden, Domains vor Spoofing zu schützen oder DNS-Management mit Tools wie Cloudflare- und OVH-APIs zu automatisieren. Sie bietet Best Practices für 2024-2025 und Debugging-Anleitungen für DNS-Probleme.

Schnellinstallation

Claude Code

Empfohlen
Primär
npx skills add guia-matthieu/clawfu-skills -a claude-code
Plugin-BefehlAlternativ
/plugin add https://github.com/guia-matthieu/clawfu-skills
Git CloneAlternativ
git clone https://github.com/guia-matthieu/clawfu-skills.git ~/.claude/skills/dns-zonefile-config

Kopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren

Dokumentation

DNS Zonefile Configuration

Configurez correctement vos zones DNS pour l'email deliverability (SPF, DKIM, DMARC), la sécurité (DNSSEC, CAA), et l'automatisation (OVH API, Cloudflare, Terraform), basé sur les best practices 2024-2025.

When to Use This Skill

  • Configurer l'authentification email - SPF, DKIM, DMARC pour éviter le spam folder
  • Sécuriser un domaine - DNSSEC, CAA records, protection contre le spoofing
  • Automatiser la gestion DNS - OVH API, Cloudflare API, Terraform
  • Débugger des problèmes DNS - dig, nslookup, MXToolbox
  • Migrer ou configurer un nouveau domaine - Setup complet from scratch

Methodology Foundation

Sources:

Why This Matters: Depuis février 2024, Google et Yahoo exigent SPF, DKIM et DMARC pour les envois bulk. Sans configuration correcte, vos emails finissent en spam. Les expéditeurs authentifiés ont 2.7x plus de chances d'atteindre l'inbox.

What Claude Does vs What You Decide

Claude DoesYou Decide
Structures sales frameworksDeal strategy
Suggests discovery questionsRelationship approach
Creates proposal templatesPricing decisions
Identifies objection patternsNegotiation tactics
Analyzes deal dynamicsFinal deal terms

What This Skill Does

  1. Configure l'authentification email - SPF, DKIM, DMARC avec les bonnes valeurs
  2. Sécurise le domaine - DNSSEC, CAA, protection certificats
  3. Optimise les TTL - Valeurs recommandées par type de record
  4. Automatise via API - OVH, Cloudflare, Terraform
  5. Diagnostique les problèmes - Outils et troubleshooting

Instructions

Step 1: Comprendre la Structure de Zone

## Anatomie d'un Fichier de Zone

$ORIGIN example.com.     ; Le domaine de base
$TTL 3600                ; TTL par défaut (1 heure)

; SOA Record (Start of Authority)
@   IN  SOA   ns1.example.com. admin.example.com. (
            2024012801  ; Serial (YYYYMMDDNN)
            7200        ; Refresh (2h)
            3600        ; Retry (1h)
            1209600     ; Expire (2 semaines)
            3600        ; Minimum TTL (1h)
)

; Nameservers
@       IN  NS      ns1.example.com.
@       IN  NS      ns2.example.com.

; A Records
@       IN  A       203.0.113.10
www     IN  A       203.0.113.10
mail    IN  A       203.0.113.20

; CNAME Records
blog    IN  CNAME   www.example.com.

; MX Records (priorité croissante = préférence décroissante)
@       IN  MX  10  mail.example.com.
@       IN  MX  20  mail-backup.example.com.

; TXT Records (SPF, DKIM, DMARC, etc.)
@       IN  TXT     "v=spf1 ..."

Step 2: Email Authentication - SPF

SPF (Sender Policy Framework) - Déclare quels serveurs peuvent envoyer des emails pour votre domaine.

## SPF Record Syntax

v=spf1 [mechanisms] [qualifier]all

Mechanisms:
- ip4:203.0.113.0/24    ; Autoriser une plage IP
- ip6:2001:db8::/32     ; IPv6
- a                      ; Autoriser l'IP du record A du domaine
- mx                     ; Autoriser les serveurs MX
- include:_spf.google.com  ; Inclure le SPF d'un autre domaine
- exists:%{i}.spf.example.com  ; Macro avancée

Qualifiers:
- +all  ; PASS (dangereux, jamais utiliser)
- -all  ; FAIL (hard fail)
- ~all  ; SOFTFAIL (recommandé)
- ?all  ; NEUTRAL

Best Practices SPF:

## SPF - Règles Critiques

1. UN SEUL record SPF par domaine
   ❌ Plusieurs records = tous invalides

2. Utiliser ~all (softfail), pas -all (hardfail)
   → Permet à DMARC d'évaluer aussi DKIM

3. Maximum 10 DNS lookups
   → include:, a, mx, ptr comptent comme lookups
   → ip4/ip6 ne comptent pas
   → Utiliser des macros SPF si limite atteinte

4. Éviter les gros blocs CIDR
   → Préférer des IPs spécifiques aux /16 ou /8

Exemples SPF courants:

## SPF pour Google Workspace
v=spf1 include:_spf.google.com ~all

## SPF pour Microsoft 365
v=spf1 include:spf.protection.outlook.com ~all

## SPF pour OVH Mail
v=spf1 include:mx.ovh.com ~all

## SPF multi-services (Google + Mailchimp + Sendgrid)
v=spf1 include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all

## SPF avec IP dédiée
v=spf1 ip4:203.0.113.10 include:_spf.google.com ~all

Step 3: Email Authentication - DKIM

DKIM (DomainKeys Identified Mail) - Signature cryptographique des emails.

## Structure DKIM

Record Name: [selector]._domainkey.example.com
Record Type: TXT
Value: v=DKIM1; k=rsa; p=[public_key]

Exemple:
google._domainkey.example.com  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

Best Practices DKIM:

## DKIM - Règles Critiques

1. Un sélecteur différent par service
   → google._domainkey pour Google Workspace
   → mailchimp._domainkey pour Mailchimp
   → sendgrid._domainkey pour Sendgrid

2. Rotation des clés tous les 6 mois
   → Réduit le risque de compromission

3. Clé RSA 2048 bits minimum
   → 1024 bits est obsolète

4. Un sélecteur par tiers
   → Permet de révoquer sans impacter la production

Génération DKIM par service:

ServiceOù trouver la clé DKIM
Google WorkspaceAdmin Console → Apps → Google Workspace → Gmail → Authenticate email
Microsoft 365Microsoft 365 Defender → Email → DKIM
MailchimpSettings → Domain → View Setup Instructions
SendgridSettings → Sender Authentication → Domain Authentication
BrevoSettings → Senders & IP → Domains

Step 4: Email Authentication - DMARC

DMARC (Domain-based Message Authentication) - Politique qui dit aux serveurs quoi faire si SPF/DKIM échouent.

## Structure DMARC

Record Name: _dmarc.example.com
Record Type: TXT
Value: v=DMARC1; p=[policy]; [options]

Policies:
- p=none      ; Monitoring only (étape 1)
- p=quarantine ; Mettre en spam si échec
- p=reject    ; Rejeter si échec (étape finale)

Options courantes:
- rua=mailto:[email protected]  ; Rapports agrégés (XML)
- ruf=mailto:[email protected]  ; Rapports forensics (détaillés)
- pct=100     ; Pourcentage d'emails concernés
- sp=reject   ; Politique pour sous-domaines
- adkim=r     ; Alignement DKIM (r=relaxed, s=strict)
- aspf=r      ; Alignement SPF (r=relaxed, s=strict)

Progression DMARC recommandée:

## Étape 1: Monitoring (2-4 semaines)
v=DMARC1; p=none; rua=mailto:[email protected]

→ Collecter les rapports, identifier tous les expéditeurs légitimes

## Étape 2: Quarantine (2-4 semaines)
v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]

→ Tester sur 10% des emails, augmenter progressivement

## Étape 3: Quarantine 100%
v=DMARC1; p=quarantine; rua=mailto:[email protected]

## Étape 4: Reject (objectif final)
v=DMARC1; p=reject; rua=mailto:[email protected]; sp=reject

Services de monitoring DMARC:


Step 5: Security - DNSSEC & CAA

DNSSEC - Signe cryptographiquement les réponses DNS pour éviter le spoofing.

## Activer DNSSEC

Chez OVH:
1. Manager → Domaine → Zone DNS → DNSSEC
2. Activer → OVH génère les clés automatiquement

Chez Cloudflare:
1. DNS → Settings → DNSSEC
2. Enable DNSSEC → Copier le DS record
3. Ajouter le DS record chez le registrar

Vérification:
$ dig +dnssec example.com
→ Doit montrer RRSIG records

CAA Records - Limite quelles CA peuvent émettre des certificats SSL.

## Structure CAA

Record Type: CAA
Flags: 0
Tag: issue | issuewild | iodef
Value: "ca-domain" ou "mailto:..."

Exemples:

# Autoriser uniquement Let's Encrypt
example.com.  CAA  0 issue "letsencrypt.org"
example.com.  CAA  0 issuewild "letsencrypt.org"

# Autoriser Let's Encrypt + Sectigo
example.com.  CAA  0 issue "letsencrypt.org"
example.com.  CAA  0 issue "sectigo.com"

# Reporter les violations
example.com.  CAA  0 iodef "mailto:[email protected]"

# Bloquer tous les wildcards
example.com.  CAA  0 issuewild ";"

Best Practice CAA:

  • Toujours combiner avec DNSSEC (sinon vulnérable au spoofing)
  • Lister uniquement les CA que vous utilisez vraiment
  • Ajouter un iodef pour être alerté des tentatives

Step 6: TTL Best Practices

## TTL Recommandés par Type de Record

| Record Type | Usage | TTL Recommandé | Rationale |
|-------------|-------|----------------|-----------|
| A / AAAA | Serveur web stable | 3600-86400 (1h-24h) | Rarement changé |
| A (failover) | Avec health check | 60-300 (1-5min) | Failover rapide |
| CNAME | Alias stable | 3600-86400 | Suit le TTL de la cible |
| MX | Mail servers | 3600-21600 (1h-6h) | Failover via priorité MX |
| TXT (SPF/DKIM) | Email auth | 3600-86400 | Rarement changé |
| TXT (DMARC) | Email policy | 3600 | Peut nécessiter ajustements |
| NS | Nameservers | 86400-172800 (1-2j) | Très stable |
| CAA | Cert authority | 3600-86400 | Rarement changé |

## Règles Générales

1. Jamais TTL = 0 (non défini dans le standard)
2. Minimum recommandé: 300 (5 min)
3. Avant migration: baisser TTL 24-48h avant
4. Après migration stable: remonter le TTL

Step 7: Automatisation - OVH API

## Installation
# pip install ovh

## Configuration (ovh.conf)
[default]
endpoint=ovh-eu

[ovh-eu]
application_key=YOUR_APP_KEY
application_secret=YOUR_APP_SECRET
consumer_key=YOUR_CONSUMER_KEY

## Obtenir les clés
# https://eu.api.ovh.com/createToken/
# Permissions nécessaires:
# GET /domain/zone/*
# POST /domain/zone/*
# PUT /domain/zone/*
# DELETE /domain/zone/*
## Script Python - Gestion DNS OVH

import ovh

client = ovh.Client()

# Lister tous les domaines
domains = client.get('/domain/zone')
print(domains)

# Lister les records d'une zone
records = client.get(f'/domain/zone/{domain}/record')

# Obtenir un record spécifique
record = client.get(f'/domain/zone/{domain}/record/{record_id}')

# Créer un record TXT (ex: SPF)
result = client.post(
    f'/domain/zone/{domain}/record',
    fieldType='TXT',
    subDomain='',  # @ = racine
    target='v=spf1 include:_spf.google.com ~all',
    ttl=3600
)

# Créer un record DMARC
result = client.post(
    f'/domain/zone/{domain}/record',
    fieldType='TXT',
    subDomain='_dmarc',
    target='v=DMARC1; p=none; rua=mailto:[email protected]',
    ttl=3600
)

# Modifier un record
client.put(
    f'/domain/zone/{domain}/record/{record_id}',
    target='nouvelle_valeur',
    ttl=3600
)

# Supprimer un record
client.delete(f'/domain/zone/{domain}/record/{record_id}')

# IMPORTANT: Rafraîchir la zone après modifications
client.post(f'/domain/zone/{domain}/refresh')

Step 8: Automatisation - Cloudflare

## Terraform - Cloudflare DNS

provider "cloudflare" {
  api_token = var.cloudflare_api_token  # Jamais en dur!
}

# Zone data
data "cloudflare_zone" "example" {
  name = "example.com"
}

# A Record
resource "cloudflare_record" "www" {
  zone_id = data.cloudflare_zone.example.id
  name    = "www"
  value   = "203.0.113.10"
  type    = "A"
  ttl     = 3600
  proxied = true  # Cloudflare proxy
}

# SPF Record
resource "cloudflare_record" "spf" {
  zone_id = data.cloudflare_zone.example.id
  name    = "@"
  value   = "v=spf1 include:_spf.google.com ~all"
  type    = "TXT"
  ttl     = 3600
}

# DMARC Record
resource "cloudflare_record" "dmarc" {
  zone_id = data.cloudflare_zone.example.id
  name    = "_dmarc"
  value   = "v=DMARC1; p=reject; rua=mailto:[email protected]"
  type    = "TXT"
  ttl     = 3600
}

# MX Records
resource "cloudflare_record" "mx_primary" {
  zone_id  = data.cloudflare_zone.example.id
  name     = "@"
  value    = "aspmx.l.google.com"
  type     = "MX"
  ttl      = 3600
  priority = 1
}

# CAA Record
resource "cloudflare_record" "caa" {
  zone_id = data.cloudflare_zone.example.id
  name    = "@"
  type    = "CAA"
  ttl     = 3600
  data {
    flags = 0
    tag   = "issue"
    value = "letsencrypt.org"
  }
}

Best Practices Terraform/Cloudflare:

  • Ne jamais stocker les credentials en clair
  • Utiliser des variables d'environnement ou un secret manager
  • State remote (S3, GCS) pour la collaboration
  • Un workspace par environnement (staging/prod)

Step 9: Diagnostic & Troubleshooting

## Outils CLI

# Vérifier un record spécifique
dig example.com TXT +short
dig _dmarc.example.com TXT +short
dig google._domainkey.example.com TXT +short

# Vérifier les MX
dig example.com MX +short

# Vérifier DNSSEC
dig example.com +dnssec

# Tracer la résolution
dig example.com +trace

# Vérifier la propagation (multiple resolvers)
dig @8.8.8.8 example.com TXT    # Google
dig @1.1.1.1 example.com TXT    # Cloudflare
dig @9.9.9.9 example.com TXT    # Quad9

Outils en ligne:

OutilURLUsage
MXToolboxmxtoolbox.comSPF, DKIM, DMARC, blacklist
DMARC Analyzerdmarcanalyzer.comValidation DMARC
DNSVizdnsviz.netDebug DNSSEC
Mail-Testermail-tester.comScore email complet
Google Postmasterpostmaster.google.comRéputation domaine

Erreurs courantes:

SymptômeCause probableSolution
SPF permerrorMultiple SPF recordsFusionner en un seul
SPF permerror>10 DNS lookupsUtiliser ip4/ip6, macros SPF
DKIM failClé mal copiéeVérifier pas de retour à la ligne
DMARC nonePolicy p=noneNormal en monitoring, escalader après
Emails en spamSPF/DKIM OK mais pas alignésVérifier alignement DMARC (From: header)
SERVFAILDNSSEC mal configuréDebugger sur dnsviz.net

Templates Complets

Template: Nouveau Domaine (Google Workspace)

## Records à créer

# MX (mail)
@       MX  1   aspmx.l.google.com.
@       MX  5   alt1.aspmx.l.google.com.
@       MX  5   alt2.aspmx.l.google.com.
@       MX  10  alt3.aspmx.l.google.com.
@       MX  10  alt4.aspmx.l.google.com.

# SPF
@       TXT     "v=spf1 include:_spf.google.com ~all"

# DKIM (obtenir la clé dans Google Admin Console)
google._domainkey   TXT     "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

# DMARC (commencer en monitoring)
_dmarc  TXT     "v=DMARC1; p=none; rua=mailto:[email protected]"

# CAA (si Let's Encrypt pour SSL)
@       CAA     0 issue "letsencrypt.org"
@       CAA     0 iodef "mailto:[email protected]"

Template: Domaine Parké (protection anti-spoofing)

## Domaine qui n'envoie JAMAIS d'email

# SPF - Rejeter tout
@       TXT     "v=spf1 -all"

# DMARC - Rejeter tout
_dmarc  TXT     "v=DMARC1; p=reject; sp=reject; rua=mailto:[email protected]"

# Pas de MX = pas de réception
# (ou MX vers null: @  MX  0  .)

Template: Multi-Services (SaaS stack)

## SPF avec plusieurs services
@       TXT     "v=spf1 include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all"

## DKIM - Un par service
google._domainkey       TXT     "v=DKIM1; k=rsa; p=..."
k1._domainkey           TXT     "v=DKIM1; k=rsa; p=..."  # Mailchimp
s1._domainkey           TXT     "v=DKIM1; k=rsa; p=..."  # Sendgrid

## DMARC
_dmarc  TXT     "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

Checklist Configuration DNS

## Setup Initial

[ ] A/AAAA records pour web
[ ] CNAME pour www et autres alias
[ ] MX records configurés (avec priorités)
[ ] SPF record (un seul, ~all)
[ ] DKIM configuré pour chaque service d'envoi
[ ] DMARC en mode monitoring (p=none)
[ ] CAA records (limiter les CA autorisées)
[ ] DNSSEC activé chez le registrar

## Après 2-4 semaines de monitoring

[ ] Analyser les rapports DMARC
[ ] Identifier les expéditeurs non authentifiés
[ ] Corriger ou ajouter les sources légitimes
[ ] Escalader DMARC vers p=quarantine
[ ] Puis vers p=reject

## Maintenance

[ ] Rotation DKIM tous les 6 mois
[ ] Review des rapports DMARC mensuellement
[ ] Vérifier le score sur mail-tester.com
[ ] Monitorer la réputation sur Google Postmaster

Skill Boundaries

What This Skill Does Well

  • Structuring sales conversations
  • Creating discovery frameworks
  • Analyzing deal dynamics
  • Suggesting negotiation approaches

What This Skill Cannot Do

  • Replace relationship building
  • Guarantee closed deals
  • Know specific buyer psychology
  • Make pricing decisions

References

Email Authentication

DNS Security

TTL

Automation

Tools

Related Skills

  • nurture-sequences/ - Email deliverability impacte le nurturing
  • distribution-engine/ - Infrastructure pour le marketing automation

Skill version: 1.0 Last updated: 2026-01-28 Category: devops

GitHub Repository

guia-matthieu/clawfu-skills
Pfad: skills/devops/dns-zonefile-config
0
ai-skillsanthropicclaude-codeclaude-skillsmarketingmcp-server

Verwandte Skills

qmd

Entwicklung

qmd ist ein lokales Such- und Indexierungs-CLI-Tool, das Entwicklern ermöglicht, lokale Dateien mittels Hybridsuche zu indexieren und zu durchsuchen, die BM25, Vektoreinbettungen und Neuordnung kombiniert. Es unterstützt sowohl die Kommandozeilennutzung als auch den MCP-Modus (Model Context Protocol) zur Integration mit Claude. Das Tool verwendet Ollama für Einbettungen und speichert Indizes lokal, was es ideal für die direkte Suche in Dokumentationen oder Codebasen vom Terminal aus macht.

Skill ansehen

subagent-driven-development

Entwicklung

Diese Fähigkeit führt Implementierungspläne aus, indem für jede unabhängige Aufgabe ein neuer Subagent bereitgestellt wird, mit Code-Review zwischen den Aufgaben. Sie ermöglicht schnelle Iterationen, während Qualitätssicherungsschritte durch diesen Review-Prozess gewahrt bleiben. Nutzen Sie sie, wenn Sie überwiegend unabhängige Aufgaben innerhalb derselben Sitzung bearbeiten, um kontinuierlichen Fortschritt mit integrierten Qualitätsprüfungen zu gewährleisten.

Skill ansehen

mcporter

Entwicklung

Die mcporter-Skill ermöglicht es Entwicklern, Model Context Protocol (MCP)-Server direkt aus Claude heraus zu verwalten und aufzurufen. Sie bietet Befehle, um verfügbare Server aufzulisten, deren Tools mit Argumenten aufzurufen sowie Authentifizierung und Daemon-Lebenszyklus zu handhaben. Nutzen Sie diese Skill, um MCP-Server-Funktionalität in Ihren Entwicklungs-Workflow zu integrieren und zu testen.

Skill ansehen

adk-deployment-specialist

Entwicklung

Diese Fähigkeit stellt Vertex AI ADK-Agenten über das A2A-Protokoll bereit und orchestriert sie, verwaltet die AgentCard-Erkennung, Aufgabenübermittlung und unterstützende Tools wie die Code Execution Sandbox und Memory Bank. Sie ermöglicht den Aufbau von Multi-Agenten-Systemen mit sequenziellen, parallelen oder Schleifen-Orchestrierungsmustern in Python, Java oder Go. Verwenden Sie sie, wenn Sie aufgefordert werden, ADK-Agenten bereitzustellen oder Agenten-Workflows auf Google Cloud zu orchestrieren.

Skill ansehen