#DKIM DMARC
# DKIM komplette Mail checker
http://www.appmaildev.com/en/dkim
http://dkimvalidator.com/
# schneller Check per Mail kostenlos
check-auth@verifier.port25.com
#DKIM DNS TXT format checken
http://dkimcore.org/c/keycheck
#Grundkonfiguration
https://kofler.info/dkim-konfiguration-fuer-postfix/
# UCS ANpassungen
https://www.cubewerk.de/2017/12/04/spf-und-dkim-mit-univention-ucs-server/
DKIM auf UCS einrichten
##OpenDKIM installieren
apt-get install opendkim opendkim-tools
##Verzeichnisse vorbereiten
mkdir /etc/opendkim
mkdir /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod go-rw /etc/opendkim/keys
##original conf sichern
mv /etc/opendkim.conf /etc/opendkim.conf.debian
##neue conf erzeugen
echo "# Datei /etc/opendkim.conf
# OpenDKIM agiert als Mail Filter (= Milter) in den
# Modi signer (s) und verifier (v) und verwendet eine
# Socket-Datei zur Kommunikation (alternativ: lokaler Port)
Mode sv
Socket local:/var/run/opendkim/opendkim.sock
# OpenDKIM verwendet diesen Benutzer bzw.
# diese Gruppe
UserID opendkim:opendkim
UMask 002
PidFile /var/run/opendkim/opendkim.pid
# OpenDKIM bei Problemen neustarten,
# aber max. 10 mal pro Stunde
AutoRestart yes
AutoRestartRate 10/1h
# Logging (wenn alles funktioniert eventuell reduzieren)
Syslog yes
SyslogSuccess yes
LogWhy yes
# Verfahren, wie Header und Body durch
# OpenDKIM verarbeitet werden sollen.
Canonicalization relaxed/simple
# interne Mails nicht mit OpenDKIM verarbeiten
ExternalIgnoreList refile:/etc/opendkim/trusted
InternalHosts refile:/etc/opendkim/trusted
# welche Verschlüsselungs-Keys sollen für welche
# Domains verwendet werden
# (refile: für Dateien mit regulären Ausdrücke)
SigningTable refile:/etc/opendkim/signing.table
KeyTable /etc/opendkim/key.table
# diesen Signatur-Algorithmus verwenden
SignatureAlgorithm rsa-sha256
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
" > /etc/opendkim.conf
##Welchen Hosts wird vertraut? Bei denen wird auf die DKIM-Signatur verzichtet
# Datei /etc/opendkim/trusted
127.0.0.1
::1
localhost
#becon
#becon.de
#srvmucudcb01.becon.de
##Welcher Schlüssel für welchen Hostnamen?
# Datei /etc/opendkim/signing.table
# für E-Mails von xxx@becon.de den Schlüssel 'becon'
# zum Signieren verwenden
*@becon.de becon
##Pfad zu Schlüsseldateien
# Datei /etc/opendkim/key.table
# der Schlüssel 'becon' befindet sich in
# der Datei /etc/opendkim/keys/becon.private
becon becon.de:201803:/etc/opendkim/keys/becon.private
##Schlüsselpaar generieren, dann öffentlichen Schlüssel rausholen und für DNS formatieren
openssl genrsa -out /etc/opendkim/keys/becon.private 2048
openssl rsa -in /etc/opendkim/keys/becon.private -pubout -out /etc/opendkim/keys/becon.txt
echo -n "v=DKIM1; k=rsa; s=email; p=";grep -v -e "^-" /etc/opendkim/keys/becon.txt | tr -d "\n";echo ""
##Berechtigungen anpassen. Sehr wichtig, sonst funktioniert der Service nicht
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-rwx /etc/opendkim/keys
##UCS Postfix Template ergänzen
echo -e "\n#manuell für DKIM am $(date +%d.%m.%y) hinzugefügt
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:/var/run/opendkim/opendkim.sock
non_smtpd_milters = local:/var/run/opendkim/opendkim.sock
" >> /etc/postfix/main.cf.local
##geänderte main.cf.local zur Konfig hinzufügen
univention-config-registry commit /etc/postfix/main.cf
#Postfix muss auf die DKIM config zugreifen können
adduser postfix opendkim
#Dienste neu starten
service opendkim restart
service postfix restart
###### OpenDmarc mit Postfix verbinden #####
apt install opendmarc
nano /etc/default/opendmarc
SOCKET="local:/var/run/opendmarc/opendmarc.sock"
mv /etc/opendmarc.conf /etc/opendmarc.conf.debian
nano /etc/opendmarc.conf
----------------------------------
AuthservID mail.becon.de
PidFile /var/run/opendmarc.pid
RejectFailures false
Syslog true
SyslogFacility mail
TrustedAuthservIDs localhost,mail.becon.de
IgnoreHosts /etc/opendmarc/ignore.hosts
UMask 002
UserID opendmarc:opendmarc
FailureReports false
AutoRestart true
HistoryFile /var/run/opendmarc/opendmarc.dat
RecordAllMessages true
SoftwareHeader true
----------------------------------
nano /etc/opendmarc/ignore.hosts
mkdir /etc/opendmarc
127.0.0.1
touch /var/log/opendmarc.log
chown root:opendmarc /var/log/opendmarc.log
chmod g+w /var/log/opendmarc.log
adduser postfix opendmarc
nano /etc/univention/templates/files/etc/postfix/main.cf.d/10_general
smtpd_milters = local:/var/run/opendkim/opendkim.sock,local:/var/run/opendmarc/opendmarc.sock
non_smtpd_milters = local:/var/run/opendkim/opendkim.sock,local:/var/run/opendmarc/opendmarc.sock
##geändertes Template neu einlesen
univention-config-registry commit /etc/postfix/main.cf
##Damit eingehende Mails auf dem eigenen Server geprüft werden, braucht der interne DNS den DMARC TXT Eintrag
# Format für UCS Webinterface
v=DMARC1\; p=quarantine\; sp=quarantine\; adkim=r\; aspf=s\;
##Spamassassin Regel für DMARC erstellen/anpassen
#Quelle: https://www.skelleton.net/2015/03/21/how-to-eliminate-spam-and-protect-your-name-with-dmarc/
nano /etc/spamassassin/local.cf
----------------------------------
#Adjust scores for SPF FAIL
score SPF_FAIL 4.0
score SPF_HELO_FAIL 4.0
score SPF_HELO_SOFTFAIL 3.0
score SPF_SOFTFAIL 3.0
#adjust DKIM scores
score DKIM_ADSP_ALL 3.0
score DKIM_ADSP_DISCARD 10.0
score DKIM_ADSP_NXDOMAIN 3.0
#dmarc fail
header CUST_DMARC_FAIL Authentication-Results =~ /mail\.becon\.de; dmarc=fail/
score CUST_DMARC_FAIL 5.0
#dmarc pass
header CUST_DMARC_PASS Authentication-Results =~ /mail\.becon\.de; dmarc=pass/
score CUST_DMARC_PASS -1.0
meta CUST_DKIM_SIGNED_INVALID DKIM_SIGNED && !(DKIM_VALID || DKIM_VALID_AU)
score CUST_DKIM_SIGNED_INVALID 6.0
----------------------------------
service opendkim restart
service opendmarc restart
service postfix restart
service spamassassin restart
service amavis restart