MailServer

aus: http://de.wikipedia.org/wiki/Datei:E-mail.svg Lizenz: GNU FDL

  • MUA (Mail User Agent) = eMail-Programm: ein Programm, mit dem E-Mails empfangen, gelesen, geschrieben und versendet werden.
  • SMTP: Protokoll zur Übertragung der eMail-Daten
  • Mail Transfer Agent (MTA; auch Mail Transport Agent): Ein Programm, das den Transport und die Verteilung von Nachrichten erledigt
    • MX-Record (Mail Exchange-Record) (siehe DNS: Zeigt auf die zuständigen Mail-Server einer Domain, wird vom MTA ausgewertet
  • Mail Delivery Agent (MDA): Eine Software, die eingehende E-Mails annimmt und sie nach bestimmten Kriterien an die Empfänger verteilt.
  • Mail Retrieval Agent holt E-Mails von einem Mailserver, genauer dem Mail Delivery Agent (MDA), ab und speichert sie auf dem lokalen Rechner.
  • POP3/IMAP: Protokolle zum eMail-Abruf.

DNS Blacklisting

Realtime Blackhole List (RBL) bzw. DNS-based Blackhole List (DNSBL): In Echtzeit (realtime) abfragbare schwarze Listen, die verwendet werden, um E-Mail zweifelhafter Herkunft als Spam zu klassifizieren. Die Listen werden von sog. DNS-Blacklistern gepflegt.

Greylisting

Greylisting: Die erste E-Mail von unbekannten Absendern wird temporär abgewiesen und erst nach einem zweiten Zustellversuch angenommen. Gute Software wie postgrey (oder amavisd-new) lernt verlässliche Mailserver automatisch und sorgt somit bei bekannt (zuverlässigen) Sendern für eine sofortige Zustellung.

Sender Policy Framework (SPF)

Das Verfahren Sender Policy Framework (SPF) macht überprüfbar welche Computer E-Mails für eine Domäne versenden dürfen. Dazu wird in der DNS-Zone einer Domäne ein sog. Resource Record vom Typ TXT oder SPF mit Informationen darüber hinterlegt, welche Computer E-Mails für diese Domäne versenden dürfen. Anhand dieser Informationen soll nach RFC 4408 der Empfangs-Server dann sowohl die „MAIL FROM“-Identität als auch die „HELO“-Identität des Senders nachprüfen.

Schema:

 v=spf1 mx a include:mailxy.domain.tld ip4:WeitereIP.IP.IP.IP ~all
  1. a „Meine Webseiten verschicken Mails, z.B. über Formmailskripte oder als Teil der installierten Programme wie Forum, Shoplösung etc.“ ansonsten weglassen.
  2. include:smtp-server (weiterer SMTP-Server)
  3. ip4:WeitereIP.IP.IP.IP (zusätzliche IPs von smtp-Server)
  4. ~all (=nicht alle aufgelistet); -all (ALLE Mailserver aufgelistet, Vorsicht!)

Problematisch an SPF ist, das SMTP bewusst keine Aussage darüber treffen wollte wer den „Briefkasten“ spielt. Daher gibt es einige Szenarien die bei -all Probleme bereiten:

  • Weiterleitungen an einen anderen Provider
  • Mailinglisten die in meinem Namen mails weiterleiten (und nicht den Envelope umschreiben)
  • Artikelempfehlungen/Webgrußkarten etc. die den Absender des Empfehlenden setzen

Da zudem Spammer die ersten waren die SPF korrekt umgesetzt haben wird heute von Spamassassin ein korrekter SPF (SPF_PASS) nur noch extrem minimal positiv bewertet und ein fehlgeschlagener SPF (SPF_FAIL) zur Zeit nur mit 0,919 Punkten bestraft (siehe 3.3.x-Tests). Der Einsatz von SPF hat also nur wenig bis keine praktische Auswirkung.

DomainKeys Identified Mail (DKIM)

Das DomainKeys-Verfahren führt eine Digitale Signatur ein über die der Empfänger überprüfen kann ob eine E-Mail tatsächlich unverändert vom richtigen Mailserver stammt. Dazu wird per DNS der öffentliche Schlüssel zugänglich gemacht und dieser durch asymmetrischer Verschlüsselung überprüft. Aufgrund dieses Konzeptes muss der E-Mail-Provider seine Systeme entsprechend angepasst haben was aus Komplexitätgründen selten passiert.

DMARC

Das Domain-based Message Authentication, Reporting and Conformance (kurz DMARC) baut auf den bekannten Techniken SPF und DKIM auf (siehe oben). DMARC legt zusätzlich fest auf welche Art der Empfänger mit einer Mail umgeht, die in einem oder beiden Fällen nicht den Anforderungen entspricht. Es ist also erstmals ein Benachrichtigung (wieviel Spam unterwegs ist) und leichtere Auswertung auf Providerebene möglich.

DMARC @msxfaq.de

dig txt _dmarc.ebay.de
_dmarc.ebay.de.		300	IN	TXT	"v=DMARC1\; p=none\; rua=mailto:ebay@rua.agari.com,mailto:dmarc_agg@auth.returnpath.net\; ruf=mailto:ebay@ruf.agari.com,mailto:dmarc_afrf@auth.returnpath.net\; fo=1\; rf=afrf\; pct=100"
  • Felder im Header einer eMAIL:
    • To: Der Empfänger der eMail
    • CC: grundsätzlich wie „To:“, hier kann der Sender deutlich machen, dass die eMail nur eine Kopie zur Kenntnisnahme darstellt. Empfänger in diesem Feld sind für andere Empfänger sichtbar.
    • BCC: Empfänger in diesem Feld sind für andere Empfänger nicht sichtbar.
    • Subject: Betreff einer eMail
    • X-… hinzugefügte Informationsfelder von Virenscanner, Spamfilter, Zwischenstationen, …

Webserver richtigen Standardabsender angeben lassen (php.ini oder httpd.conf):

php_admin_value sendmail_from user@domain.de
php_admin_value sendmail_path "sendmail ­t ­i ­f user@domain.de"

Unter Linux:

  • cyrus mail server: läuft nicht als root, viele Features
  • Courier Mail Server
  • dovecot: Design-Ziel: Sicherheit und Zuverlässigkeit (u. a. gutes Fehlerhandling)
  • Perdition: POP3 and IMAP4 Proxy server
  • Web-cyradm: eine web-basierte Verwaltungsoberfläche für cyrus-imap and Postfix.

Unter Windows:

kommerzielle

SMTP Proxies

TIP: swaks: SMTP command-line test tool

Push-mail wird, im Gegensatz zum periodischen Abholen (pull) der eMail, direkt nach dem eintreffen auf mobile Geräte gesendet. Es sind offene Lösungen (IMAP-IDLE) propritären Lösungen (wie Blackberry) vorzuziehen.

FIXME

Anbieter

Checkliste

  • IP Addressen der MTAs/Mailserver sollten
    • nicht dynamisch sein (die werden von großen Providern blockiert und hat Kommunikationsprobleme)
    • identische vorwärts- und Rückwärts-DNS-Auflösung haben
    • nicht auf einer Blacklist sein
  • der MTA/Mailserver sollte den zur IP-Adresse passenden Namen konfiguriert haben und sich damit melden („greeting“)
  • kein offenes Relay sein (mail nur von authentizierten Benutzern annehmen bzw. nur für die eigenen Domains annehmen)
  • korrekte (!) SPF/DKIM-Records helfen sind aber nicht Zwang

Aliase

Aliase für Nutzer trägt man in der Datei /etc/aliases ein. Die Änderungen gibt man durch

newaliases

bekannt.

Das Format ist Benutzer: ALIAS, wobei ALIAS ein anderer Benutzer oder eine eMail-Adresse sein kann. Alternativ sind auch Aufrufe vom Programme (über Pipe) möglich:

benutzer: "|/var/lib/mailman/mail/mailman post Benutzergruppe"

Das Beispiel ist von mailman.