Postfix-Smtp-Server auf Ubuntu/Debian einrichten
Sie haben Ihren eigenen Domainnamen und Ihren eigenen vps/dedizierten Server und möchten den Domainnamen für E-Mails verwenden. Sie müssen also einen Mailserver mit einem SMTP-Server und einem Imap/Pop-Server einrichten.
Dieses Tutorial zeigt Ihnen, wie Sie Postfix (smtp-Server) und Dovecot (imap/pop-Server) einrichten. Die Aufgabe des SMTP-Servers besteht darin, eingehende E-Mails anzunehmen und ausgehende E-Mails von autorisierten Benutzern auf dem System weiterzuleiten.
Hingegen erlaubt Dovecot autorisierten Benutzern, auf ihren Posteingang zuzugreifen und alle dort vorhandenen E-Mails zu lesen.
Die einfache Konfiguration - das machen wir nicht
Geben Sie in der einfachsten Art der Konfiguration für Postfix einfach Ihren Domänennamen "xyz.com" im Konfigurationsparameter "mydestination" an, dann können Sie E-Mails für [email protected] empfangen, wenn es einen (Linux-)Benutzer namens silver gibt auf dem System.
Diese Technik ist einfach, aber mit schwerwiegenden Nachteilen. Zunächst müssen Sie für jede neue E-Mail-Adresse, die wir benötigen, ein neues Unix-Benutzerkonto erstellen.
Zweitens müssen sich die Benutzer mit ihren Systemkennwörtern anmelden. Dies ist also keine sehr flexible Strategie zum Einrichten von E-Mail-Konten.
Separat können Sie Dovecot so konfigurieren, dass eingehende Mails aus dem Verzeichnis gelesen werden, in dem Postfix sie speichert (standardmäßig /var/mail). Es gibt einen Artikel auf DigitalOcean, der zeigt, wie man Postfix mit Dovecot so einrichtet.
Wir werden die Dinge so einrichten, dass Sie schnell E-Mail-Adressen erstellen können, indem Sie sie einfach zusammen mit dem Passwort in eine Datei schreiben.
Wir werden so viele Domänen hinzufügen, wie wir möchten, und so viele E-Mails erstellen, und alles wird verschlüsselt und authentifiziert.
Since the email accounts we shall be creating are not related to any system users or system domains, they are called "virtual users" and "virtual domains". Virtual means, that not related to any system specific thing.
Wie wird es funktionieren? - Der Fachjargon
1. Alle an Ihren Server gerichteten eingehenden E-Mails werden von Postfix (SMTP) empfangen und dann an Dovecot (LMTP) zur Speicherung im Posteingang übergeben.
Dies ist besser, da der eingebaute lmtp-Dienst von dovecot mehr Funktionen wie Kontingente, Berechtigungen, flexible Verzeichnisstrukturen für Postfächer usw. bietet.
Incoming mail (From somewhere) -> Postfix (SMTP) -> Dovecot (LMTP) -> MailBox/Inbox
And due to this Postfix is reduced to just a "tranmission agent" that just moves mails in and out, and nothing else.
2. Alle ausgehenden Mails werden per Postfix versendet. Aber nur von authentifizierten Konten.
Outgoing mail (Thunderbird) -> Postfix (SMTP) -> Destination (SMTP) like gmail
3. Dovecot stellt IMAP/POP-Dienste bereit, damit E-Mail-Clients den Posteingang lesen können.
Thunderbird <==> Dovecot (IMAP) <==> Inbox
4. Dovecot stellt Postfix ausschließlich einen Authentifizierungsmechanismus über SASL zur Verfügung.
Die E-Mail-Konten - Benutzername + Passwörter werden in einer Datei gespeichert.
Wenn Sie Domänen und E-Mail-Konten in einer Datenbank (anstelle einer Datei) einrichten möchten, folgen Sie diesem Tutorial auf linode.com
MX-Einträge für Domain einrichten
Bevor Sie fortfahren, vergewissern Sie sich, dass die MX-Einträge für Ihre Domains, die Sie mit Ihrem Mailserver verwenden möchten, richtig eingestellt sind. Die meisten Serveranbieter wie Linode bieten eine einfache Schnittstelle zum Einrichten von Zoneneinträgen für mx-Einträge.
Wenn Ihre Domain example.com ist, könnte Ihr mx beispielsweise mail.example.com sein. Verwenden Sie den dig-Befehl, um -
zu überprüfen# Find the MX (mail exchange) server $ dig MX amazon.com +short 5 amazon-smtp.amazon.com. # Find the ip address of the mx server $ dig amazon-smtp.amazon.com +short 207.171.184.25
Stellen Sie sicher, dass die IP-Adresse Ihres MX (Mail-Server) zu dem Server gehört, auf dem Sie Postfix und Dovecot einrichten werden.
Postfix-Mailserverkonfiguration in Ubuntu Schritt für Schritt
Als erstes muss Postfix eingerichtet werden. Vergessen Sie nicht, dass Postfix in unserem Setup alle ausgehenden Mails überträgt, aber alle eingehenden Mails zur Speicherung und zum späteren Zugriff durch E-Mail-Clients an Dovecot übergibt.
Was Sie zuerst wissen sollten
1. Postfix protokolliert alle seine Aktionen in einer Datei namens /var/log/mail.log. Überprüfen Sie es auf nützliche Informationen und sparen Sie Zeit bei der Diagnose von Problemen.
2. Der Befehl postconf ist das Werkzeug, um einen Blick in die Konfigurationen von Postfix zu werfen. Es listet alles zeilenweise in einem Name=Wert-Format auf. Verwenden Sie also den grep-Befehl, um alles zu finden, was Sie brauchen.
3. Alle Postfix-Konfigurationsparameter liegen in der Datei /etc/postfix/main.cf
Die Parameter werden in Manpages erklärt, die unter - "man 5 postconf" zu finden sind
Postfix installieren und konfigurieren
Okay, wenn Sie es noch nicht getan haben, installieren Sie Postfix. Es ist direkt in den Repositories, also sollten Sie nicht woanders suchen, es sei denn, Sie wollen etwas Neueres.
$ sudo aptitude install postfix
Keine Sorge, der Rest wird nicht so einfach. Nach der Installation von Postfix möchten Sie vielleicht die Version überprüfen. Hier ist der Befehl dazu.
$ postconf mail_version mail_version = 2.10.2 $ postconf | grep mail_version mail_version = 2.10.2
main.cf konfigurieren
In diesem Abschnitt werden wir verschiedene Dinge in der Postfix-Hauptkonfigurationsdatei unter /etc/postfix/main.cf konfigurieren .
Dazu gehören Hostnamen, Parameter für die SASL-Authentifizierung, Unix-Sockets für dovecot lmtp und den dovecot sasl-Authentifizierungsdienst und eine Liste unserer virtual_mailbox_domains, für die Postfix für den Empfang eingehender E-Mails verantwortlich ist.
Die kniffligen Parameter !!!
Die folgenden Parameter sind die 3 äußerst verwirrenden Parameter, die Sie verstehen und richtig konfigurieren müssen, um unerwartete Probleme zu vermeiden.
myhostname mydomain myorigin
Sie könnten mehrere Domains auf Ihrem Server hosten, sagen wir abc.com + efg.com + xyz.com. Sie müssen eine davon als primäre Domain verwenden und diese für "myorigin" verwenden. Das myorigin-Feld ist dasjenige, das automatisch konfiguriert wird, während Postfix installiert wird und Sie nach der Domain des Servers fragt.
Standardmäßig ist myorigin so konfiguriert, dass es auf /etc/mailname zeigt, sodass Sie entweder Ihre Standarddomäne in /etc/mailname eingeben oder direkt in der Konfigurationsdatei angeben können.
The domain specified with myorigin is used for mails generated by Postfix. For example when it fails to deliver a mail, it would reply with a from address of "Mail Delivery System<[email protected]>".
Der myhostname-Parameter soll Ihren "Mailservernamen" enthalten, wie er von Ihrem mx-Eintrag angegeben wird. Dies ist der Name, den Postfix in der SMTP-Kommunikation verwendet, um sich selbst zu identifizieren. Zum Beispiel "HELO myhostname".
If you set myhostname to a certain domain, then you should be able to setup the SPF records for that domain later. This is dictated by the SPF specifications.
Sie können myhostname genauso gut auf "localhost" belassen und die Dinge würden immer noch gut funktionieren. In diesem Fall würde Ihr Server jedoch eine Nachricht wie "HELO localhost" verwenden, wenn er sich mit anderen Mailservern wie Google Mail verbindet, und Google Mail würde die E-Mail wütend zurückweisen und als "unerbeten" bezeichnen.
Daher wird empfohlen, myhostname auf einen richtigen Domänennamen mit gültigen A- und TXT (SPF)-Einträgen zu konfigurieren. Stellen Sie außerdem sicher, dass myorigin eingestellt ist.
Beispielkonfiguration -
myhostname = mail.yoursite.com myorigin = yoursite.com
Technisch gesehen können Sie auf einem einzelnen Server denselben Wert von myorigin für myhostname verwenden. In unterschiedlichen Konfigurationen mit mehreren separaten Servern müssen die Werte dieser Felder jedoch sorgfältiger eingerichtet werden.
Um mehr zu erfahren, lesen Sie den Postfix Basic Configuration Guide.
Der Parameter virtual_transport weist postfix an, die Mails für die Domains, die in "virtual_mailbox_domains" aufgeführt sind, an dovecot weiterzuleiten/zu transportieren.
Der Pfad „private/dovecot-lmtp“ ist relativ zu „/var/spool/postfix/“. Der tatsächliche Unix-Socket wird später im Dovecot-Konfigurationsabschnitt konfiguriert.
Hier stellen wir die Parameter ein, um die SASL-basierte Authentifizierung für Postfix einzurichten. Postfix ist intern in der Lage, über einen Unix-Socket mit "Dovecots SASL-Dienst" zu kommunizieren.
Um zu überprüfen, welche verschiedenen smtpd_sasl_type-Plugins Ihre Installation von Postfix unterstützt, führen Sie den folgenden Befehl aus.
Hier legen wir fest, für welche Domains Postfix eingehende Mails „annehmen“ soll. Geben Sie also hier alle Ihre Inhouse-Domains an. Wir werden die Domains in einer Datei namens virtual_mailbox_domains.
Geben Sie die Domains hintereinander ein
Führen Sie dann postmap für die Datei aus. Es wird eine Datei namens virtual_mailbox_domains.db erstellt, die von Postfix verwendet wird
Die Tabelle virtual_mailbox_maps kann verwendet werden, um gültige E-Mail-Adressen für die in virtual_mailbox_domains aufgelisteten Domänen anzugeben.
Zusätzlich zum SMTP-Dienst auf Port 25 müssen wir weitere Dienste aktivieren. SMTPS arbeitet auf Port 465 und MSA (Mail Submission Agent) auf Port 587. SMTP verwendet den Authentifizierungstyp SSL/TLS und MSA verwendet STARTTLS.
Suchen Sie den Abschnitt zu „submission“ und „smtps“ in der Datei namens /etc/postfix/master.cf und kommentieren Sie die ersten Zeilen aus. JA NUR DIE ERSTE ZEILE
Die Zeile „submission“ aktiviert den MSA-Dienst auf Port 587 und „smtps“ startet den SSL-aktivierten SMTP-Dienst auf Port 465.
Möglicherweise möchten Sie nur den Übermittlungsdienst aktivieren, da SMTPS jetzt veraltet ist und nur aus Gründen der Kompatibilität mit Microsoft-Anwendungen gepflegt wird, die STARTTLS nicht unterstützen.
Port 25 – ist für MTA (Mail Transmission Agent). Der MTA-Dienst ermöglicht es anderen MTAs und MSAs, sich mit E-Mails zu verbinden und diese zuzustellen.
Port 465/587 – ist für MSA (Mail Submission Agent). Der MSA-Dienst ist für MUAs (Mail User Agents wie Thunderbird) gedacht, um E-Mails für die Zustellung zu verbinden und zu hinterlegen.
Wir sind mit der Konfiguration von Postfix fertig. Jetzt einfach neu starten.
Wir sind mit der Installation und Konfiguration von Postfix fertig. Übrig bleibt Dovecot, der IMAP/POP-Server. Aber Dovecot tut viel mehr als das, wie wir gleich sehen werden.
1. Dovecot erhält einen Speicherort für die von Postfix übergebenen eingehenden Mails.
2. Ein separates Systembenutzerkonto muss erstellt und dovecot übergeben werden, damit dovecot das Mailspeicherverzeichnis lesen/schreiben kann. In unserem Beispiel heißt der Benutzer "vmail".
3. Dovecot hostet sichere IMAP- und POP-Dienste, damit E-Mail-Clients den Posteingang lesen können.
4. Dovecot stellt Postfix den SASL-Authentifizierungsdienst über einen Unix-Socket zur Verfügung. Derselbe Benutzername/dasselbe Passwort funktioniert sowohl mit Postfix (SMTP-Server) als auch mit Dovecot (IMAP/POP-Server)
5. Wir werden die vollständige E-Mail-Adresse ([email protected]) als Benutzernamen verwenden und auch ein verschlüsseltes Passwort festlegen.
Installieren Sie zuerst dovecot und einige notwendige Pakete. Installieren Sie das Kernpaket von dovecot und Pakete für die Unterstützung von imap, pop und lmtp.
Version prüfen
Jetzt ist es an der Zeit, Dovecot so zu konfigurieren, dass Benutzerkonten und SASL-Sockets eingerichtet werden, damit Postfix Authentifizierungen durchführen kann. Alle Konfigurationsdateien liegen in /etc/dovecot/conf.d/ Verzeichnis.
Überprüfen Sie die /etc/dovecot/dovecot.conf Datei und stellen Sie sicher, dass die Protokolldatei enthalten ist. Es enthält die Konfigurationsdateien für verschiedene Protokolle, die diese aktivieren.
Installierte Protokolle können wie folgt aufgelistet werden
Wir weisen dovecot an, E-Mails im Verzeichnis /var/mail/vhosts zu speichern und sie weiter in Unterverzeichnisse für jede Domain und den Benutzer unter dieser Domain zu legen.
Bearbeiten Sie die Datei 10-mail.conf
Erstellen Sie das Verzeichnis /var/mail/vhosts
Erstellen Sie nun innerhalb dieses Verzeichnisses ein Verzeichnis für jede Domain, auf der Sie E-Mails auf diesem Server empfangen möchten.
Erstellen Sie nun einen Benutzer mit dem Namen und der Gruppe vmail und der UID und GID von 5000. Obwohl die UID eine beliebige Zahl sein kann, wählen wir 5000, um anzuzeigen, dass es sich nicht um einen gewöhnlichen Benutzer handelt. Die Option "-r" gibt weiter an, dass dieser Benutzer ein Benutzer auf Systemebene ist und keine Anmeldung hat.
Geben Sie vmail volle Rechte zum Lesen/Schreiben auf /var/mail/vhosts
Sagen Sie dovecot jetzt, dass es die imaps- und pops-Dienste starten soll. Bearbeiten Sie die Datei 10-master.conf und aktivieren Sie die Ports für die Dienste und geben Sie ssl auf yes an.
Lassen Sie die Ports für imap und pop kommentiert, da wir keine unsicheren Dienste hosten möchten.
Für IMAPS - Sicheres IMAP
Für POP3S - Sicheres POP3
Die Dovecot-Wiki-Seite zu LMTP zeigt ein einfaches Beispiel für die Einrichtung des lmtp-Sockets in /etc/dovecot/conf.d/10-master.conf Datei.
Suchen Sie den Abschnitt mit dem Namen "service lmtp" und geben Sie den Pfad zu der Datei ein, in der der Unix-Socket erstellt werden soll. Derselbe Pfad wird von Postfix für die Einstellung "virtual_transport" verwendet.
Der Socket muss die Privilegien user:group postfix haben, damit der Postfix-Prozess ihn verwenden kann.
Suchen Sie den Abschnitt „Service Auth“ und fügen Sie darin Folgendes hinzu. Wenn es bereits vorhanden ist, ändern Sie es einfach.
Öffnen Sie die Datei conf.d/10-auth.conf und kommentieren Sie die Zeile disable_plaintext_auth aus und stellen Sie sicher, dass sie auf yes gesetzt ist. Dadurch wird sichergestellt, dass die TLS/SSL-Verschlüsselung immer für Authentifizierungszwecke verwendet wird.
Suchen Sie die Einstellung mit dem Namen auth_mechanism und kommentieren Sie sie aus. Diese Einstellung gibt das Format an, in dem das Passwort an dovecot übergeben wird.
Authentifizierungsdateien angeben
Das letzte, was in der Datei 10-auth.conf konfiguriert werden muss, ist die Passwortdatenbank. Standardmäßig ist dovecot so konfiguriert, dass es sich mit "Systembenutzern" (Linux-Benutzer aus /etc/passwd) authentifiziert.
Wir werden ihm mitteilen, dass er sich mit einer separaten Datei authentifizieren soll, die die Benutzernamen und Passwörter enthält
Suchen und kommentieren Sie die Zeile auth-system.conf.ext aus und kommentieren Sie die Zeile auth-passwdfile aus. Es sollte in etwa so aussehen
Als nächstes bearbeiten Sie die Datei auth-passwdfile.conf.ext
Lass es ungefähr so aussehen.
Der passdb-Abschnitt teilt dovecot mit, wo nach dem Benutzernamen und den Passwörtern gesucht werden muss, um sich zu authentifizieren. Die Datei ist /etc/dovecot/dovecot-users.
Das username_format "%u" gibt an, dass die gesamte E-Mail-Adresse als Benutzername verwendet wird. Das bedeutet, dass Sie bei der Anmeldung von einem E-Mail-Client die E-Mail-Adresse als Benutzernamen sowohl für smtp als auch für imap/pop verwenden würden.
Der Benutzername und die Passwörter werden in einer Datei namens /etc/dovecot/dovecot-users gespeichert, die wir im nächsten Schritt erstellen werden
Der Abschnitt userdb teilt dovecot mit, wo die Mails für einen bestimmten Benutzer gelesen/geschrieben werden sollen. Wir verwenden eine feste Verzeichnisstruktur /var/mail/vhosts/%d/%n
Mails für den Benutzer [email protected] würden also aus dem folgenden Verzeichnis gelesen -
Erstellen Sie eine einfache Textdatei in /etc/dovecot/ und füllen Sie sie mit Benutzernamen und Passwörtern im Format user:password. Hier ist ein Beispiel
Generieren Sie Passwörter mit dem doveadm-Befehl wie folgt. Der vom obigen Befehl zurückgegebene Passwort-Hash sollte unverändert in die dovecot-users-Datei kopiert werden.
Die Kennwortdatei kann auch Informationen über das Postfachverzeichnis und die Berechtigungen einzelner Benutzer enthalten. Überprüfen Sie den Wiki-Artikel zum passwdfile-Format.
Öffnen Sie die Datei /etc/dovecot/conf.d/10-ssl.conf und kommentieren Sie die SSL-Zeile aus und setzen Sie sie auf erforderlich
Stellen Sie außerdem sicher, dass ssl_cert und ssl_key auf die richtigen Dateien verweisen (dies ist standardmäßig der Fall)
Logrotate einrichten
Wenn wir die Protokolldateien von Dovecot ändern, ist es notwendig, logrotate zu konfigurieren, um sicherzustellen, dass Protokolldateien in Teilen anstatt einer großen Datei erstellt werden.
Und füllen Sie Folgendes aus
Weitere Informationen finden Sie auf der Dovecot-Wiki-Seite zur Protokollierung.
Gute Arbeit. Alle Konfigurationen erledigt. Starten Sie jetzt dovecot neu
Jetzt, wo Sie alles konfiguriert haben, ist es an der Zeit zu testen. Verwenden Sie einen E-Mail-Client wie Thunderbird und konfigurieren Sie SMTP- und IMAP-Verbindungen.
Versuchen Sie dann, eine E-Mail an ein anderes Konto wie Google Mail zu senden. Wenn Sie die E-Mail auf Google Mail erhalten, versuchen Sie, darauf zu antworten. Wenn die E-Mail in Ihrem E-Mail-Client angezeigt wird, sind Sie fertig. Herzlichen Glückwunsch!
Überprüfe offene Ports mit netstat
Verwenden Sie den netstat-Befehl, um zu prüfen, ob die Dienste aktiv sind
In der obigen Ausgabe können wir sehen, dass dovecot die Ports 993, 995, 110 und 143 hält
1. mail.log leer
Auf Ubuntu-Servern ist die Datei /var/log/mail.log möglicherweise völlig leer. Dies geschieht aufgrund von Berechtigungsproblemen und kann mit den folgenden Befehlen behoben werden
Der korrekte Eigentümer der Datei sollte syslog sein. Legen Sie die richtige Besitzberechtigung mit den folgenden Befehlen fest -
Jetzt sollte die mail.log-Datei mit den richtigen Nachrichten gefüllt sein, um zu verfolgen, was mit dem Postfix-Server vor sich geht.
2. Relay-Zugriff verweigert
Wenn beim Versenden von Mails das Postfix-Log (/var/log/mail.log) eine solche Fehlermeldung anzeigt -
Stellen Sie sicher, dass im Feld smtpd_relay_restrictions (/etc/postfix/main.cf) "permit_sasl_authenticated" aufgeführt ist, damit über SASL authentifizierte Benutzer E-Mails mit Postfix als SMTP-Server senden können.
3. Fehler beim Empfangen von E-Mails
Wenn die Dovecot-Logs beim Empfangen von Mails eine solche Fehlermeldung anzeigen -
Bearbeiten Sie einfach /etc/dovecot/conf.d/15-lda.conf und fügen Sie einen Wert für postmaster_address
Versuchen Sie, eine E-Mail an eine Google Mail-Adresse über einen E-Mail-Client wie Thunderbird und über den Postfix-SMTP-Server zu senden, und die E-Mail landet im Spam-Ordner von Google Mail oder wird möglicherweise vollständig abgelehnt.
Um dies zu lösen, müssen die SPF-Einträge für die Absenderdomäne eingerichtet werden. Wenn der Postfix-Server E-Mails mit der "Von-Adresse" von [email protected] versendet, dann müssen die TXT-DNS-Einträge von example.com die SPF-Validierungsinformationen enthalten, um dies anzuzeigen dies Server berechtigt ist, E-Mails im Auftrag von example.com zu versenden
Sie müssen lediglich die Zoneneinträge Ihres Nameservers bearbeiten und einen TXT-Eintrag hinzufügen, der Folgendes enthält
Die meisten vps-Anbieter wie Linode bieten eine übersichtliche Oberfläche, um solche DNS-Einstellungen zu bearbeiten. Besuchen Sie die Website des OpenSPF-Projekts, um mehr darüber zu erfahren.
Überprüfen Sie die SPF-Einträge Ihrer Domain mit diesem einfachen Befehl -
Das obige Beispiel verwendet eine Datei zum Speichern von E-Mail-Konten und Kennwörtern. Dies ist praktisch, wenn Sie nur wenige E-Mail-Konten auf Ihrem persönlichen Server benötigen und diese nicht zu oft ändern werden.
Wenn jedoch in großem Umfang E-Mails an eine große Anzahl von Benutzern bereitgestellt und häufig Konten erstellt/gelöscht werden, empfiehlt es sich, virtual_mailbox_domains und virtual_mailbox_maps in einer Datenbank zu speichern und dann einen Datenbankclient zu verwenden, um Datensätze schnell und einfach zu ändern.
Sowohl Postfix als auch Dovecot unterstützen Mysql/MariaDB.
In den Ressourcen unten finden Sie Links zu nützlichen Artikeln darüber, wie Sie Postfix und Dovecot auf andere Weise mithilfe einer Datenbank konfigurieren können.
1. Sie können einen webbasierten E-Mail-Client wie Roundcube installieren, um sich über den Browser bei Ihrem Server anzumelden und E-Mails zu lesen/zu senden.
2. Einige Benutzer (wie ich natürlich) ziehen es vor, Gmail von Google als E-Mail-Client zu verwenden, indem sie SMTP- und POP-Kontoinformationen hinzufügen. Google würde Ihnen schnell erlauben, E-Mails mit diesem brandneuen SMTP-Server-Setup oben zu senden.
Gmail würde jedoch keine Mails vom oben erstellten IMAP/POP-Server lesen, bis wir ein echtes Zertifikat von einer Zertifizierungsstelle (CA) in Dovecot verwenden.
SSL-Zertifikate von CAs kosten Geld, aber Sie können ein kostenloses Zertifikat von StartCom StartSSL PKI erhalten und es mit Dovecot verwenden, und dann würde Google Mail Ihnen erlauben, Mails von diesem Server zu lesen.
3. Außerdem sollten Sie DKIM (Domainkeys Identified Mail) für Ihre Domain einrichten, um die Authentizität der E-Mails zu erzwingen und von großen E-Mail-Diensten wie Google Mail als legitim behandelt zu werden.
Hier sind einige weitere nützliche Ressourcen zum Einrichten und Konfigurieren von Postfix und Dovecot auf verschiedene Arten, um genau die Art von Mailserver zu erhalten, die Sie möchten.
Linode-Tutorial zum Einrichten von Postfix und Dovecot mit Mysql
Dokumentation der Postfix-Konfigurationsparameter zur Verwendung in main.cf
Erläuterung der verschiedenen Arten von Domains, die Postfix unterstützt und verwendet
Einzelheiten darüber, wie Postfix mit verschiedenen Arten von virtuellen Domains umgeht
Vollständige Postfix-Dokumentation# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp
Konfigurieren Sie SASL in main.cf
#Enabling SMTP for authenticated users, and handing off authentication to Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes
übergeben # postconf -a
cyrus
dovecot
Postfachdomänen in main.cf hinzufügen
#Virtual domains, users, and aliases
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
# virtual_mailbox_maps = /etc/postfix/virtual_mailbox_maps
# nano /etc/postfix/virtual_mailbox_domains
example.com OK
mysite.com OK
# postmap /etc/postfix/virtual_mailbox_domains
However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.
SMPS und MSA aktivieren - master.cf
...
submission inet n - - - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
...
Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.
Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox
Postfix neu starten
$ sudo service postfix restart
Dovecot installieren und konfigurieren
Wissenswertes
Dovecot installieren
# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
# dovecot --version
2.1.7
Dovecot konfigurieren
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# ls -l /usr/share/dovecot/protocols.d
total 12
-rw-r--r-- 1 root root 28 Nov 30 15:44 imapd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 lmtpd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 pop3d.protocol
#
Posteingang konfigurieren - 10-mail.conf
Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n
# mkdir /var/mail/vhosts/
# mkdir /var/mail/vhosts/example.com
Erstellen Sie einen Benutzer zum Lesen der Mails
$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
$ chown -R vmail:vmail /var/mail/vhosts/
IMAPS- und POP3S-Dienste aktivieren - 10-master.conf
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
lmtp-Socket konfigurieren - 10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
.....
SASL-Authentifizierungs-Socket konfigurieren
service auth {
.....
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user=postfix
group=postfix
}
.....
Authentifizierung konfigurieren
disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
# args = username_format=%u /etc/dovecot/dovecot-users
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
# Default fields that can be overridden by passwd-file
#default_fields = quota_rule=*:storage=1G
# Override fields from passwd-file
#override_fields = home=/home/virtual/%u
}
/var/mail/vhosts/example.com/someone/
Benutzer-Mailbox oder -Konten erstellen
# cat dovecot-users
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#
Aktiviere SSL in dovecot - 10-ssl.conf
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
[/pre]
If you have your own certificates from a certificate authority then use them here.
<h3>Setup dovecot log files</h3>
Dovecot by default logs to /var/log/syslog which is already a giant warehouse of logs and would make it difficult to search in there. A neater way is to make dovecot log to a separate file that is easier to track. The configuration lies in the file /etc/dovecot/conf.d/10-logging.conf
Open the file and edit the log_path variable and set it to /var/log/dovecot.log
Also note that info_log_path and debug_log_path would use the same to log information and debugging messages respectively. If you want to separate them further then set a log file for each.
[pre]
# Log file to use for error messages. "syslog" logs to syslog,
# /dev/stderr logs to stderr.
log_path = /var/log/dovecot.log
# Log file to use for informational messages. Defaults to log_path.
#info_log_path =
# Log file to use for debug messages. Defaults to info_log_path.
#debug_log_path =
$ nano /etc/logrotate.d/dovecot
/var/log/dovecot*.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
doveadm log reopen
endscript
}
Starten Sie Dovecot neu
$ sudo service dovecot restart
Test
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3315/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3337/nginx
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3252/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16218/master
Während Postfix (Master) die Ports 587, 465 und 25 hältFehlerbehebung
# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26 2013 /var/log/mail.log
$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log
Dec 1 09:57:12 li240-5 postfix/smtpd[25795]: NOQUEUE: reject: RCPT from unknown[122.163.8.12]: 454 4.7.1 <...>: Relay access denied; from=<...> to=<...> proto=ESMTP helo=<[192.168.1.2]>
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given
# Address to use when sending rejection mails.
# Default is [email protected]<your domain>. %d expands to recipient domain.
postmaster_address = [email protected]
erweitert Erstellen Sie SPF-DNS-Einträge, um die Validierung zu aktivieren und Spam zu vermeiden
"v=spf1 mx a -all"
$ dig -t TXT example.com
Notizen
Wie weiter
Ressourcen
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
http://www.postfix.org/postconf.5.html
https://workaround.org/ispmail/squeeze/postfix-domain-types
http://www.postfix.org/VIRTUAL_README.html
http://www.postfix.org/documentation.html