Nein, es ist nicht erforderlich, einen DNS-Cache auf dem Server einzurichten. Der Server sollte einen Cache-DNS-Resolver verwenden, der sich in der Nähe befindet. Die meisten Hosting-Unternehmen führen jedoch bereits eigene Resolver für das gesamte Rechenzentrum aus und konfigurieren die Server so, dass sie diese standardmäßig verwenden.
Standardmäßig verwenden sowohl Postfix als auch Dovecot für alles lokale Konten. Wenn Sie ein Linux-Konto mit dem Namen haben diti
, können Sie sich mit diesem bei Dovecot anmelden und Postfix so einrichten, dass SMTP-Anmeldungen gegen Dovecot validiert werden .
Wenn Sie keine Probleme damit haben, dass alle E-Mails an dasselbe Konto gesendet werden, können Sie einfache Aliase (wie in, /etc/aliases
) einrichten , um E-Mails für kra@
oder postmaster@
an das diti
Konto umzuleiten .
Alle diese subjectAltNames sind nicht erforderlich. Die einzigen, die Sie benötigen, sind Domainnamen, die Sie tatsächlich verwenden werden , z . B. mail.diti.me
oder glaux.diti.me
. Ich bin nicht sicher, ob Sie die Domain selbst (dh diti.me
) einschließen müssen .
Im Folgenden wird davon ausgegangen, dass in der Domäne bereits MX-Einträge konfiguriert sind, die auf diesen Server verweisen. Ich versuche im Allgemeinen, meine Konfiguration einigermaßen klar zu halten, da ich mich einige Monate später immer wieder frage, "wozu zum Teufel das ist".
1. Installieren Sie zuerst die Pakete postfix
und dovecot-imapd
. Wenn Sie zur Postfix-Konfiguration aufgefordert werden, wählen Sie die Option "Internet Site" und geben Sie diti.me
den E-Mail-Namen ein. Zu diesem Zeitpunkt können Sie bereits E-Mails senden und empfangen diti@diti.me
und möglicherweise sogar eine Verbindung zu IMAP herstellen.
Es verfügt jedoch noch nicht über SSL und ermöglicht weder das Senden von E-Mails über SMTP von außen noch das Speichern von E-Mails an einem vernünftigen Ort (die Standardeinstellung ist eine Mbox-Datei in /var/mail
, die unzuverlässig ist und insbesondere mit IMAP eine schlechte Leistung erbringt).
2. Wenn Sie bereits ein SSL-Zertifikat haben, geben Sie es /etc/ssl/private/diti.me.pem
und den privaten Schlüssel ein /etc/ssl/private/diti.me.key
. Der genaue Ort spielt eigentlich keine Rolle, aber /etc/ssl/private
dort werden sie von Debian aufbewahrt.
Stellen Sie sicher, dass beide Dateien Eigentum der ssl-cert
Gruppe sind und von dieser gelesen werden können, damit Postfix und Dovecot darauf zugreifen können. Fügen Sie dieser Gruppe auch die Konten beider Dämonen hinzu, indem Sie verwenden gpasswd -a
.
3. Debians automatisch generiertes Postfix main.cf
ist ebenfalls ein bisschen chaotisch, deshalb werde ich nur eine aufgeräumte Minimalversion veröffentlichen:
# Serverinformation
mydomain = diti.me
Myorigin = $ mydomain
# Verschiedene andere Parameter verwenden diese beiden Variablen als Standardwerte.
# SMTP-Dienst
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/ssl/private/diti.me-mail.pem
smtpd_tls_key_file = /etc/ssl/private/diti.me-mail.key
# Dadurch kann STARTTLS für alle eingehenden SMTP-Verbindungen verwendet werden.
# Beachten Sie, dass `postfix` zur Gruppe` ssl-cert` hinzugefügt werden muss, damit dies möglich ist
# um auf Dateien in / etc / ssl / private zuzugreifen.
# Richtlinien
mynetworks = [:: 1] / 128, 127.0.0.0/8, [::ffff:127.0.0.0‹/104
# Dies listet die IP-Adressen auf, die als "vertrauenswürdig" gelten und verwendet werden können
# diesen Server, um E-Mails nach außen zu senden (dh an andere Domains). Durch
# Standardmäßig ist nur "localhost" zulässig. Von allen anderen nur Mail an
# Domains in $ mydestination werden akzeptiert.
mydestination = $ mydomain, localhost
# Liste der Domänen, für die E-Mails von einer beliebigen IP-Adresse akzeptiert werden sollen.
# Lieferung
alias_maps = hash: / etc / alias
# Dadurch werden systemweite Aliase beibehalten. Es ist gut, es explizit festzulegen, weil
# Der Standardwert enthält manchmal NIS, was keinen Sinn ergibt.
recipient_delimiter = +
# Weist postfix an, den lokalen Teil der Adressen beim ersten '+' aufzuteilen.
# Sogenannte "Plus-Adressierung": Mail an diti + foo @ wird zugestellt
# an die diti @ mailbox.
Für Dovecot verwendet Debian nur die Standard-Beispielkonfigurationen und sie sind mit jeder beschriebenen Option gut genug.
Wenn Sie die Konfiguration ändern, laden Sie die Daemons mit postfix reload
und / oder neu doveadm reload
.
4. Standardmäßig liefert Postfix E-Mails /var/mail/$USER
im Mbox- Format aus, das einfach genug ist (Sie können es problemlos mit einem Texteditor anzeigen), es treten jedoch viele Probleme auf, insbesondere bei IMAP, da die gesamte Datei jedes Mal neu geschrieben werden muss, wenn Sie eine E-Mail verschieben Nachricht oder markieren Sie eine als "gelesen" oder "ungelesen".
Ändern Sie beide Daemons, um Maildir zu verwenden. (Es gibt andere Formate, diese sind jedoch in der Regel spezifisch für den MTA- oder MDA- oder IMAP-Server oder was auch immer. Maildir wird weitgehend unterstützt.)
In /etc/postfix/main.cf
Fügen Sie die folgende auf die „Delivery“ Abschnitt:
home_mailbox = Mail /
Konfigurieren Sie Dovecot so, dass derselbe Pfad verwendet wird /etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir: ~ / Mail
5. Irgendwann müssen Sie Dovecot anweisen, auch SSL zu verwenden. Die entsprechenden Einstellungen sind in /etc/dovecot/conf.d/10-ssl.conf
. Tatsächlich verwendet das Debian-Paket für Dovecot bereits SSL, obwohl ein selbstsigniertes Zertifikat meistens unbrauchbar ist. Konfigurieren Sie es so, dass es Ihr eigenes Zertifikat verwendet:
ssl = ja
ssl_cert = </etc/ssl/private/diti.me-mail.pem
ssl_key = </etc/ssl/private/diti.me-mail.key
6. Jetzt können Sie E-Mails nach außen senden und empfangen. Es ist weiterhin erforderlich, Postfix so zu konfigurieren, dass Sie von außen senden können, indem Sie eine Verbindung mit Ihrem E-Mail-Client über SMTP herstellen.
Weisen Sie Postfix zunächst an, Dovecot zur Überprüfung der Anmeldungen zu verwenden. Die folgenden Anweisungen stammen größtenteils aus Dovecots Wiki .
Dovecot /etc/dovecot/conf.d/10-master.conf
muss einen Socket abhören, auf den Postfix zugreifen konnte. Die Standardkonfiguration enthält bereits ein auskommentiertes Beispiel:
Serviceauth {
...
unix_listener / var / spool / postfix / private / auth {
mode = 0660
Benutzer = Postfix
Gruppe = Postfix
}
...
}
Und Postfix muss es verwenden - /etc/postfix/main.cf
wieder:
# Authentifizierung
smtpd_sasl_type = Taubenschlag
smtpd_sasl_path = private / auth
# Der andere mögliche Typ ist "cyrus", für die Cyrus SASL "saslauthd"
# Daemon. Ich wähle hier Dovecot, da es gut als SASL-Server funktioniert, und
# Es ist einfacher, die Authentifizierung für beide Daemons durchführen zu lassen.
7. Beachten Sie, dass das oben Gesagte smtpd_sasl_auth_enable
nirgendwo eingestellt wurde. Die aktuelle Konvention ist nicht SMTP - Auth global zu aktivieren, aber / 25 zu halten tcp rein als „Server-zu-Server“ SMTP - Port. Währenddessen werden neue Nachrichten von Benutzern über SMTP auf tcp / 587, dem "Mail Submission" -Port, akzeptiert, für den eine Authentifizierung erforderlich ist. Einige ISPs blockieren TCP / 25 sogar wegen Spam, lassen TCP / 587 jedoch offen, da es normalerweise besser gesichert ist.
Aktivieren Sie den "Submission" /etc/postfix/master.cf
-Port mit SASL-Authentifizierung. Die Standardeinstellung enthält master.cf
bereits die erforderlichen Zeilen, die nur unkommentiert sein müssen, obwohl einige von ihnen weiterhin weggelassen werden sollten.
Einreichung inet n - - - - smtpd
-o Syslog-Name = Postfix / Submission
-o smtpd_tls_security_level = verschlüsseln
# Der "Submission" -Port erfordert TLS, anstatt ihn optional zu machen
-o smtpd_sasl_auth_enable = yes
# ... sowie Benutzern erlauben, sich einzuloggen.
# -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
# Diese vier Optionen können auskommentiert werden. Wenn aktiviert, würden sie
# Erwarten Sie, dass Sie benutzerdefinierte Einschränkungsregeln in 'main.cf' festlegen
# Standardeinstellungen sind in Ordnung.
-o smtpd_recipient_restrictions = permit_sasl_authenticated, ablehnen
# Die Standard-Empfängerbeschränkungen überprüfen die IP-Adresse und
# $ meinZiel. Lassen Sie für den Port "Submission" alles so lange zu
# Wenn der Benutzer angemeldet ist, lehnen Sie jedoch alle anonymen E-Mails ab.
-o milter_macro_daemon_name = URSPRUNG
# Wenn Sie sich später entscheiden, einen DKIM-Proxy oder einen solchen einzurichten, ist dies zulässig
# it, um vom Benutzer übermittelte E-Mails von empfangenen E-Mails zu unterscheiden.
# Es ist Teil der Standardkonfiguration, daher auch hier enthalten.
Wenn Sie einen Mail-Client haben, der einen alten "impliziten SSL" -Port (tcp / 465) benötigt, können Sie die smtps
Zeilen aus dem Kommentar entfernen. master.cf
Wenn Sie dies tun, behalten Sie die Einstellungen bei, die submission
denen des Ports ähneln .
8. Richten Sie schließlich Aliase für Ihr Konto ein, indem Sie sie bearbeiten /etc/aliases
. Der postmaster
Alias ist grundsätzlich erforderlich; Es ist die Anlaufstelle, wenn Probleme mit Ihrem Mailserver auftreten. Zeigen root
und andere ähnliche Aliase sind auch gut.
Das Grundformat ist in Aliases (5) dokumentiert:
postmaster: root
admin: root
root: diti
kra: diti
Verwenden Sie postalias
oder newaliases
, um die Hash-Datenbank /etc/aliases.db
jedes Mal zu aktualisieren, wenn Sie diese Datei bearbeiten.
Jetzt haben Sie noch ein Konto, diti
das für Postfix und Dovecot aufgerufen wird , aber die an gesendete E-Mail kra@...
wird ebenfalls dort weitergeleitet. Einige Mail-Clients (z. B. Thunderbird) unterstützen mehrere "Identitäten" oder "Personas" für einen einzelnen Mail-Server, sodass Sie zwischen verschiedenen "Von:" - Adressen wählen können.
Das ist alles. Möglicherweise werde ich später Anweisungen für procmail, virtuelle Domänen, SPF und / oder DKIM zurückgeben.