Den Mailserver, den wir einrichten werden, verwendet mehrere Softwarekomponenten. Lass uns klären, welche Software welchen Zweck erfüllt:

  • Debian - das Betriebssystem

  • LXC – Linux Container, ein Verfahren zur Virtualisierung auf Betriebsystemebene.

  • Shorewall – Firewall Framework für Iptables (Netfilter)

  • Postfix - empfängt eingehende E-Mails aus dem Internet und leitet E-Mails an andere Mail-Server weiter

  • rspamd - prüft jede eingehende E-Mail auf Spam / Malware und lehnt sie ab oder legt sie im Junk-Ordner des Benutzers ab

  • Dovecot - speichert E-Mails auf Ihrer Festplatte, wendet Filter an und lässt Ihre Benutzer ihre E-Mails mit den Protokollen POP3 und IMAP abrufen

  • MariaDB - ist eine Datenbank, in der Informationen zu Domains, E-Mail-Aliasnamen und E-Mail-Konten gespeichert werden

  • DKIM – (Domain Keys Identified Mail) E-Mail mit einer Signatur signieren und Prüfen.

  • Postgray – Unbekannte E-Mails temporär abweisen und auf neue Auslieferung der eMail warten (Spamer warten nicht, sie Verschicken nur)

  • unbound - (DNS-Cacher, Praktisch für LXC und schnellere Mail-Auslieferung)

Schauen wir uns die Email spezifischen Dienste an:

Was geschieht, wenn dir jemand eine Email sendet?

Nehmen wir an, du hast die Domain beispiel.de und jemand möchte dir eine E-Mail an smk@beispiel.de senden.
Gehen wir dieses Szenario einmal Schritt für Schritt durch:

mailserver email abholen
 
  1. Der Remote-Mailserver fragt seinen nächsten DNS-Server nach einem MX-Server (Mail Exchange Resource Recordder Domäne des Empfängers. Die Domain, hier beispiel.de, fragt die "MX" von beispiel.de ab. Der DNS-Server antwortet, dass der Hostname des verwantwortlichen Ziel-Mailserver mx5.beispiel.de lautet. Falls kein MX-Record vorhanden ist, wird versucht, den A-Record als Fallback zu verwenden. Der DNS-Server kann sogar mehrere MX-Einträge enthalten mit unterschiedlichen Prioritäten. Der Remote-Server fragt alle Einträge (höchste Priorität zuerst) nach.
  2. Der Mailserver fordert den DNS-Server erneut auf, die IP-Adresse des Mailservers mx5.beispiel.de herauszufinden. Der DNS-Server antwortet mit der IP-Adresse.
  3. Jetzt baut der Mailserver eine TCP-Verbindung mit dem Port 25 (Default für SMTP) auf. Der Postfix Dienst hört auf diesen Port und bekommt als erstes die E-Mail-Adresse des Absenders und Empfängers sowie den Inhalt mitgeteilt. Die SMTP Kommunikation wird offen gehalten, während der nächste Schritt, Spam-/Malware-Prüfung rspamd.
  4. Postfix spricht sich jetzt mit rspamd aus und leitet die Email und die sendeten IP-Adresse weiter. rspamd führt einige Tests durch und berechnet eine numerische Bewertung. Eine niedrige Punktzahl bedeutet, dass die Email wahrscheinlich echt ist. Eine hohe Punktzahl bedeutet, du Ahnst es sicherlich schon, dass es sich wahrscheinlich um Spam handelt oder sogar Malware enthält. Abhängig von der Konfiguration von rspamd wird Postfix angewiesen, die Email Anzunehmen, zu verzögern oder abzulehnen.
  5. Wenn rspamd die Email akzeptiert hat, führt Postfix weitere Prüfungen durch, sogenannte Einschränkungen. Ist der Mailserver überhaupt für die Domain des Empfängers zuständig? Ist die Email-Adresse in dieser Domain vorhanden? Wurde die Mail von einer Fully-Qualified Host Name kurz FQDN versendet worden? Wenn der Empfänger nicht als gültig eingestuft wurde, wird die Email erneut abgelehnt.
  6. Jetzt hast Postfix die Email endlich akzeptiert und die SMTP-Verbindung zum sendenden Server getrennt. Die Email wird an Dovecot weitergeleitet. Die Kommunikation von Dovecot verwendet Local Mail Transfer Protocol (LMTP), eine einfacher Variante von SMTP. Postfix entfernt jetzt die Emails aus der Queue (Warteschlange).
  7. Dovecot kann jetzt prüfen, ob der Empfänger Regeln definiert hat, wo diese zum Beispiel abzulegen ist usw.
  8. Dovecot speichert jetzt die Email in einer Datei des Email-Verzeichnisses des Empfängers.

Das wars, die Email wurde Empfangen.

Jetzt aus Sicht, wenn du deine Email abrufst!

mailserver email abholen

  1. Der Benutzer ruft seine Emails mit einem Email-Client wie Thunderbird oder Evolution ab. Dieser Email-Client stellt eine Verbindung zu Port 143 (IMAP) her, sendet den STARTTLS-Befehl, um eine Verschlüsselte Verbindung zu initiieren und sendet den Benutzername und das Kennwort. IMAP behält die Emails auf dem Server. (POP3 wurde entwickelt um die Emails vom Server abzuholen, also löscht. Mit POP3 könnte man zwar auch Keep aktivieren, was ursprünglich nur zu testzwecken implementiert wurde um Debug Informationen bei Fehler zu erhalten.)
  2. Dovecot schaut jetzt in die Datenbank und überprüft, ob der Benutzername und Kennwort zu einem seiner Benutzer gehören. Dovecot speichert die Kennwörter mit sogennante Salted Hashes ab. Somit kann das Kennwort von Dovecot überprüfen aber nicht mehr lesbar machen. Dies ist eine sichere und moderne Art, Kennwörter zu speichern. War der Benutzer oder Kennwort falsch, lehnt Dovecot die Verbindung ab.
  3. Dovecot kann Emails auf drei Unterschiedlichen Arten speichern, mbox, dbox und Maildir. Ich habe mich für das Maildir-Format entschieden, wie Emails auf der Festplatte gespeichert werden. Dovecot sucht bei eine Anmeldung in sein Maildir Verzeichnis nach dem Benutzer und sendet ihn seine angeforderte Emails.

Was passiert, wenn du eine Email versendest?

mailserver email versenden

Sendest du jemanden eine Email kannst du diese nicht direkt zur Absenderadresse schicken, der Mail-Client weiß nicht welcher Server für die Email die du versendest verantwortlich ist. Außerdem ist es im Privatbereich unüblich eine Statische IP-Adresse zu besitzen, dein Provider vergibt dir eine dynamische Adresse und Emails mit einer dynamischen IP-Adresse werden als Spam betrachtet. Damit die Email beim Empfänger ankommt, wird die Mail erst mal an deinem Server geschickt, der diese dann weiter verarbeitet. Dies nennt man auch Relaying, da dein Mailserver das Weiterleiten (Relay) übernimmt. In diesem Beispiel beschreibe ich den Weg einer Email an person@beispiel.org.

  1. Nehmen wir einmal an, du schreibst eine Email an deinem Heimischen PC und klickst auf Versenden. Der Mail-Client baut eine direkte Verbindung zum SMTP zu ihrem Postfix auf. Um sicher zu gehen, dass der Benutzer eine Email über deinen Mailserver senden darf, muss man sich mit Benutzername und Kennwort authentifizieren. Die Anmeldedaten werden verschlüsselt zum Server gesendet.

  2. Bevor die Email angenommen wird, prüft Postfix, ob du dich korrekt Authentifiziert hast. In unseren Setup fragt Postfix den Dienst Dovecot ob alles passt. Dovecot weiß schon wie mit der Authentifizierung umzugehen ist. Zwar könnte man Postfix so konfigurieren das dieser direkt eine SQL Abfrage macht, aber Postfix kann dies nur begrenzt und ist komplizierter.
  3. Dovecot sendet die Postfix-Anfrage an einer SQL-DB nach, um zu überprüfen, ob Benutzername und Kennwort-Hash korrekt sind, teilt das Ergebnis schlussendlich Postfix wieder mit.
  4. Postfix ist sich jetzt sicher, das der Benutzer Emails versenden darf und nimmt die Mail an und legt diese in seiner Queue. Jetzt fragt Postfix den nahegelegenden DNS-Server ab, um den Zielserver zu ermitteln. Da der Empfänger eine @beispiel.org Adresse hat, wird der MX-Eintrag von beispiel.org überprüft und erhält danach die entsprechende IP-Adresse.
  5. Jetzt, wo Postfix weiß an welchem Server die Email weitergeleitet werden soll, öffnet er eine SMTP-Verbindung zu diesem Server und liefert die Email aus.

 

Noch keine Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA