Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Postfix CentOS 7 - OpenDKIM anbinden (opendkim-milter)
OpenDKIM dient zur Sicherstellung der Authentizität von E-Mail-Absendern wurde in 2004 von Yahoo ein Identifikationsprotokoll entwickelt, mit welchem die Authentizität von e-Mail-Absendern sichergestellt werden kann. Dies wurde vor allem mit dem Wunsch zur Eindämmung unerwünschter eMail wie Phishing und/oder Spam konzipiert.
DKIM basiert auf asymmetrischer Verschlüsselung, bei der e-Mails mit zwei Signaturen versehen werden, eine in den e-Mail-Header-Zeilen der Nachricht und die zweite über den e-Mail-Body. Die zugehörigen Prüfsummen werden in standardisierten DKIM-Signature-Headern in der e-Mail eingetragen.
Der empfangende e-Mail-Server ist somit in der Lage, an Hand des öffentlichen Schlüssels diese Daten, der im TXT-Record des Domain Name System (DNS) der Domäne abrufbar ist, die Daten zu verifizieren. Ist diese Signatur gültig, ist der Absender Server der e-Mail zweifelsfrei festgestellt. Bei einem negativen Ergebnis hat nun der empfangende e-Mail-Server die Möglichkeit, die Annahme der e-Mail zu verweigern bzw. die empfangene Nachricht auszusortieren. Wie bereits erwähnt ist dies möglich, da der sendende e-Mail-Server jede versendete e-Mail im sogenannten „DomainKey-Signature-Header“ mit einer digitalen Signatur des Inhaltes der e-Mail versieht. Der Domaininhaber (Sender) kann mit Hilfe von festlegen, was der Empfänger beim Eingang einer e-Mail tun soll, sofern die DKIM-Signatur gebrochen wurde.
Beschreibung | Externer Link |
---|---|
Homepage | http://www.opendkim.org/ |
Dokumentation | http://www.opendkim.org/docs.html |
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Herunterladen
Nachfolgend sollen das Drittanbieter-Repository von EPEL, welches wie unter nachfolgendem internen Link dargestellt, eingebunden werden:
Installation
Nachfolgendes rpm
-Paket ist zur Installation erforderlich:
Zusätzlich wird nachfolgendes rpm
-Paket als Abhängigkeit zusätzlich installiert:
Die Installation von opendkim
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# yum install opendkim Loaded plugins: changelog, priorities 149 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package opendkim.x86_64 0:2.10.3-1.el7 will be installed --> Processing Dependency: libopendkim(x86-64) = 2.10.3-1.el7 for package: opendkim-2.10.3-1.el7.x86_64 --> Processing Dependency: libbsd.so.0(LIBBSD_0.0)(64bit) for package: opendkim-2.10.3-1.el7.x86_64 --> Processing Dependency: libopendkim.so.10()(64bit) for package: opendkim-2.10.3-1.el7.x86_64 --> Processing Dependency: libopendbx.so.1()(64bit) for package: opendkim-2.10.3-1.el7.x86_64 --> Processing Dependency: libbsd.so.0()(64bit) for package: opendkim-2.10.3-1.el7.x86_64 --> Running transaction check ---> Package libbsd.x86_64 0:0.6.0-3.el7 will be installed ---> Package libopendkim.x86_64 0:2.10.3-1.el7 will be installed ---> Package opendbx.x86_64 0:1.4.6-6.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: opendkim x86_64 2.10.3-1.el7 epel 213 k Installing for dependencies: libbsd x86_64 0.6.0-3.el7 epel 66 k libopendkim x86_64 2.10.3-1.el7 epel 71 k opendbx x86_64 1.4.6-6.el7 epel 46 k Transaction Summary ================================================================================ Install 1 Package (+3 Dependent packages) Total download size: 397 k Installed size: 1.0 M Is this ok [y/d/N]: y Downloading packages: (1/4): libopendkim-2.10.3-1.el7.x86_64.rpm | 71 kB 00:00 (2/4): libbsd-0.6.0-3.el7.x86_64.rpm | 66 kB 00:00 (3/4): opendbx-1.4.6-6.el7.x86_64.rpm | 46 kB 00:00 (4/4): opendkim-2.10.3-1.el7.x86_64.rpm | 213 kB 00:00 -------------------------------------------------------------------------------- Total 998 kB/s | 397 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : libbsd-0.6.0-3.el7.x86_64 1/4 Installing : libopendkim-2.10.3-1.el7.x86_64 2/4 Installing : opendbx-1.4.6-6.el7.x86_64 3/4 Installing : opendkim-2.10.3-1.el7.x86_64 4/4 Verifying : libbsd-0.6.0-3.el7.x86_64 1/4 Verifying : opendkim-2.10.3-1.el7.x86_64 2/4 Verifying : opendbx-1.4.6-6.el7.x86_64 3/4 Verifying : libopendkim-2.10.3-1.el7.x86_64 4/4 Installed: opendkim.x86_64 0:2.10.3-1.el7 Dependency Installed: libbsd.x86_64 0:0.6.0-3.el7 libopendkim.x86_64 0:2.10.3-1.el7 opendbx.x86_64 0:1.4.6-6.el7 Complete!
Die Installation von opendkim
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# rpm -qil opendkim Name : opendkim Version : 2.10.3 Release : 1.el7 Architecture: x86_64 Install Date: Mon 19 Oct 2015 04:04:19 PM CEST Group : System Environment/Daemons Size : 574565 License : BSD and Sendmail Signature : RSA/SHA256, Wed 13 May 2015 11:46:55 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : opendkim-2.10.3-1.el7.src.rpm Build Date : Wed 13 May 2015 04:04:02 AM CEST Build Host : buildvm-25.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://opendkim.org/ Summary : A DomainKeys Identified Mail (DKIM) milter to sign and/or verify mail Description : OpenDKIM allows signing and/or verification of email through an open source library that implements the DKIM service, plus a milter-based filter application that can plug in to any milter-aware MTA, including sendmail, Postfix, or any other MTA that supports the milter protocol. /etc/opendkim /etc/opendkim.conf /etc/opendkim/KeyTable /etc/opendkim/SigningTable /etc/opendkim/TrustedHosts /etc/opendkim/keys /etc/sysconfig/opendkim /etc/tmpfiles.d/opendkim.conf /usr/lib/systemd/system/opendkim.service /usr/sbin/opendkim /usr/sbin/opendkim-default-keygen /usr/sbin/opendkim-genkey /usr/sbin/opendkim-genzone /usr/sbin/opendkim-reportstats /usr/sbin/opendkim-testkey /usr/sbin/opendkim-testmsg /usr/share/doc/opendkim-2.10.3 /usr/share/doc/opendkim-2.10.3/FEATURES /usr/share/doc/opendkim-2.10.3/INSTALL /usr/share/doc/opendkim-2.10.3/KNOWNBUGS /usr/share/doc/opendkim-2.10.3/README /usr/share/doc/opendkim-2.10.3/README.fedora /usr/share/doc/opendkim-2.10.3/RELEASE_NOTES /usr/share/doc/opendkim-2.10.3/RELEASE_NOTES.Sendmail /usr/share/doc/opendkim-2.10.3/authheaders-check-setup-hook.lua /usr/share/doc/opendkim-2.10.3/convert_keylist.sh /usr/share/doc/opendkim-2.10.3/final.lua.sample /usr/share/doc/opendkim-2.10.3/opendkim.conf.sample /usr/share/doc/opendkim-2.10.3/opendkim.conf.simple /usr/share/doc/opendkim-2.10.3/opendkim.conf.simple-verify /usr/share/doc/opendkim-2.10.3/screen.lua.sample /usr/share/doc/opendkim-2.10.3/setup.lua.sample /usr/share/licenses/opendkim-2.10.3 /usr/share/licenses/opendkim-2.10.3/LICENSE /usr/share/licenses/opendkim-2.10.3/LICENSE.Sendmail /usr/share/man/man5/opendkim.conf.5.gz /usr/share/man/man8/opendkim-genkey.8.gz /usr/share/man/man8/opendkim-genzone.8.gz /usr/share/man/man8/opendkim-testkey.8.gz /usr/share/man/man8/opendkim-testmsg.8.gz /usr/share/man/man8/opendkim.8.gz /var/run/opendkim /var/spool/opendkim
iptables Regel
Damit der SPF auch über den Postfix - spf-milter
erreichbar ist und nicht das Empfangen der IP-Paket vom Paketfilter iptables
blockiert wird, muss nachfolgende Regel zum iptables
-Regelwerk hinzugefügt werden.
Um die aktuellen iptables
-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Nachfolgender Befehl, fügt folgende iptables
-Regel dem iptables
-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:
-A INPUT -p tcp --dport 10012 -j ACCEPT
und hier der Befehl:
# iptables -I INPUT 5 -p tcp --dport 10012 -j ACCEPT
Ein erneute Abfrage des iptables
-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10012 state NEW 6 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Die neue Zeile ist an Position 5 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):
... 5 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10012 state NEW ...
Um diese iptables
-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables
-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
# /usr/sbin/iptables-save > /etc/sysconfig/iptables
Konfiguration: OpenDKIM
WICHTIG - Nachfolgende Konfiguration dient nur ausschließlich der Überprüfung (verify) von DKIM-Signaturen bei eingehenden e-Mails von externen/anderen und nicht eigenen e-Mail-Servern.
Die Erstellung von DKIM-Signaturen für ausgehende eigene e-Mails, kann später im Ablauf der e-Mail-Verarbeitung, auch durch AMaViS erfolgen, wie unter nachfolgendem internen Link beschrieben:
/etc/sysconfig/opendkim
Nachfolgende Konfigurationsdatei von OpenDKIM setzt Standardparameter für den Start des OpenDKIM Dienst/Daemons.
HINWEIS - Änderungen an dieser Konfigurationsdatei sind grundsätzlich nicht erforderlich, aber durchaus sinnvoll!
# Set the necessary startup options OPTIONS="-x /etc/opendkim.conf -P /var/run/opendkim/opendkim.pid" # Set the default DKIM selector # Tachtler # default: DKIM_SELECTOR=default DKIM_SELECTOR=main # Set the default DKIM key location DKIM_KEYDIR=/etc/opendkim/keys
/etc/opendkim.conf
Standardmäßig wird nach der Installation von OpenDKIM - opendkim-milter
in nachfolgendem Verzeichnis mit nachfolgendem Namen die Hauptkonfigurationsdatei für den OpenDKIM - opendkim-milter
hinterlegt:
/etc/opendkim.conf
Nachfolgende Änderungen sind an der Konfigurationsdatei /etc/opendkim.conf
durchzuführen:
(Komplette Konfigurationsdatei)
## BASIC OPENDKIM CONFIGURATION FILE ## See opendkim.conf(5) or /usr/share/doc/opendkim/opendkim.conf.sample for more ## BEFORE running OpenDKIM you must: ## - make your MTA (Postfix, Sendmail, etc.) aware of OpenDKIM ## - generate keys for your domain (if signing) ## - edit your DNS records to publish your public keys (if signing) ## See /usr/share/doc/opendkim/INSTALL for detailed instructions. ## DEPRECATED CONFIGURATION OPTIONS ## ## The following configuration options are no longer valid. They should be ## removed from your existing configuration file to prevent potential issues. ## Failure to do so may result in opendkim being unable to start. ## ## Removed in 2.10.0: ## AddAllSignatureResults ## ADSPAction ## ADSPNoSuchDomain ## BogusPolicy ## DisableADSP ## LDAPSoftStart ## LocalADSP ## NoDiscardableMailTo ## On-PolicyError ## SendADSPReports ## UnprotectedPolicy ## CONFIGURATION OPTIONS ## Specifies the path to the process ID file. PidFile /var/run/opendkim/opendkim.pid ## Selects operating modes. Valid modes are s (sign) and v (verify). Default is v. ## Must be changed to s (sign only) or sv (sign and verify) in order to sign outgoing ## messages. Mode v ## Log activity to the system log. Syslog yes ## Log additional entries indicating successful signing or verification of messages. SyslogSuccess yes ## If logging is enabled, include detailed logging about why or why not a message was ## signed or verified. This causes an increase in the amount of log data generated ## for each message, so set this to No (or comment it out) if it gets too noisy. LogWhy yes ## Attempt to become the specified user before starting operations. UserID opendkim:opendkim ## Create a socket through which your MTA can communicate. # Tachtler # default: Socket inet:8891@localhost Socket inet:10012@10.7.0.70 ## Required to use local socket with MTAs that access the socket as a non- ## privileged user (e.g. Postfix) Umask 002 ## This specifies a text file in which to store DKIM transaction statistics. ## OpenDKIM must be manually compiled with --enable-stats to enable this feature. # Statistics /var/spool/opendkim/stats.dat ## Specifies whether or not the filter should generate report mail back ## to senders when verification fails and an address for such a purpose ## is provided. See opendkim.conf(5) for details. SendReports yes ## Specifies the sending address to be used on From: headers of outgoing ## failure reports. By default, the e-mail address of the user executing ## the filter is used (executing_user@hostname). # ReportAddress "Example.com Postmaster" <postmaster@example.com> ## Add a DKIM-Filter header field to messages passing through this filter ## to identify messages it has processed. SoftwareHeader yes ## SIGNING OPTIONS ## Selects the canonicalization method(s) to be used when signing messages. Canonicalization relaxed/relaxed ## Domain(s) whose mail should be signed by this filter. Mail from other domains will ## be verified rather than being signed. Uncomment and use your domain name. ## This parameter is not required if a SigningTable is in use. # Domain example.com ## Defines the name of the selector to be used when signing messages. # Tachtler # default: Selector default #Selector default ## Specifies the minimum number of key bits for acceptable keys and signatures. # Tachtler # default: MinimumKeyBits 1024 #MinimumKeyBits 1024 ## Gives the location of a private key to be used for signing ALL messages. This ## directive is ignored if KeyTable is enabled. # Tachtler # default: KeyFile /etc/opendkim/keys/default.private #KeyFile /etc/opendkim/keys/default.private ## Gives the location of a file mapping key names to signing keys. In simple terms, ## this tells OpenDKIM where to find your keys. If present, overrides any KeyFile ## directive in the configuration file. Requires SigningTable be enabled. # KeyTable /etc/opendkim/KeyTable ## Defines a table used to select one or more signatures to apply to a message based ## on the address found in the From: header field. In simple terms, this tells ## OpenDKIM how to use your keys. Requires KeyTable be enabled. # SigningTable refile:/etc/opendkim/SigningTable ## Identifies a set of "external" hosts that may send mail through the server as one ## of the signing domains without credentials as such. # ExternalIgnoreList refile:/etc/opendkim/TrustedHosts ## Identifies a set "internal" hosts whose mail should be signed rather than verified. # Tachtler # default: # InternalHosts refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts ## Contains a list of IP addresses, CIDR blocks, hostnames or domain names ## whose mail should be neither signed nor verified by this filter. See man ## page for file format. # PeerList X.X.X.X ## 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 Fedora package ## because it is often the identity key used by reputation systems and thus ## somewhat security sensitive. OversignHeaders From
Nachfolgende Änderungen sollten vorgenommen werden:
Socket inet:10012@192.168.0.70
Socket auf dem der OpenDKIM erreichbar ist und antwortet.
#Selector default
Deaktivieren eines möglichen Standard Selectors für das Erstellen von DKIM-Signaturen.
#MinimumKeyBits 1024
Deaktivieren einer Mindestlänge bei DKIM-Signaturschlüsseln, da dies zum Erstellen von DKIM-Signaturen benötigt wird und bei einer Prüfung ebenfalls zweitrangig ist.
#KeyFile /etc/opendkim/keys/default.private
Deaktivieren der Hinterlegung eines privaten Schlüssel, da dieser nur bei der Erstellen von DKIM-Signaturen benötigt wird.
InternalHosts refile:/etc/opendkim/TrustedHosts
Angabe einer Konfigurationsdatei, hier /etc/opendkim/TrustedHosts
, in der IP-Adressen/Netze enthalten sind, die bei der Prüfung (und auch bei der Erstellung von DKIM-Signaturen) nicht berücksichtigt werden sollen.
Nachfolgende Änderungen sind nur erforderlich, wenn auch das signieren durch OpenDKIM - opendkim-milter
durchgeführt werden soll:
==== /etc/opendkim/TrustedHosts ====
Nachfolgende Konfigurationsdatei in nachfolgendem Verzeichnis mit ebenfalls nachfolgendem Namen:
* /etc/opendkim/TrustedHosts
beinhaltet einzelne IP-Adressen oder ganze Netze, für die keine DKIM-Signaturprüfung und auch keine DKIM-Signaturerstellung durchgeführt werden soll. Normalerweise sind dies einzelne interne IP-Adressen oder eigene ganze Netze.
Nachfolgende Änderungen sind an der Konfigurationsdatei /etc/opendkim/TrustedHosts
durchzuführen:
(Komplette Konfigurationsdatei)
<code bash>
# OPENDKIM TRUSTED HOSTS
# To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts
# option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts
# may be added on separate lines (IP addresses, hostnames, or CIDR ranges).
# The localhost IP (127.0.0.1) should always be the first entry in this file.
127.0.0.1
::1
#host.example.com
#192.168.1.0/24
# Tachtler
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
88.217.171.167/32
</code>
==== OpenDKIM Dienst/Daemon-Start einrichten ====
Um den OpenDKIM der als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:
<code>
# systemctl enable opendkim
ln -s '/usr/lib/systemd/system/opendkim.service' '/etc/systemd/system/multi-user.target.wants/opendkim.service'
</code>
Eine Überprüfung, ob beim Neustart des Server der opendkim
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
<code>
# systemctl list-unit-files –type=service | grep -e opendkim
opendkim.service enabled
</code>
bzw.
<code>
# systemctl is-enabled opendkim
enabled
</code>
==== Erster Start OpenDKIM ====
Um den OpenDKIM zu starten kann nachfolgender Befehl angewandt werden:
<code>
# systemctl start opendkim
</code>
Eine Überprüfung ob der Start des OpenDKIM erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:
<code>
# systemctl status opendkim
opendkim.service - DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/usr/lib/systemd/system/opendkim.service; enabled)
Active: active (running) since Mon 2015-10-19 16:43:11 CEST; 7s ago
Docs: man:opendkim(8)
man:opendkim.conf(5)
man:opendkim-genkey(8)
man:opendkim-genzone(8)
man:opendkim-testadsp(8)
man:opendkim-testkey
http://www.opendkim.org/docs.html
Process: 4878 ExecStart=/usr/sbin/opendkim $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 4879 (opendkim)
CGroup: /system.slice/opendkim.service
└─4879 /usr/sbin/opendkim -x /etc/opendkim.conf -P /var/run/opendk…
Oct 19 16:43:11 server70.idmz.tachtler.net systemd[1]: Starting DomainKeys Id…
Oct 19 16:43:11 server70.idmz.tachtler.net systemd[1]: Started DomainKeys Ide…
Oct 19 16:43:11 server70.idmz.tachtler.net opendkim[4879]: OpenDKIM Filter v2…
Hint: Some lines were ellipsized, use -l to show in full.
</code>
bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:
<code>
# ps aux | grep opendkim
opendkim 4879 0.0 0.1 71048 2168 ? Ssl 16:43 0:00 /usr/sbin/opendkim -x /etc/opendkim.conf -P /var/run/opendkim/opendkim.pid
root 4885 0.0 0.0 112640 928 pts/0 S+ 16:43 0:00 grep –color=auto opendkim
</code>
Eine weitere Möglichkeit ist die Überprüfung des journal
, was mit nachfolgendem Befehl durchgeführt werden kann:
<code>
Oct 19 16:43:11 server70.idmz.tachtler.net systemd[1]: Starting DomainKeys Ident
– Subject: Unit opendkim.service has begun with start-up
– Defined-By: systemd
– Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
–
– Unit opendkim.service has begun starting up.
Oct 19 16:43:11 server70.idmz.tachtler.net systemd[1]: Started DomainKeys Identi
– Subject: Unit opendkim.service has finished start-up
– Defined-By: systemd
– Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
–
– Unit opendkim.service has finished starting up.
–
– The start-up result is done.
Oct 19 16:43:11 server70.idmz.tachtler.net opendkim[4879]: OpenDKIM Filter v2.10
</code>
===== Konfiguration: opendkim-milter =====
Nachfolgende Änderungen werden an den Konfigurationsdateien
* /etc/postfix/main.cf
* /etc/postfix/master.cf
durchgeführt, um eine Anbindung des Postfix an den OpenDKIM zu realisieren.
Dabei soll die Anbindung von Postfix an den OpenDKIM mit dem Verfahren
* opendkim-milter
erfolgen.
==== /etc/postfix/main.cf ====
Hier die Änderungen an der Konfigurationsdatei /etc/postfix/main.cf
(Nur relevanter Ausschnitt):
<code ini>
…
# OpenDKIM (opendkim-milter)
opendkim_milter = inet:192.168.0.70:10012
…
</code>
==== /etc/postfix/master.cf ====
Hier die Änderungen an der Konfigurationsdatei /etc/postfix/master.cf
(Nur relevanter Ausschnitt):
<code ini>
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: „man 5 master“ or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute „postfix reload“ after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
# Tachtler - disabled -
#smtp inet n - n - - smtpd
# Tachtler - new -
# Incoming traffic from untrust networks, with postscreen.
192.168.1.60:2525 inet n - n - 1 postscreen
# Tachtler - enabled -
# Incoming traffic passed from untrust networks, with postscreen.
smtpd pass - - n - - smtpd
-o smtpd_milters=${opendkim_milter}
…
</code>
Nachfolgend Erklärungen zu den WICHTIGSTEN Konfigurationen:
* <code ini> -o smtpd_milters=${opendkim_milter}</code>
Die Option sorgt dafür, dass dem Parameter smtpd_milter
der Inhalt des Parameters opendkim_milter
übergeben wird. Falls mehrere MILTER zum Einsatz kommen, wird hier die Reihenfolge festgelegt, in der diese aufgerufen werden!
===== Neustart =====
Falls vorstehende Änderungen (natürlich an die jeweiligen Bedürfnisse angepasst) durchgeführt wurden, muss ein Neustart von Postfix durchgeführt werden.
Danach kann der postfix-Server mit nachfolgendem Befehle neu__ gestartet werden:
# systemctl restart postfix
Mit nachfolgendem Befehl kann der Status des abgefragt werden:
# systemctl status postfix postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled) Active: active (running) since Thu 2015-10-15 11:11:26 CEST; 7s ago Process: 1128 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS) Process: 1144 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS) Process: 1141 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS) Process: 1138 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS) Main PID: 1216 (master) CGroup: /system.slice/postfix.service ├─1216 /usr/libexec/postfix/master -w ├─1217 pickup -l -t unix -u -o content_filter=lmtp:[192.168.0.70]... └─1218 qmgr -l -t unix -u Oct 15 11:11:26 server60.idmz.tachtler.net systemd[1]: Starting Postfix Mail... Oct 15 11:11:26 server60.idmz.tachtler.net postfix/postfix-script[1214]: sta... Oct 15 11:11:26 server60.idmz.tachtler.net postfix/master[1216]: daemon star... Oct 15 11:11:26 server60.idmz.tachtler.net systemd[1]: Started Postfix Mail ... Hint: Some lines were ellipsized, use -l to show in full.
Test
Nachfolgend soll ein Test darin bestehen, dass eine e-Mail von einem externen Server an Postfix gesendet wird, und dieser dann die DKIM-Signatur des absendenden e-Mail-Servers prüft.
Wichtig sind zwei Einträge, in
- den Header-Zeilen der eingehenden e-Mail
- die LOG-Einträge im Server, auf dem OpenDKIM -
opendkim-milter
läuft:
Überprüfung: Header-Zeilen
Nachfolgender Eintrag sollte in den Header-Zeilen einer eingehenden e-Mail zu finden sein, um das Ergebnis der OpenDKIM - opendkim-milter
Überprüfung zu zeigen:
DKIM-Filter: OpenDKIM Filter v2.10.3 mx1.tachtler.net D6D531800089 Authentication-Results: mx1.tachtler.net; dkim=pass (4096-bit key) header.d=nausch.org header.i=@nausch.org header.b=XLb6bDQC
* Das Ergbenis kann hier pass
, fail
und none
sein.
Überprüfung: /var/log/maillog
Nachfolgender Eintrag sollte in den LOG-Einträgen des Servers auf dem der OpenDKIM - opendkim-milter
läuft bei einer eingehenden e-Mail zu finden sein, um das Ergebnis der OpenDKIM - opendkim-milter
Überprüfung zu dokumentieren:
Oct 19 16:50:02 server70 opendkim[4879]: D6D531800089: mx01.nausch.org [217.91.103.190] not internal Oct 19 16:50:02 server70 opendkim[4879]: D6D531800089: not authenticated Oct 19 16:50:02 server70 opendkim[4879]: D6D531800089: DKIM verification successful
Test Werkzeuge
Nachfolgende externe Links führen zu verschiedenen Test Werkzeugen: