Automatic Service Discovery für Maildienste (SMTP, IMAP, POP3) – generisches Autodiscover

RCF 6186 beschreibt einen DNS Dienst, der dafür sorgt, dass Mailclients automatisch die passenden Einstellungen für die Dienste SMTP, POP3 und IMAP finden. Eine Autokonfiguration über DNS, ähnlich Autodiscover von Microsoft / Exchange = generisches Autodiscover.

Clients, die diesen Standard unterstützen sind z.B. Thunderbird, Apple Mail, Outlook, etc.

Dies erspart einerseits Supportaufwand, darüber hinaus erhalten Ihre Kunden eine komfortable, automatische Unterstützung bei der Einrichtung ihrer Mailbox auf dem Client.

SMTP-Einstellungen

Um die SMTP-Einstellungen zu veröffentlichen, die man am Client normalerweise einstellen müsste, muss folgender DNS SRV Eintrag angelegt werden:

5 0 587 smtp.meinedomain.tld

Dieser Eintrag gilt sowohl für SSL-Verbindungen als auch nicht SSL-Verbindungen. Die Unterscheidung wird über den Standardport (im Beispiel 587 = SSL) gelöst.

IMAP

Für IMAP gibt es zwei Dienstbezeichner:

  • _imap
  • _imaps

POP3

Für POP3 gibt es zwei Dienstbezeichner:

  • _pop3
  • _pop3s

Weitere Informationen:

Stehen verschiedene Optionen zur Auswahl, so können diese priorisiert werden (z.B. IMAP bevorzugt gegenüber POP3)

_imap._tcp     SRV  0 1 143 mail.meinedomain.tld
_pop3._tcp     SRV 10 1 110 mail.meinedomain.tld

Soll ein Dienst bewusst überhaupt nicht angeboten werden, so kann dieses ebenfalls über einen SRV Record mit einem . als Wert geregelt werden:

_imap._tcp     SRV  0 0 0   .
_imaps._tcp    SRV  0 1 993 imap.meinedomain.tld
_pop3._tcp     SRV  0 0 0   .
_pop3s._tcp    SRV 10 1 995 pop3.meinedomain.tld

Einstellungen prüfen

Ihre Einstellungen können Sie mit einem Mailclient auf Korrektheit prüfen, oder über ein dig Befehl:

; <<>> DiG 9.8.3-P1 <<>> srv _submission._tcp.meinedomain.tld
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11998
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;_submission._tcp.meinedomain.tld.    IN    SRV
;; ANSWER SECTION:
_submission._tcp.meinedomain.tld. 86400 IN    SRV    5 0 587 smtp.meinedomain.tld.
;; Query time: 52 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Apr 24 13:42:27 2015
;; MSG SIZE  rcvd: 78

oder für imap bspw.:

dig srv _imap._tcp.meinedomain.tld

Haben Sie Autodiscover schon für Ihre Kunden bereitgestellt?

SMTP-Traffic am Mailserver trennen, aufteilen und priorisieren z.B. nach Kundengruppe

Stellen Sie sich folgendes Szenario vor: Sie besitzen zwei (oder mehr) Arten von Mailboxen auf Ihrem Mailserver z.B.:

  • Privat- und Geschäftskunden
  • Premium und Free-Kunden
  • Interne und externe Mailkonten
  • Konten für den Newsletterversand und wichtige Mailkonten

Idealerweise sollen sich diese Kundengruppen nicht beeinflussen, heißt z.B. wenn eine Kundengruppe Spam versendet sollte das nicht die andere beeinflussen. Oder wenn Max Mustermann einen verseuchten Rechner hat, sollte das nicht dazu führen, dass die Mustermann AG keine Mails mehr versenden kann. Auch Ihr Geschäftsführer will erreichbar bleiben, selbst wenn der letzte Weihnachts – Newsletter bei den Kunden nicht gut ankam.

Von daher ist es sinnvoll, den ein- und ausgehenden SMTP – Traffic für verschiedene Kundengruppen aufzutrennen und somit mit einem Blacklisting nicht den gesamten Mailserver außer Betrieb zu nehmen.

Das nachfolgende Beispiel zeigt Ihnen, wie Sie Ihren Mailserver entsprechend konfigurieren können. Wir entscheiden uns exemplarisch für die Firmen- und Privatkunden als Kundengruppen.

Sie benötigen hierzu mehrere öffentliche IP-Adressen:

  • Geschäftskunden bekommen die IP1
  • Privatkunden die IP2

Trennung des eingehenden Mailverkehrs (SMTP-In)

Die MX-Records der Domain werden entsprechend angepasst:

  • privatkunden.tld => MX => IP1
  • firmenkunden.tld => MX => IP2

Der Mailserver muss daher so eingestellt werden, dass er über mehrere IP-Adressen Mails annehmen kann. In AXIGEN erfolgt dies über die Listener:

RecListener

Somit können auf mehreren IPs Mails empfangen werden. Entsprechende Ports für SMTP und SMTP-S müssen ebenso eingerichtet werden (25,587, etc.)

Trennung des ausgehenden Mailverkehrs (SMTP-Out)

Der ausgehende Mailverkehr ist so zu konfigurieren, dass je nach Domain eine andere IP-Adresse für den Versand verwendet wird:

 

  • privatkunden.tld => Versand über IP1
  • firmenkunden.tld => Versand über IP2

In AXIGEN geht dies über eine Routing-Regel (Webadmin => Security & Filtering => Acceptance & Routing => Advanced Setting => Add Routing Rule):

routing

Hier lässt sich folgendes Festlegen:

  • Wenn die Absender Domain privatkunden.tld heißt
  • Dann verwende die IP2 (im Screenshot x.x.x.x) für den Versand

Darüber hinaus wäre es auch wünschenswert, den Traffic zu priorisieren. Mails von Geschäftskunden sollen schneller abgearbeitet werden, die Mails von Privatkunden. Auch hier bietet AXIGEN eine einfache Lösung: https://www.axigen.com/knowledgebase/Prioritizing-e-mail-traffic-using-the-delay-delivery-option-provided-by-AXIGEN_139.html

Folgende Fragen an unsere Leser:

  • Hatten Sie jemals das Problem, dass der Mailserver wegen einer einzelnen Mailbox (z.B. einem verseuchten Rechner) komplett auf der Blacklist gelandet ist und somit kein Mailversand mehr möglich war?
  • Wie lösen Sie dieses Problem in der Praxis?
  • Welche Kundengruppen haben Sie?
  • Kann das Ihr Mailsystem auch und wie?

 

 

SMTP-Dienste am Mailserver absichern

Es gibt derzeit viele Anfragen zum Thema Verschlüsselung, Compliance, MandatoryTLS, “E-Mail Made in Germany” (das ist übrigens eine Partnerschaft und kein technisches Konzept).

Aus diesem Grund möchten wir Ihnen mit dem heutigen Artikel zeigen, wie Sie Ihre SMTP-Dienste am Mailserver (im Beispiel AXIGEN) korrekt absichern.

Aufgaben

Folgende Aufgaben gilt es zu erledigen:

  • Zwei SMTP-Listener einrichten (Einer auf Port 25 und einer auf Port 587)
  • Optional: Weiteren Listener für Port 465
  • STARTTLS auf den Listeners aktivieren
  • Plain-Authentifizierung ausschalten
  • Authentifizerung bei sicheren Verbindungen aktivieren (nach TLS)

Grundlagen der SMTP-Listener / Ports

Im SMTP-Verkehr sind folgende drei Ports im Standard beschrieben:

  •  25 – SMTP – dieser wird zur Kommunikation von MTA zu MTA (also Mailserver zu Mailserver) verwendet. Dieser Port kann auch zur Kommunikation mit Mailclients verwendet werden. Jedoch gibt es deutlich bessere Optionen.
  • 465 – SMTPS – SSL wird auf diesem Port erzwungen und wird vor jeder weiteren Kommunikation zwingend vorausgesetzt. Kein SSL, keine weitere Verbindung.
  • 587 – MSA – dieser Port ist ähnlich zum Standard-Port. SSL kann auf diesem Port verwendet werden. Da sehr viele ISPs den Versand von SMTP-Nachrichten auf Port 25 unterbunden haben (viele Schadprogramme verwenden diesen Port), sollten sie diesen Port einrichten, damit Ihre Benutzer auch E-Mails einliefern können. Das betrifft vor allem Benutzer, die in Mobilfunktnetzen oder öffentlichen WLANs unterwegs sind.

STARTTLS erlauben

Im ersten Schritt sollten Sie prüfen, ob STARTTLS für eingehende Verbindungen erlaubt ist:

  • WebAdmin => Security and Filtering
  • Dort auf Acceptance and Routing klicken
  • Im Bereich Acceptace Basic Settings prüfen Sie den Bereich Allowed ESMTP Comands
  • Stellen Sie sicher, dass Allow StartTLS angehakt ist.

Für ausgehende Verbindungen sollten Sie prüfen, ob STARTTLS ESMTP korrekt eingerichtet it:

  • WebAdmin => Security and Filtering
  • Dort auf Acceptance and Routing klicken
  • Im Bereich Routing Basic Settings prüfen Sie die Einstellungen für Outgoing Delivery
  • Prüfen Sie dort, ob die Checkbox bei Use StartTLS if available angehakt ist.

 SMTP-Listener einrichten

Ports 25 und 587:

Diese beiden Ports sollten auch Verbindungen ohne SSL erlauben, jedoch STARTTLS unterstützen.

smtp_rec

Die SSL-Einstellungen sollten auf beiden Ports so aussehen:

listeners

 

Folgende zusätzliche Hinweise sind zu beachten:

  • Die Checkbox “Enable SSL for this listener” sollte nicht aktiviert werden. Diese beiden Listener sollen primär nicht-SSL Verbindungen akzeptieren. Erst wenn der Client den Befehl für STARTTLS sendet, wird AXIGEN automatisch SSL aktivieren.
  • SSLv2 und SSLv3 sind deaktiviert. Diese beiden veralteten SSL-Protokolle sind angreifbar.
  • Wenn Sie DHE Cipher verwenden möchten, wie z.B. DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA dann müssen Sie den Pfad für das DH (Diffie-Hellman) Parameter-File setzen.

SMTP Port 465:

Der Port 465 sollte nur SSL-Verbindungen akzeptieren. Hierzu müssen Sie die Checkbox bei “Enable SSL for this Listener” aktivieren.

Regeln für die Authentifzierung

Im nächsten Schritt sollten zwei Regeln auf dem AXIGEN angelegt werden:

  • Authentifizierung für Plan-Text Verbindungen deaktivieren
  • Aktivierung der Authentifizierung für sichere Verbindungen (nach StartTLS)

Dies wird in AXIGEN über zwei Routing-Regeln erreicht. Diese müssen im Webadmin -> Security and Filtering -> Acceptance and Routing -> Advanced Settings angelegt werden.

Nachfolgend erklären wir Ihnen diese beiden anzulegenden Regeln

  • disableAUTH_on_non_SSL
  • enableAUTH_on_SSL

Authentifizierung für Plain-Text-Verbindungen deaktivieren:

  • Klicken Sie auf “+ Add Acceptance/Routing Rule“.
  • Als Name geben Sie ein “disableAUTH_on_non_SSL
  • Conditions lassen Sie leer. Dies bedeutet, dass diese Regel für alle Verbindungen gilt.
  • Bei Actions wählen Sie “Plain connections authentication” und setzen Sie “Not authenticated
  • Klicken Sie auf Save Configuration

rule1

Authentifizierung für sichere Verbindungen zulassen (jedoch erst nach StartTLS):

  • Klicken Sie auf “+ Add Acceptance/Routing Rule“.
  • Als Name verwenden Sie “enableAUTH_on_SSL
  • Conditions lassen Sie leer. Dies bedeutet, dass diese Regel für alle Verbindungen gilt.
  • Bei Actions wählen Sie “SSL connections authentication” und setzen “Authenticated”.
  • Wählen Sie die gewünschten Authentifizierungarten
  • Da diese Regel nur für sichere Verbindungen gilt, könnten Sie Plain und Login weglassen
  • Klicken Sie auf “Save Configuration

rule2

Reihenfolge der beiden Regeln:

In der Übersicht unter Advanced Acceptance / Routing Rules stellen Sie bitte sicher, dass disableAUTH_on_non_SSL rule vor der Regel enableAUTH_on_SSL in der Reihenfolge kommt:

order

STARTTLS für eingehende und ausgehende SMTP Verbindungen bei einer bestimmten Domain erzwingen

Damit Sie STARTTLS für eingehende und ausgehende SMTP-Verbindungen zwingend voraussetzen, benötigen Sie eine Routing Regel.

Das ist dann sinnvoll, wenn Sie

  1. Wenn Sie Mails nur annehmen wollen, wenn der gegnerische Server STARTTLS unterstützt.
  2. Sie Mails an einen gegnerischen Mailserver nur mit STARTTLS ausliefern wollen.

Hinweis: Dies kann dazu führen, dass Sie keine Mails von Servern erhalten, die dieses Verfahren nicht unterstützen)

Hierzu muss die folgende Regel angelegt werden:

 

  • Klicken Sie auf “+ Add Acceptance/Routing Rule“.
  • Als Name verwenden Sie “allow_only_tls_for_mydomain_com” (bitte entsprechend anpassen)
  • Bei Conditions wählen Sie Connection -> isSSL und lassen die Checkbox unangehakt
  • Bei Conditions wählen Sie danach Recipient->Domain is “mydomain.com” (Domain Namen bitte anpassen)
  • In der oberen Combobox (“For incomig messages that match”) wählen Sie ALL aus.
  • Bei Actions fügen Sie Folgendes hinzu SMTP -> Action. Danach wählen Sie Reject aus der Dropdown aus und hinterlassen eine Erklärung für den gegnerischen Mailserver, wie z.B. “Accepting only secure delivery (STARTTLS) for mydomain.com
  • Klicken Sie auf Speichern

forcetls

Ausgehenden SMTP-Verkehr mit STARTTLS in Kombination TLS1.1 und TLS1.2 erzwingen

Hinweis: Dies kann dazu führen, dass Mails nicht ausgeliefert werden können, wenn der gegnerische Mailserver kein STARTTLS mit TLS1.1/1.2 unterstützt.

Falls Sie erzwingen wollen, dass AXIGEN nur E-Mails an Server liefert, die STARTTLS mit TLS1.1 oder TLS1.2  unterstützen, müssen Sie folgende Regel anlegen:

 

  • Klicken Sie auf “+ Add Acceptance/Routing Rule“.
  • Als Name verwenden Sie “use_only_tls11_and_12_when_relaying”
  • Bei Conditions wählen Sie Delivery->Relaying mail 
  • Bei Action fügen Sie folgendes hinzu -> SSL Encryption und stellen Sie sicher, dass die Checkbox angehakt ist
  • Bei Actions fügen Sie weiterhin hinzu -> SSL Versions und stellen Sie sicher, dass nur TLS1.1 und TLS1.2 angehakt sind
  • Klicken Sie auf Speichern

relaying tls

Den englischen Originalartikel finden Sie hier.

 

Bilder in E-Mail-Signaturen: Verlinken, einbetten oder verzichten?

Oft finden sich in E-Mail Signaturen im geschäftlichen Umfeld Bilder. Dies kann das Unternehmenslogo, das Bild des Ansprechpartners oder eine Unterschrift sein.

Wenn Bilder verwendet werden, kommt es oftmals zu Problemen, das sich im berühmten “X” äußert. Nicht schön.

missing

Das HTML-Format ist in E-Mails oftmals Standard. HTML bietet zwei Arten Bilder einzufügen: Verlinken oder Einbetten.

Nachfolgend möchten wir Ihnen beide Möglichkeiten vorstellen und bewerten:

Eingebettete Bilder

Diese Option ist sehr beliebt, insbesondere bei Outlook-Benutzern. Hierbei wird das Bild intern als Anhang mitgesendet und innerhalb der Nachricht über eine ID verlinkt.

<IMG src=”cid:unique content id”>

Vor- und Nachteile:

+ Wird automatisch angezeigt, wenn die E-Mail geöffnet wird
+ Wird auch angezeigt, wenn der Client offline ist
+ Keine externe Ahängigen
– Wird oft von Antivirus/Antispam-Lösungen blockiert
– Bläht die E-Mail auf (Bild jedesmal als Anhang)
– Belastet die Server-Infrastrukturen (Signaturbild muss durch den Virenscanner geprüft werden und belegt Speicherplatz)

Verlinkte Bilder

Hierbei wird das Bild nicht als Anhang an der Mail versendet, sondern es wird auf ein externes Bild verwiesen, das auf einem Webserver liegt:

<IMG src=”http://www.axigenmailgate.de/signatur-huestel.jpg”>

Vor- und Nachteile:

+ Wird nicht von Antivirensofware geblockt
+ Entlastet die Mailserver Infrastruktur
+ Spart Speicherplatz
– Wird oft nicht automatisch im Client angezeigt und muss explizit freigegeben werden (Bilder herunterladen)
– Empfänger muss Online sein, um Bilder anzuzeigen
– Externe Abhängigkeiten vom Webserver (URL, Erreichbarkeit)

Fazit:

Braucht man Bilder in der Signatur wirklich?

Wir selbst verwenden keine Bilder, reiner Text tut es auch. Man muss auch bedenken, dass diese Bilder auf Smartphones geladen werden müssen und dort auch unnötig Traffic erzeugen. Mobiler Traffic ist teuer.

Wie ist Ihre Meinung?

Wenn es unbedingt Bilder in der Mailsignatur sein müssen, würden wir zur Verlinkungsvariante tendieren. Eine große Menge an Speicherplatz in Mailservern wird sicherlich durch Signaturbilder belegt. Das könnte man sich sparen und so die eigene und fremde Serverinfrastrukturen entlasten.

 

 

Mails vom Provider einliefern: SMTP-Weiterleitungen und IMAP-Weiterleitungen

Folgende Anforderung treffen wir auch heute noch relativ häufig an:

E-Mails liegen beim externen Provider und sollen auf einen lokalen Mailserver eingeliefert werden

Dies ist häufig bei kleinen Infrastrukturen der Fall, wenn man bspw. keine externe feste IP hat oder Spam-/Virenschutz dem Provider überlassen will. Oft wird dieses Szenario auch “Homeserver” genannt.

Erstrebenswert wäre dennoch, dass der eigene Mailserver alle Arbeiten selbst übernimmt. Selbst ohne feste IP ist es kein Problem mehr.

Geht es nicht anders oder ist es eine geziele Anforderung, benötigt man eine Lösung zur Einlieferung der Mails.

Prinzipiell muss man hierbei zwischen zwei Szenarien unterscheiden:

  • Jeder Benutzer hat sein eigenes Posfach beim Provider (Szenario 1)
  • Es gib ein zentrales Sammelpostfach (schlimmstenfalls sogar Catch-All). Mails aus diesem Postfach müssen dann in Einzelpostfächer verteilt werden. Dieses Szenario lassen wir außen vor, da es einen sehr hohen Konfigurationsaufwand erfordert und nur wenige Tools diese Verteilung korrek vornehmen. Kurz gesagt: Es geht, aber wie ist die Frage. Bei Interesse kontaktieren Sie uns.

Hat man diese Unterscheidung getroffen, hängt das Mittel der Wahl zusätzlich vom Mailserver und vom Betriebssystem ab.

AXIGEN RPOP

Unser Mailserver-System AXIGEN hat dafür das sogenannte RPOP-Feature eingebaut. Hier lassen sich im Webmail ganz einfach die POP3-Zugangsdaten eines oder mehrerer externer Mailkonten angeben und schon werden die Mails im Intervall in’s Postfach geholt.

Dies funktioniert tadellos.

Windows: P2S

Ein geeignetes Tool für Windows ist P2s. P2S holt Mails aus einem Postfach über POP3 oder IMAP ab und leitet die Mails dann über SMTP auf den eigenen Mailserver weiter.

Das Tool selbst ist kostenlos.

Eine kostenpflichtige Alternative, die vor allem im Exchange-Umfeld eingesetzt wird, ist Popcon.

Linux: Fetchmail

Unter Linux ist fetchmail das Mittel der Wahl. Ein Beispielaufruf sieht so aus:
poll axigenmailgate.de with proto POP3
user remoteuser there with password secret is axigenuser@axigenmailgate.de here options your_fetchmail_options

Plattformübergreifene Alternative: Einlieferung über IMAP

Neben den POP2SMTP und IMAP2SMTP Tools gibt es auch noch eine andere elegante Methode. Lassen Sie Ihre Mails vom Provider über POP3 abholen und liefern Sie diese über IMAP in ein lokales Postfach ein.

Dieses Tool heißt poptoimap und ist ein Perl-Script.

Der Vorteil dieses Verfahrens ist, dass sozusagen direkt von Postfach in ein anderes Postfach kopiert wird. Damit spart man sich den Umweg über SMTP und die damit verbundenen Probleme (wie SPF, MX-Check, etc.). Über poptoimap werden wir noch ausführlicher Berichten.