SRS mit Exim in Debian

27/05/2016 - 19:02 von Paul Muster | Report spam
Hallo,

wie in de.comm.provider.mail deutlich wird, hat kürzlich GMX (oder
United Internet komplett, keine Ahnung) inbound die Prüfung von
SPF-Records scharfgeschaltet. D.h. es werden E-Mails von Absendern, zu
deren Domain entsprechende SPF-Eintràge im DNS existieren, von GMX nur
noch diesen Eintràgen gemàß akzeptiert.

Nun habe ich mit meinem Exim einige Weiterleitungen realisiert, d.h. ich
brauche jetzt SRS. (Oder ich kann nichts mehr zu GMX weiterleiten.)

Hat jemand dafür ein funktionierendes, erprobtes Kochrezept oder kann
einen der - durchaus vorhandenen - Suchtreffer empfehlen?


Danke & viele Grüße

Paul
 

Lesen sie die antworten

#1 Thomas Hochstein
28/05/2016 - 15:29 | Warnen spam
-=_297jkbpopsr4mg9bisjotdkhpku7554ico.MFSBCHJLHS

Paul Muster schrieb:

Nun habe ich mit meinem Exim einige Weiterleitungen realisiert, d.h. ich
brauche jetzt SRS. (Oder ich kann nichts mehr zu GMX weiterleiten.)



Ja, das Thema hatte ich 2012 ...

(Freu Dich darauf, wenn auch der From: geprüft wird, wie das
mittlerweile wohl hotmail/live/outlook.com und andere machen. Ich
musste mich gerade für einige Mailinglisten darum kümmern ... Das geht
dann nicht mehr mit Bordmitteln und ohne Seiteneffekte).

Hat jemand dafür ein funktionierendes, erprobtes Kochrezept oder kann
einen der - durchaus vorhandenen - Suchtreffer empfehlen?



Ich habe das, wie gesagt, 2012 unter Debian Wheezy implementiert; ich
nutze allerdings nicht die Debian-typische "split config" für Exim,
sondern eine monolitische Konfigurationsdatei, und zwar die vom
Upstream mitgelieferte, ohne die ganzen Konfigurationsmakros. Das
dürfte aber keinen Unterschied machen, Du musst halt ggf. die richtige
Stelle in der richtigen Datei finden, um die Router einzufügen.

SRS funktioniert so: die Mail bekommt einen neuen Envelope-Absender
mit einer Deiner Domains und einem Localpart, in dem die alte
Absenderadresse einkodiert ist, und zwar so, dass nur Du gültige
Localparts dieser Art erzeugen kannst. Das Weiterleitungsziel sieht
jetzt "aha, eine Mail mit einem Absender aus der Domain xyz kommt von
einem Rechner, der für die Domain xyz senden darf, alles okay".
Bounced eine Mail doch mal, kannst Du die ursprüngliche Adresse aus
dem Localpart extrahieren und den Bounce weitersenden.

Ich nutze den srsd und zwei passende Router; einmal, um Bounces an den
echten Absender weiterzuleiten, und einmal, um den Envelope
ausgehender Mails umzuschreiben.

-

Als Kochrezept - geht bestimmt professioneller, tut aber für mich -:

1) srsd installieren

| $ aptitude install srs

Ich habe mir damals dafür im wesentlichen per copy&paste noch ein
Initscript angelegt, damit er automatisch gestartet wird. Das macht
man sicherlich besser anders ...

Das ging dann so:
| $ vim /etc/init.d/srsd
[siehe Anhang für das Scrit]
| $ chmod 755 /etc/init.d/srsd
| $ update-rc.d srsd defaults

SRS basiert darauf, dass nur Du ein geheimes Token kennst, mit dem der
neue Envelope-Absender erzeugt wird, damit der Spammer das nicht kann.
Also brauchen wir ein "Geheimnis":

| $ openssl rand -base64 12 > /etc/exim4/srsd.secret

-

2) Exim konfigurieren

In dem Teil der Exim-Config, der mit
| ######################################################################
| # ROUTERS CONFIGURATION #
| # Specifies how addresses are handled #
| ######################################################################
| # THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
| # An address is passed to each router in turn until it is accepted. #
| ######################################################################
|
| begin routers
beginnt, sollten als erstes (!) die beiden folgenden Router stehen.

Erst einmal der für Bounces (also für Mails, die an eine per SRS
umgeschriebene neue Absenderddresse aus Deiner Domain gehen):

| # SRS routers have to executed first
| # Rewrite incoming bounces to original address
| srs_bounce:
| debug_print = "R: srs_bounce for $local_part@$domain"
| driver = redirect
| allow_fail
| allow_defer
| domains = $primary_hostname
| local_part_prefix = srs0+ : srs0- : srs0= : srs1+ : srs1- : srs1| caseful_local_part
| address_data = ${readsocket{/tmp/srsd}{REVERSE $local_part_prefix$local_part@$domain}{5s}{}{:defer: SRS daemon failure}}
| data = ${if match{$address_data}{^ERROR}{:fail: Invalid SRS address}{$address_data}}

Das setzt voraus, dass Du Deinen Hostnamen ($primary_hostname - muss
ggf. in der Config gesetzt werden) für die Generierung der neuen
Absender verwendest. Heißt Dein Rechner also blabla.muster.net, würden
Adressen der Form erzeugen. Natürlich
kannst Du stattdessen auch oder sonst etwas
nehmen; Du musst nur im nàchsten Router dieselbe Variante wàhlen wie
hier, und Mail an Adressen dieser Domain sollte diesen Exim (oder
einen anderen, identisch konfigurierten, durchlaufen).

| # Rewrite envelope sender for outgoing mail
| # (but not for sender adresses from one of the local domains)
| srs_forward:
| debug_print = "R: srs_forward for $local_part@$domain"
| no_verify
| senders = ! : ! *@+local_domains
| address_data = ${readsocket{/tmp/srsd}\
| {FORWARD $sender_address_local_part@$sender_address_domain $primary_hostname}\
| {5s}{}{:defer: SRS daemon failure}}
| errors_to = ${quote_local_part:${local_part:$address_data}}@${domain:$address_data}
| headers_add = "X-SRS: Sender address rewritten from <$sender_address> to <${quote_local_part:${local_part:$address_data}}@${domain:$address_data}> by $primary_hostname."
| driver = redirect
| repeat_use = false
| allow_defer
| data = ${quote_local_part:$local_part}@$domain

"headers_add" ist natürlich optional.

Wo in address_data "$primary_hostname" steht, muss dasselbe stehen,
was Du im vorherigen Router bei "domains" hast.

Du musst zudem darüber nachdenken, bei welchen (!) Mails Du den
Envelope-Sender umschreiben willst. Ziemlich sicher nicht bei denen,
deren Absender aus einer Deiner Domains kommt. Ich habe das hier durch
"senders" gelöst; lokal generierte Mail (also ohne Envelope-Sender)
und solche mit einem Envelope-Sender aus einer der Domains, für die
die Maschine Mail annimmt, werden nicht umgeschrieben. Das kann für
Dich so passen, muss aber nicht.

(Realiterist dieser Router bei mir zudem duch "domains" auf exakt eine
Domain beschrànkt, denn nur in dieser habe ich solche "naiven
Forwarder" eingerichtet.

-

Kommentare dazu gerne. Ich würde das nicht als Weisheit letzter
Schluss bezeichnen; es war ein schneller Hack für eine bestimmte
Situation, in der eine Lösung eilig war, danach habe ich das nicht
mehr angefasst. Es tat aber, und soweit ich sehe, tut es auch noch
heute.

Grüße,
-thh
Informationen rund um E-Mail und Mailserver:
<http://th-h.de/infos/email/>

-=_297jkbpopsr4mg9bisjotdkhpku7554ico.MFSBCHJLHS

IyEgL2Jpbi9zaA0KDQojIyMgQkVHSU4gSU5JVCBJTkZPDQojIFByb3ZpZGVzOiAgICAgICAgICBz
cnNkDQojIFJlcXVpcmVkLVN0YXJ0OiAgICANCiMgUmVxdWlyZWQtU3RvcDogICAgIA0KIyBTaG91
bGQtU3RhcnQ6ICAgICAgDQojIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1DQojIERlZmF1bHQt
U3RvcDogICAgICAwIDEgNg0KIyBTaG9ydC1EZXNjcmlwdGlvbjogU1JTIGRhZW1vbg0KIyBEZXNj
cmlwdGlvbjogICAgICAgU1JTIGRhZW1vbg0KIyMjIEVORCBJTklUIElORk8NCg0Kc2V0IC1lDQoN
CiMgL2V0Yy9pbml0LmQvc3JzZDogc3RhcnQgYW5kIHN0b3AgdGhlIHNyc2QgZGFlbW9uDQoNCkRB
RU1PTj0vdXNyL2Jpbi9zcnNkDQpVU0VSPURlYmlhbi1leGltDQpTRUNSRVRGSUxFPS9ldGMvZXhp
bTQvc3JzZC5zZWNyZXQNClBJREZJTEU9L3Zhci9ydW4vc3JzZC5waWQNClNPQ0tFVEZJTEU9L3Rt
cC9zcnNkDQpTUlNEX09QVFM9Ii0tc2VjcmV0ZmlsZSAke1NFQ1JFVEZJTEV9Ig0KDQp0ZXN0IC14
ICREQUVNT04gfHwgZXhpdCAwDQoNCi4gL2xpYi9sc2IvaW5pdC1mdW5jdGlvbnMNCg0Kc3JzZF9z
dGFydCgpIHsNCiAgICBpZiBzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1iYWNr
Z3JvdW5kIFwNCiAgICAgICAgLS1jaHVpZCAkVVNFUiBcDQogICAgICAgIC0tcGlkZmlsZSAkUElE
RklMRSAtLW1ha2UtcGlkZmlsZSBcDQogICAgICAgIC0tZXhlYyAkREFFTU9OIFwNCiAgICAgICAg
LS0gJFNSU0RfT1BUUw0KICAgIHRoZW4NCiAgICAgICAgcmM9MA0KICAgICAgICBzbGVlcCAxDQog
ICAgICAgIGlmICEga2lsbCAtMCAkKGNhdCAkUElERklMRSkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu
DQogICAgICAgICAgICBsb2dfZmFpbHVyZV9tc2cgInNyc2QgZGFlbW9uIGZhaWxlZCB0byBzdGFy
dCINCiAgICAgICAgICAgIHJjPTENCiAgICAgICAgZmkNCiAgICBlbHNlDQogICAgICAgIHJjPTEN
CiAgICBmaQ0KICAgIGlmIFsgJHJjIC1lcSAwIF07IHRoZW4NCiAgICAgICAgbG9nX2VuZF9tc2cg
MA0KICAgIGVsc2UNCiAgICAgICAgbG9nX2VuZF9tc2cgMQ0KICAgICAgICBybSAtZiAkUElERklM
RQ0KICAgIGZpDQp9ICMgc3JzZF9zdGFydA0KDQoNCmNhc2UgIiQxIiBpbg0KICBzdGFydCkNCiAg
ICBsb2dfZGFlbW9uX21zZyAiU3RhcnRpbmcgc3JzZCBkYWVtb24iICJzcnNkIg0KICAgIGlmIFsg
LXMgJFBJREZJTEUgXSAmJiBraWxsIC0wICQoY2F0ICRQSURGSUxFKSA+L2Rldi9udWxsIDI+JjE7
IHRoZW4NCiAgICAgICAgbG9nX3Byb2dyZXNzX21zZyAiYXBwYXJlbnRseSBhbHJlYWR5IHJ1bm5p
bmciDQogICAgICAgIGxvZ19lbmRfbXNnIDANCiAgICAgICAgZXhpdCAwDQogICAgZmkNCiAgICAg
ICAgc3JzZF9zdGFydA0KICAgIDs7DQogIHN0b3ApDQogICAgbG9nX2RhZW1vbl9tc2cgIlN0b3Bw
aW5nIHNyc2QgZGFlbW9uIiAic3JzZCINCiAgICBzdGFydC1zdG9wLWRhZW1vbiAtLXN0b3AgLS1x
dWlldCAtLW9rbm9kbyAtLXBpZGZpbGUgJFBJREZJTEUNCiAgICBsb2dfZW5kX21zZyAkPw0KICAg
IHJtIC1mICRQSURGSUxFDQogICAgcm0gLWYgJFNPQ0tFVEZJTEUNCiAgICA7Ow0KDQogIHJlc3Rh
cnQpDQogICAgc2V0ICtlDQogICAgbG9nX2RhZW1vbl9tc2cgIlJlc3RhcnRpbmcgc3JzZCBkYWVt
b24iICJzcnNkIg0KICAgIGlmIFsgLXMgJFBJREZJTEUgXSAmJiBraWxsIC0wICQoY2F0ICRQSURG
SUxFKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4NCiAgICAgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1z
dG9wIC0tcXVpZXQgLS1va25vZG8gLS1waWRmaWxlICRQSURGSUxFIHx8IHRydWUNCiAgICAgICAg
c2xlZXAgMQ0KICAgIGVsc2UNCiAgICAgICAgbG9nX3dhcm5pbmdfbXNnICJzcnNkIGRhZW1vbiBu
b3QgcnVubmluZywgYXR0ZW1wdGluZyB0byBzdGFydC4iDQogICAgICAgICAgICBybSAtZiAkUElE
RklMRQ0KICAgIGZpDQogICAgICAgIHNyc2Rfc3RhcnQNCiAgICA7Ow0KDQogIHN0YXR1cykNCiAg
ICBzdGF0dXNfb2ZfcHJvYyAtcCAkUElERklMRSAiJERBRU1PTiIgc3JzZA0KICAgIGV4aXQgJD8g
ICAgIyBub3RyZWFjaGVkIGR1ZSB0byBzZXQgLWUNCiAgICA7Ow0KICAqKQ0KICAgIGVjaG8gIlVz
YWdlOiAvZXRjL2luaXQuZC9zcnNkIHtzdGFydHxzdG9wfHJlc3RhcnR8c3RhdHVzfSINCiAgICBl
eGl0IDENCmVzYWMNCg0KZXhpdCAwDQo
-=_297jkbpopsr4mg9bisjotdkhpku7554ico.MFSBCHJLHS--

Ähnliche fragen