Moin zusammen. Ich bin zwar neu hier, aber habe schon die eine oder andere Hilfe "abgezogen". Zeit sich zu revanchieren...
Ich stelle Euch hier zwei Scripts zur Verfügung, durch die sich die Erstellung der Schlüssel und DNS-Einträge für opendkim vereinfachen.
Das erste Script ist dadurch enstanden, das opendkim-genkey die Schlüssel- und DNS.txt-Datei immer unter dem Namen des Selektors speichert. Ärgerlich, wenn man mehrere Domains hat, dann muss man ständig umbenennen, etc.
Das zweite Script ist entstanden, weil es beim Kopieren der DNS-Einträge (gerade in PuTTY und nano) immer schnell zu Fehlern kommt, weil nano bei zu langen Zeilen ein $ zeigt.
Und zu guter Letzt: macht man es nicht so oft, dann vergisst man alles wieder....
Also, hier die dokumentierten Scripte, ggf. müsst Ihr etwas anpassen, aber die standart Pfade sind /etc/opendkim und /etc/opendkim/keys
Und natürlich könnt Ihr den Selektor ändern (hier s1), dann muss aber das zweite Script ggf. auch angepasst werden
zweites Script
Ich habe die beiden Scripte direkt im Verzeichnis /etc/opendkim plaziert - nicht vergessen, die Dateien ausführbar machen, und die anderen Tabellen von DKIM zu pflegen.
Viel Spaß und Erfolg. Kuerbis42
Ich stelle Euch hier zwei Scripts zur Verfügung, durch die sich die Erstellung der Schlüssel und DNS-Einträge für opendkim vereinfachen.
Das erste Script ist dadurch enstanden, das opendkim-genkey die Schlüssel- und DNS.txt-Datei immer unter dem Namen des Selektors speichert. Ärgerlich, wenn man mehrere Domains hat, dann muss man ständig umbenennen, etc.
Das zweite Script ist entstanden, weil es beim Kopieren der DNS-Einträge (gerade in PuTTY und nano) immer schnell zu Fehlern kommt, weil nano bei zu langen Zeilen ein $ zeigt.
Und zu guter Letzt: macht man es nicht so oft, dann vergisst man alles wieder....
Also, hier die dokumentierten Scripte, ggf. müsst Ihr etwas anpassen, aber die standart Pfade sind /etc/opendkim und /etc/opendkim/keys
Und natürlich könnt Ihr den Selektor ändern (hier s1), dann muss aber das zweite Script ggf. auch angepasst werden
Code:
#!/bin/bash
# ueberpruefen, ob der erforderliche Parameter uebergeben wurde
if [ -z "$1" ]; then
echo "Bitte geben Sie den vollstaendigen Domainnamen (z.B. einetolledomain.com) als ersten Parameter an."
echo "Bsp.: keygen.sh einetolledomain.de"
echo "--------------------------"
echo "Es werden durch opendkim-genkey eine Schluessel- und eine DNS-Datei erzeugt, ausserdem werden"
echo "die Dateien in DOMAIN.private (Schluessel) und DOMAIN.txt (DNS) umbenannt."
echo "Wird als 2. Parameter true angegeben, dann wird zum Namen auch die TLD Endung im Namen uebernommen."
echo "Bsp: keygen.sh international.de true >> DOMAIN-TLD.private und DOMAIN-TLD.txt >> international-de.private,international-de.txt"
echo ""
echo "Anschliessend muessen noch die Dateien key.table, signing.table und trusted bearbeitet werden. openDKIM muss neu gestartet werden!"
exit 1
fi
# ueberpruefen, ob der zweite Parameter gesetzt ist. Wenn nicht, die TLD nicht anhaengen.
if [ -z "$2" ]; then
append_tld=false
else
append_tld=true
fi
full_domain="$1"
# Extrahieren der TLD
tld=$(echo "$full_domain" | rev | cut -d '.' -f 1 | rev)
# Extrahieren des Domaenennamens ohne die TLD
domain=$(echo "$full_domain" | cut -d '.' -f 1)
# Erstellen der DKIM-Schluessel
opendkim-genkey -b 2048 -d "$full_domain" -D /etc/opendkim/keys -s s1 -v
# Umbenennen der erzeugten Dateien
cd /etc/opendkim/keys
if [ "$append_tld" = true ]; then
mv s1.private "$domain-$tld.private"
mv s1.txt "$domain-$tld.txt"
else
mv s1.private "$domain.private"
mv s1.txt "$domain.txt"
fi
# aendern der Dateiberechtigungen
chown opendkim:opendkim -R "$domain"*
cd /etc/opendkim
echo "DKIM-Schluessel fuer die Domain $full_domain wurde erstellt."
echo "gespeicher als:"
if [ "$append_tld" = true ]; then
echo "$domain-$tld.private"
echo "$domain-$tld.txt"
else
echo "$domain.private"
echo "$domain.txt"
fi
#Ergaenzend dazu wird jetzt mit dem Script oneline.sh die Datei Copy+Paste faehig einzeilig erzeugt und in $domain.txt.oneline geschrieben. Danach angezeigt
./oneline.sh "/etc/opendkim/keys/$domain.txt"
Code:
#!/bin/bash
# Dateiname der Eingabedatei
input_file="$1"
# Ausgabedatei
output_file="$1"
# Eingabedatei komplett einlesen, Zeilenumbrueche entfernen und Teile zwischen ( und ) extrahieren
input_content=$(cat "$input_file" | tr -d '\n' | grep -oE '\(.*\)')
# Domainnamen extrahieren
domain_name=$(awk '/DKIM key s1 for/ {print $NF}' "$input_file")
# DKIM-Inhalt extrahieren
dkim_info=$(sed 's/^[^(]*//' <<< "$input_content")
# Leerzeichen, ( , ) und Anfuehrungszeichen aus DKIM-Inhalt entfernen
dkim_info_cleaned=$(tr -d '[:space:]()"' <<< "$dkim_info")
# Ausgabe in die Ausgabedatei schreiben
echo "s1._domainkey.$domain_name" > "$output_file.oneline"
echo "$dkim_info_cleaned" >> "$output_file.oneline"
echo "Die Ausgabe wurde in $output_file gespeichert."
echo ""
# Darstellung zum direkten Copy+Paste
cat "$output_file.oneline"
Ich habe die beiden Scripte direkt im Verzeichnis /etc/opendkim plaziert - nicht vergessen, die Dateien ausführbar machen, und die anderen Tabellen von DKIM zu pflegen.
Viel Spaß und Erfolg. Kuerbis42
Last edited: