GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Postfix Mailserver und Dovecot auf Ubuntu oder Debian installieren

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.

Konfigurieren Sie den LMTP-Socket in main.cf

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.

# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp

Der Pfad „private/dovecot-lmtp“ ist relativ zu „/var/spool/postfix/“. Der tatsächliche Unix-Socket wird später im Dovecot-Konfigurationsabschnitt konfiguriert.

Konfigurieren Sie SASL in main.cf

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.

#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

Um zu überprüfen, welche verschiedenen smtpd_sasl_type-Plugins Ihre Installation von Postfix unterstützt, führen Sie den folgenden Befehl aus.

# postconf -a
cyrus
dovecot

Postfachdomänen in main.cf hinzufügen

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.

ablegen
#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

Geben Sie die Domains hintereinander ein

example.com OK
mysite.com OK

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

# postmap /etc/postfix/virtual_mailbox_domains

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.

However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.

SMPS und MSA aktivieren - master.cf

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

...
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
...

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.

Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.

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.

Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox

Postfix neu starten

Wir sind mit der Konfiguration von Postfix fertig. Jetzt einfach neu starten.

$ sudo service postfix restart

Dovecot installieren und konfigurieren

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.

Wissenswertes

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.

Dovecot installieren

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.

# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd

Version prüfen

# dovecot --version
2.1.7

Dovecot konfigurieren

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.

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

Installierte Protokolle können wie folgt aufgelistet werden

# 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

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.

Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/

Bearbeiten Sie die Datei 10-mail.conf

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n

Erstellen Sie das Verzeichnis /var/mail/vhosts

# mkdir /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.

# mkdir /var/mail/vhosts/example.com

Erstellen Sie einen Benutzer zum Lesen der Mails

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.

$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"

Geben Sie vmail volle Rechte zum Lesen/Schreiben auf /var/mail/vhosts

$ chown -R vmail:vmail /var/mail/vhosts/

IMAPS- und POP3S-Dienste aktivieren - 10-master.conf

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

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

Für POP3S - Sicheres POP3

service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

lmtp-Socket konfigurieren - 10-master.conf

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.

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
        user = postfix
        group = postfix

  }
.....

Der Socket muss die Privilegien user:group postfix haben, damit der Postfix-Prozess ihn verwenden kann.

SASL-Authentifizierungs-Socket konfigurieren

Suchen Sie den Abschnitt „Service Auth“ und fügen Sie darin Folgendes hinzu. Wenn es bereits vorhanden ist, ändern Sie es einfach.

service auth {
.....
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
user=postfix
group=postfix
  }
.....

Authentifizierung konfigurieren

Ö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.

disable_plaintext_auth = yes

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.

auth_mechanisms = plain login

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

#!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

Als nächstes bearbeiten Sie die Datei auth-passwdfile.conf.ext

/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext

Lass es ungefähr so ​​aussehen.

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
}

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 -

/var/mail/vhosts/example.com/someone/

Benutzer-Mailbox oder -Konten erstellen

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

# cat dovecot-users 
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1

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.

# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#

Die Kennwortdatei kann auch Informationen über das Postfachverzeichnis und die Berechtigungen einzelner Benutzer enthalten. Überprüfen Sie den Wiki-Artikel zum passwdfile-Format.

Aktiviere SSL in dovecot - 10-ssl.conf

Öffnen Sie die Datei /etc/dovecot/conf.d/10-ssl.conf und kommentieren Sie die SSL-Zeile aus und setzen Sie sie auf erforderlich

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required

Stellen Sie außerdem sicher, dass ssl_cert und ssl_key auf die richtigen Dateien verweisen (dies ist standardmäßig der Fall)

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
&#91;/pre&#93;

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 =

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.

$ nano /etc/logrotate.d/dovecot

Und füllen Sie Folgendes aus

/var/log/dovecot*.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    doveadm log reopen
  endscript
}

Weitere Informationen finden Sie auf der Dovecot-Wiki-Seite zur Protokollierung.

Starten Sie Dovecot neu

Gute Arbeit. Alle Konfigurationen erledigt. Starten Sie jetzt dovecot neu

$ sudo service dovecot restart

Test

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

# 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

In der obigen Ausgabe können wir sehen, dass dovecot die Ports 993, 995, 110 und 143 hält
Während Postfix (Master) die Ports 587, 465 und 25 hält

Fehlerbehebung

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

# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26  2013 /var/log/mail.log

Der korrekte Eigentümer der Datei sollte syslog sein. Legen Sie die richtige Besitzberechtigung mit den folgenden Befehlen fest -

$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log

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 -

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=<&#91;192.168.1.2&#93;>

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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

3. Fehler beim Empfangen von E-Mails

Wenn die Dovecot-Logs beim Empfangen von Mails eine solche Fehlermeldung anzeigen -

Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given

Bearbeiten Sie einfach /etc/dovecot/conf.d/15-lda.conf und fügen Sie einen Wert für postmaster_address

hinzu
# 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

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

"v=spf1 mx a -all"

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 -

$ dig -t TXT example.com

Notizen

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.

Wie weiter

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.

Ressourcen

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
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql

Dokumentation der Postfix-Konfigurationsparameter zur Verwendung in main.cf
http://www.postfix.org/postconf.5.html

Erläuterung der verschiedenen Arten von Domains, die Postfix unterstützt und verwendet
https://workaround.org/ispmail/squeeze/postfix-domain-types

Einzelheiten darüber, wie Postfix mit verschiedenen Arten von virtuellen Domains umgeht
http://www.postfix.org/VIRTUAL_README.html

Vollständige Postfix-Dokumentation
http://www.postfix.org/documentation.html


Debian
  1. Installieren und sichern Sie Redis Server unter Debian 10

  2. So installieren Sie Puppet 6.x auf Ubuntu 18.04 / Ubuntu 16.04 und Debian 9

  3. Installieren Sie Node.js in Ubuntu und Debian

  4. So installieren und konfigurieren Sie Postfix unter Ubuntu 20.04

  5. So installieren Sie Spamassassin mit Postfix und Dovecot auf Ubuntu/Debian Server

Installieren und konfigurieren Sie OpenLDAP unter Ubuntu 16.04 / Debian 8

So installieren und konfigurieren Sie Postfix unter Debian

So installieren Sie den Postfix-Mailserver unter Ubuntu 20.04

Installieren und konfigurieren Sie Virtualmin auf Ubuntu 20.04 / Debian 10 Server

Postfix-Mailserver-Setup unter Ubuntu 14.04

Postfix-Mailserver-Setup auf Ubuntu 20.04