Postfix: DKIM installieren

Postfix: DKIM installieren

Vorab

Dieser Post ist eine Erweiterung zur Installation von Postfix und Dovecot.

Der eigene E-Mail-Server - Simon Zipperling
Installation von Postfix als Mailserver, Dovecot für die IMAP Anbindung und weitere Erweiterungen zum besseren Nutzen eines Mailservers

Pakete beziehen

Zunächst muss OPENDKIM installiert werden.

apt install opendkim opendkim-tools

Dann wird der Postfix Benutzer zu opendkim Gruppe hinzugefügt.

gpassw -a postfix opendkim

Bearbeiten der Konfigurationsdatei

In der Konfigurationsdatei wird als erstes der Log aktiviert und dann sollen diese mehr Details beinhalten daher setzt man whylog.

Syslog               yes
Logwhy               yes

Dann wir folgende Zeile umgestellt:

#Canonicalization   simple
Canonicalization   relaxed/simple

Hinter SubDomains no wird folgendes eingefügt:

AutoRestart         yes
AutoRestartRate     10/1M
Background          yes
DNSTimeout          5
SignatureAlgorithm  rsa-sha256

Erstellen der benötigten Verzeichnisse und Dateien

Überall muss .your-domain.com ausgetauscht werden gegen die eigene Stammdomain.

mkdir /etc/opendkim
mkdir /etc/opendkim/keys

Nun gibt man OPENDKIM die Rechte für die Verzeichnisse

chown -R opendkim:opendkim /etc/opendkim
chmod go-rw /etc/opendkim/keys

Dann werden der Signing Table und Key Table erstellt, sowie die Trusted Hosts Datei:

nano /etc/opendkim/signing.table
*@your-domain.com    default._domainkey.your-domain.com
*@*.your-domain.com    default._domainkey.your-domain.com
nano /etc/opendkim/key.table
default._domainkey.your-domain.com     your-domain.com:default:/etc/opendkim/keys/your-domain.com/default.private
nano /etc/opendkim/trusted.hosts
127.0.0.1
localhost

.your-domain.com

Schlüsselpaar generieren

Wie oben muss auch hier immer die Domain ausgetauscht werden.

mkdir /etc/opendkim/keys/your-domain.com
opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s default -v
chown opendkim:opendkim /etc/opendkim/keys/your-domain.com/default.private
chmod 600 /etc/opendkim/keys/your-domain.com/default.private
cat /etc/opendkim/keys/your-domain.com/default.txt

Die Ausgabe sollte wie folgt aussehen:

default._domainkey      IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAJDHBFJBDFJBTl8vtZgCyyukpIZVl6vWKUcyQQ7XRles+qxRb1HLXtny0qFDnnPdjbfsbfdjbds+ZVFPU2t+NBObQpM1nC5HMO2SVcGIMc76BZxFTeePK7bT30Wd0lY0ihR2qIYd+6W9KtBxQltl7ge0CB6+GMmmZgupH8kwa3bpU7JZEH5velOk9mQZfHX"
          "0UdlEofn+zhd28q74d+kHQp+FNL5GQCLWq0OgtEwzPri7ojvVBPQVBO3oh0rnCXspIEbS8yzbZjDI2C5agCfeT7Ij7/pMS8dbXxnOt/NF4IXila87dfadbf87hdss0d9ufG3po0fGLQIDAQAB" )  ; ----- DKIM key default for domain.com
💡
Diese muss getrimmt werden. Alle Leerzeichen und Klammern müssen entfernt werden
v=DKIM1;h=sha256;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAJDHBFJBDFJBTl8vtZgCyyukpIZVl6vWKUcyQQ7XRles+qxRb1HLXtny0qFDnnPdjbfsbfdjbds+ZVFPU2t+NBObQpM1nC5HMO2SVcGIMc76BZxFTeePK7bT30Wd0lY0ihR2qIYd+6W9KtBxQltl7ge0CB6+GMmmZgupH8kwa3bpU7JZEH5velOk9mQZfHX0UdlEofn+zhd28q74d+kHQp+FNL5GQCLWq0OgtEwzPri7ojvVBPQVBO3oh0rnCXspIEbS8yzbZjDI2C5agCfeT7Ij7/pMS8dbXxnOt/NF4IXila87dfadbf87hdss0d9ufG3po0fGLQIDAQAB

Dann wird dies in den TXT-Record von der Domain eingefügt.

Präfix: default._domainkey

Wert: Getrimmte Ausgabe.

DKIM Testen

opendkim-testkey -d your-domain.com -s default -vvv

Es gibt zwei mögliche Ausgaben:

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'default._domainkey.your-domain.com'
opendkim-testkey: key secure
opendkim-testkey: key OK
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'default._domainkey.your-domain.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Sollte not Secure stehen, ist dies in Ordnung da DNSSEC nicht aktiviert ist für die Domain.

Postfix mit opendkim verbinden

sudo mkdir /var/spool/postfix/opendkim

sudo chown opendkim:postfix /var/spool/postfix/opendkim
nano /etc/opendkim.conf

Dann muss folgende Zeile ausgetauscht werden:

Socket    local:/run/opendkim/opendkim.sock

Diese Zeile wird ersetzt durch:

Socket    local:/var/spool/postfix/opendkim/opendkim.sock

Danach muss noch opendkim bearbeitet werden und der Socket getauscht werden.

nano /etc/default/opendkim
SOCKET=local:$RUNDIR/opendkim.sock

Diese Zeile wird durch diese Ausgetauscht:

SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

Nun wird Postfix noch gesagt, das es OPENDKIM per Milter Protokoll ansprechen soll.

nano /etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

Danach müssen alle Services neu gestartet werden:

systemctl restart opendkim postfix