DNSSec überprüfen

Du hast DNSSEC erfolgreich eingerichtet – egal, ob mit PowerDNS oder einem anderen Anbieter? Falls es irgendwann Probleme gibt, möchtest du sicher schnell darüber informiert werden.

Dafür erstelle ich den Ordner /opt/scripts/dnssec und lege darin die folgende Datei an. Ich nenne sie einfach mal dns_sec_check.sh.

#!/bin/bash

timestamp=$(date "+%d.%m.%Y %H:%M:%S")

# Domains, die überprüft werden sollen
DOMAINS=("domain.de" "domain2.de" "domain3" "domain4.de" "domain5.de")

# E-Mail-Adresse, an die Benachrichtigungen gesendet werden
MAILTO="mail@meinedomain.de"

# Funktion zur Überprüfung von DNSSEC
check_dnssec() {
    DOMAIN=$1
    # DNSSEC-Status der Domain abfragen
    DNSSEC_STATUS=$(dig +short +dnssec $DOMAIN)

    if [ -z "$DNSSEC_STATUS" ]; then
        # Keine DNSSEC-Daten gefunden
        echo "Warnung: $timestamp DNSSEC für $DOMAIN nicht korrekt konfiguriert!" | mail -s "DNSSEC-Fehler bei $DOMAIN" $MAILTO
    else
        # DNSSEC-Daten gefunden, alles in Ordnung
        echo "$timestamp DNSSEC für $DOMAIN ist korrekt konfiguriert."
    fi
}

# Überprüfung für alle Domains
for DOMAIN in "${DOMAINS[@]}"
do
    check_dnssec $DOMAIN
done

In Zeile 6 trägst du einfach deine Domains ein, die überprüft werden sollen.
In Zeile 9 hinterlegst du deine E-Mail-Adresse, um im Problemfall benachrichtigt zu werden.

Zum Schluss machst du die Datei noch ausführbar:

chmod +x /opt/scripts/dnssec/dns_sec_check.sh

Und richtest einen Cronjob ein der das ganze dann auch automatisch überprüft.

crontab -e
###
0 3 * * * /opt/scripts/dnssec/dns_sec_check.sh >> /opt/scripts/dnssec/dnssec.log 2>&1

Das Scripts schreibt mir auch eine .log Datei, den Part kannst Du aber auch auslassen :)