Login
Newsletter
Werbung

Sa, 6. Dezember 2003, 00:00

Postfix UCE-HOWTO

freemail_hotmail =
 check_client_access pcre:/etc/postfix/maps/freemail_hotmail
freemail_msn =
 check_client_access pcre:/etc/postfix/maps/freemail_msn
freemail_yahoo =
 check_client_access pcre:/etc/postfix/maps/freemail_yahoo

Wir müssen noch eine Datei erstellen, in dem wir die Domain-Namen von diesen Freemail-Sites angeben. Die Datei können wir mit dem Namen /etc/postfix/maps/freemail_check anlegen. Der Inhalt dieser Datei:

hotmail.com freemail_hotmail
msn.com freemail_msn
yahoo.com freemail_yahoo

Und noch in der Beschränkungsphase smtpd_recipient_restrictions dies auch angeben:

smtpd_recipient_restrictions =
 [..]
 check_sender_access hash:/etc/postfix/maps/freemail_check,
 [..]

Nun haben wir alles angepasst, werfen wir doch einen Blick auf den Inhalt der freemail_(provider) Dateien, wie es aussehen sollte:

/(^|\.)provider\.tld$/ DUNNO
/./ REJECT You claim to be from provider.tld \
 but your mail didn't come from a provider.tld server.

Wenn also der Absender eine Email-Adresse von provider.tld benutzt, schaut Postfix nach, ob der Client auch von einem provider.tld-Server kommt. Wenn ja, hört er auf, die Datei zu parsen (wegen dem DUNNO) und schaut sich die nächsten Beschränkungen an. Wenn der Client nicht von provider.tld stammt und der erste Regular Expression nicht übereinstimmt, dann geht Postfix zum nächsten. Weil die zweite Linie auf alles matcht, verwirft Postfix die Nachricht mit dem oben liegenden Text.

Schauen wir doch am besten ein Beispiel an. Nehmen wir an, dass sich jemand bei uns mit einer yahoo.com Email-Adresse ausgibt. Die Datei freemail_yahoo sieht also so aus:

/(^|\.)yahoo\.com$/ DUNNO
/./ REJECT You claim to be from yahoo.com \
 but your mail didn't come from a yahoo.com server.

Die Parameter für die SMTP-Verbindung:

SMTP-Client:

  • Adresse: 111.111.111.111
  • Hostname: host.domain.de
  • Prefix: >>

SMTP-Server:

  • Adresse: 222.222.222.222
  • Hostname: mail.domain.de
  • Prefix: <<

Die Verbindung würde so ausschauen:

<< 220 mail.domain.de ESMTP
>> EHLO host.domain.de
<< 250-domain.de
<< 250-PIPELINING
<< 250-SIZE 10240000
<< 250-ETRN
<< 250 8BITMIME
>> MAIL FROM:<123456@yahoo.com>
<< 250 Ok
>> RCPT TO:<user@domain.de>
<< 554 <host.domain.de[111.111.111.111]>: Client host rejected: ...
>> DATA
<< 554 Error: no valid recipients
>> QUIT
<< 221 Bye

Bevor man andere Freemail-Server definiert, sollte man sich vergewissern, ob die wirklich auch über deren eigene Domain die Emails verschicken. Meistens ist das der Fall, aber man soll ja schliesslich nichts dem Zufall überlassen.

Links

http://www.securitysage.com/guides/postfix_uce.html
http://www.mengwong.com/misc/postfix-uce-guide.txt
http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt
http://www.arschkrebs.de/postfix/
http://www.postfix.org/uce.html
http://www.postfix.org/docs.html

Copyright/Lizenz

Copyright (c) 2003 Istvan Sebestyen. All rights reserved.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Author.

Thanks

Special thanks to Gergely Nagy on the #linux channel of the hungarian SIRC network.

Thanks to Fabio Robbiani who helped me with some grammatical issues ;-)

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung