Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Postfix CentOS 7 - SRS einsetzen
SPF kann Probleme bei der E-Mail Umleitungen z.B. bei Web-Formularen verursachen. SRS (Sender Rewriting Scheme) ist eine Möglichkeit, eine E-Mail so umzuschreiben, dass das SPF (Sender Policy Framework) auch mit E-Mail-Umleitungen funktioniert.
SRS (Sender Rewriting Scheme) ist eine einfache Möglichkeit bei der Weiterleitung von E-Mails durch den MTA, die E-Mail-Adresse des Absenders im Envelop umzuschreiben und anzupassen bzw. zu erweitern. Das ursprüngliche Konzept wurde im Entwurf, welcher unter nachfolgendem externen Link einsehbar ist draft-mengwong-sender-rewrite veröffentlicht und weiter in nachfolgender Spezifikation, ebenfalls in nachfolgendem externen Link einsehbar The Sender Rewriting Scheme spezifiziert.
Das Sender Rewriting Scheme (kurz SRS) ist eine Methode, um den Absender (genauer: den Envelope Sender) einer E-Mail so umzuschreiben, dass das Sender Policy Framework (SPF) auch mit E-Mail-Umleitungen funktioniert.
Bei einer E-Mail-Umleitung werden nicht nur den Absender im Header unverändert gelassen, sondern auch der im SMTP vorgesehene Envelope Sender, der mit SPF überprüft wird. In so einem Fall ist der weiterleitende E-Mail-Server möglicherweise nicht im Sinne von SPF berechtigt, die E-Mail zu versenden.
Wird als Lösung jedoch der Envelope Sender einfach umgeschrieben, kann es passieren, dass Fehlermeldungen nicht mehr ankommen.
Beispiel:
a@d1.example
schreibt eine E-Mail an b@d2.example
; die E-Mail an b@d2.example
wird jedoch an c@d3.example
weitergeleitet. Der E-Mail-Server von d2.example
ist nicht berechtigt die E-Mail von d1.example
zu versenden, also ist die E-Mail aus Sicht von d3.example
ungültig. Würde der E-Mail-Server von d2.example
die Adresse b@d2.example
als Absender nehmen, könnte d3.example
den ursprünglichen Absender a@d1.example
nicht informieren, wenn ein Fehler bei der Zustellung stattfände, denn d3.example
würde die Fehlernachricht an b@d2.example
versenden, was wieder weitergeleitet würde und damit wieder fehlschlagen würde.
SRS löst das Problem dadurch, dass der ursprüngliche Absender im neuen Absender kodiert wird, im obigen Beispiel z.B. in der Form a#d1.example-b@d2.example
.
Da das aber dazu führen könnte, dass man E-Mails mit gefälschtem Absender über SRS versenden könnte, ist in der SRS-Adresse ein zusätzlicher kryptographischer Hash vorgesehen, der die Adresse sichert. Eine vollständige SRS-Adresse hat die Form.
SRS0=HHH=TT=hostname=local-part@domain
wobei HHH
für den Hash und TT
für einen Zeitstempel steht.
HINWEIS - Aus Sicht des Versenders einer E-Mail kann SRS eine unbefriedigende Lösung sein, da er zwar mit SPF bestimmen kann, welche E-Mail-Server mit eigenen Absenderadressen versenden dürfen, er aber darauf angewiesen ist, dass alle weiterleitenden E-Mail-Server SRS implementieren, damit die E-Mail sicher zugestellt wird, was jedoch letztendlich außerhalb seines Einflussbereiches liegt.
* Quelle: Wikipedia: Sender Rewriting Scheme
WICHTIG - Bei CentOS ab der Version 7.x ist Postfix in der Version 2.10.1 enthalten, was die Nutzung einiger Möglichkeiten neuerer Postfix Versionen verhindert. Deshalb soll Postfix aus nachfolgendem Drittanbieter-Repository installiert werden! - Siehe dazu den nachfolgenden internen Link:
Postfix wird von Wietse Venema entwickelt.
PostSRSd (Postfix SRS Deamon) wird von Timo Röhling entwickelt.
Beschreibung | Externer Link |
---|---|
Homepage | http://www.openspf.org/SRS |
Dokumentation | http://www.openspf.org/svn/project/specs/drafts/draft-mengwong-sender-rewrite-01.txt http://www.libsrs2.org/srs/srs.pdf |
Wikipedia | https://de.wikipedia.org/wiki/Sender_Rewriting_Scheme |
Beschreibung | Externer Link |
---|---|
Homepage | https://github.com/roehling |
Dokumentation | https://github.com/roehling/postsrsd |
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 soll das Drittanbieter-Repository, welches von dem von mir sehr geschätzten Michael Nausch betrieben und eine sichere und verlässliche Quelle für rpm-Pakete ist, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:
Installation
Nachfolgendes rpm
-Paket ist zur Installation erforderlich:
Die Installation von postsrsd
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# yum install postsrsd Loaded plugins: changelog, priorities 224 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package postsrsd.x86_64 0:1.2-1.el7.centos will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: postsrsd x86_64 1.2-1.el7.centos mailserver.guru-os 23 k Transaction Summary ================================================================================ Install 1 Package Total download size: 23 k Installed size: 45 k Is this ok [y/d/N]: y Downloading packages: postsrsd-1.2-1.el7.centos.x86_64.rpm | 23 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : postsrsd-1.2-1.el7.centos.x86_64 1/1 Verifying : postsrsd-1.2-1.el7.centos.x86_64 1/1 Installed: postsrsd.x86_64 0:1.2-1.el7.centos Complete!
Die Installation von postsrsd
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# rpm -qil postsrsd Name : postsrsd Version : 1.2 Release : 1.el7.centos Architecture: x86_64 Install Date: Thu 10 Nov 2016 09:51:19 AM CET Group : System Environment/Daemons Size : 46260 License : GPL Signature : RSA/SHA1, Wed 03 Dec 2014 01:04:43 PM CET, Key ID 60ecfb9e8195aea0 Source RPM : postsrsd-1.2-1.el7.centos.src.rpm Build Date : Wed 03 Dec 2014 01:04:33 PM CET Build Host : vml000200.dmz.nausch.org Relocations : (not relocatable) Packager : Django <django@mailserver.guru> URL : https://github.com/roehling/postsrsd/archive/1.2.tar.gz Summary : PostSRSd provides the Sender Rewriting Scheme (SRS) via TCP-based lookup tables for Postfix. Description : PostSRSd provides the Sender Rewriting Scheme (SRS) via TCP-based lookup tables for Postfix. SRS is needed if your mail server acts as forwarder. /etc/sysconfig/postsrsd /usr/lib/systemd/system/postsrsd.service /usr/sbin/postsrsd /usr/share/doc/postsrsd-1.2 /usr/share/doc/postsrsd-1.2/README.md /usr/share/doc/postsrsd-1.2/main.cf.ex /var/lib/postsrsd
Konfiguration
/etc/sysconfig/postsrsd
Standardmäßig wird nach der Installation von SRS - postsrsd
in nachfolgendem Verzeichnis mit nachfolgendem Namen die Konfigurationsdatei für den SRS - postsrsd
hinterlegt:
/etc/sysconfig/postsrsd
Nachfolgende Änderungen sind an der Konfigurationsdatei /etc/sysconfig/postsrsd
durchzuführen:
(Komplette Konfigurationsdatei)
# Default settings for postsrsd # Local domain name. # Addresses are rewritten to originate from this domain. The default value # is taken from `postconf -h mydomain` and probably okay. # # Tachtler # default: #SRS_DOMAIN=example.com SRS_DOMAIN=tachtler.net # Exclude additional domains. # You may list domains which shall not be subjected to address rewriting. # If a domain name starts with a dot, it matches all subdomains, but not # the domain itself. Separate multiple domains by space or comma. # #SRS_EXCLUDE_DOMAINS=.example.com,example.org # Secret key to sign rewritten addresses. # When postsrsd is installed for the first time, a random secret is generated # and stored in /etc/postsrsd.secret. For most installations, that's just fine. # SRS_SECRET=/etc/postsrsd.secret # Local ports for TCP list. # These ports are used to bind the TCP list for postfix. If you change # these, you have to modify the postfix settings accordingly. The ports # are bound to the loopback interface, and should never be exposed on # the internet. # SRS_FORWARD_PORT=10001 SRS_REVERSE_PORT=10002 # Drop root privileges and run as another user after initialization. # This is highly recommended as postsrsd handles untrusted input. # RUN_AS=nobody # Jail daemon in chroot environment CHROOT=/var/lib/postsrsd
Nachfolgende Änderungen sollten vorgenommen werden:
SRS_DOMAIN=tachtler.net
Definition der Domain für die SRS (Sender Rewriting Scheme) zur Anwendung kommen soll.