Der einfachste Weg, einen sicheren IMAP-E-Mail-Server einzurichten?

Der einfachste Weg, einen sicheren IMAP-E-Mail-Server einzurichten?

Ich möchte Google als E-Mail-Anbieter loswerden und eine komplette E-Mail-Lösung auf meinem dedizierten Server einrichten. Das Problem: Ich möchte, dass die Einrichtung so einfach wie möglich ist, sodass es nicht mühsam ist, alles erneut einzurichten, wenn ein Problem auftritt.

Voraussetzungen

  • Nur ein Benutzerkonto auf dem Computer.
    • (Namen diti, Haupt-E-Mail [email protected], andere Aliase werden umgeleitet, aber ein E-Mail-Client kann die verschiedenen Aliase verwalten und entsprechend reagieren)
  • Verwendet vorzugsweise kein MySQL.
    • (im Falle der Datensicherung und -wiederherstellung sowie der Einfachheit halber ist es besser, wenn man MySQL nicht installieren und sichern muss, bevor man einen funktionsfähigen E-Mail-Server hat)
  • Der Zugriff auf E-Mails (IMAP und SMTP) ist von außen möglich.
  • SSL/TLS-Verschlüsselung für IMAP- und SMTP-Authentifizierung (ich verwendeCAcertZertifikate, ist das wichtig?).

Ich glaube, dass Einfachheit, IMAP/SMTP-Zugriff und sichere Authentifizierung die „grundlegenden“ Funktionen sind, die jeder haben möchte, der Google/was auch immer verlassen möchte. Wenn ich mich irre und es eine einfachere Lösung gibt (zum Beispiel eine ownCloud-ähnliche Lösung, bei der alles enthalten ist), würde ich mich freuen, davon zu hören.

Ich denke, die Kombination aus Postfix und Dovecot wäre die beste Lösung. Ich verwende übrigens Debian.

Die Informationen, die ich bisher gefunden habe

  • AFranzösischer Artikelbeschreibt insehrausführliche Informationen zum Einrichten einer vollständigen, sicheren E-Mail-Lösung. Es ist zeitaufwändig, schwieriger zu warten, schwieriger zu sichern und wiederherzustellen usw. Außerdem: Ist ein DNS-Cache erforderlich?
  • Das Gentoo-Wiki ( Complete_Virtual_Mail_Server/SSL_CertificatesSeite) erwähnt die Verwendung von CAcert-Zertifikaten, ist aber weder diesbezüglich klar (sind all diese SubjectAltNameSubdomains notwendig?), noch wird Postfix verwendet (ich habe gelesen, dass Courier schwieriger ist).
  • Verschiedene Tutorials zum Thema Self-Hosting, alle unterschiedlich, beschreiben selten, was sie tun undWarum(Die Einrichtung einer selbstgehosteten E-Mail mit Fernzugriff scheint kompliziert zu sein. Warum also einfach eine Liste von Befehlen ohne Erklärung für „Dummies“ bereitstellen?).

Ich hoffe, ich habe die richtigen Fragen gestellt und sie sind nicht zu dumm.

Antwort1

  • Nein, es ist nicht erforderlich, einen DNS-Cache auf dem Server einzurichten. Der ServersollenVerwenden Sie einen zwischenspeichernden DNS-Resolver, der sich irgendwo in der Nähe befindet. Die meisten Hosting-Unternehmen betreiben jedoch bereits ihre eigenen Resolver für das gesamte Rechenzentrum und konfigurieren die Server so, dass diese standardmäßig verwendet werden.

  • Standardmäßig verwenden sowohl Postfix als auch Dovecot lokale Konten für alles. Wenn Sie ein Linux-Konto mit dem Namen haben diti, können Sie sich damit bei Dovecot anmelden und Postfix so einrichten, dassSMTP-Logins gegen Dovecot validieren.

  • Wenn es für Sie kein Problem ist, alle E-Mails an dasselbe Konto zu senden, können Sie einfache Aliase (wie in ) einrichten, um E-Mails für oder an das Konto /etc/aliasesumzuleiten .kra@postmaster@diti

  • Alle diese SubjectAltNames sind nicht notwendig. Die einzigen, die Sie brauchen, sind die für Domänennamen, die Sie tatsächlichverwenden, zB mail.diti.meoder glaux.diti.me. Ich bin nicht sicher, ob Sie die Domäne selbst angeben müssen (also diti.me).


Im Folgenden wird davon ausgegangen, dass die Domäne bereits MX-Einträge hat, die so konfiguriert sind, dass sie auf diesen Server verweisen. Ich versuche im Allgemeinen, meine Konfiguration einigermaßen übersichtlich zu halten, da ich mich ein paar Monate später immer frage: „Wofür zum Teufel ist das?“

1.Installieren Sie zunächst die Pakete postfixund dovecot-imapd. Wenn Sie zur Konfiguration von Postfix aufgefordert werden, wählen Sie die Option „Internet Site“ und geben Sie diti.meals E-Mail-Namen ein. Zu diesem Zeitpunkt können Sie bereits E-Mails als senden und empfangen [email protected]und wahrscheinlich sogar eine Verbindung zu IMAP herstellen.

Es verfügt jedoch noch nicht über SSL und erlaubt weder das Senden von E-Mails über SMTP von außen noch einen sinnvollen Ort zum Speichern von E-Mails (die Standardeinstellung ist eine Mbox-Datei in /var/mail, die unzuverlässig ist und eine schlechte Leistung bietet, insbesondere mit IMAP).

2.Wenn Sie bereits ein SSL-Zertifikat haben, geben Sie es in ein /etc/ssl/private/diti.me.pemund den privaten Schlüssel in /etc/ssl/private/diti.me.key. Der genaue Speicherort ist nicht wichtig, /etc/ssl/privateDebian speichert sie nur dort.

Stellen Sie sicher, dass beide Dateien Eigentum der ssl-certGruppe sind und von ihr gelesen werden können, damit Postfix und Dovecot darauf zugreifen können. Fügen Sie außerdem die Konten beider Daemons mit zu dieser Gruppe hinzu gpasswd -a.

3.Das automatisch generierte Postfix von Debian main.cfist auch ein bisschen chaotisch, deshalb werde ich einfach eine bereinigte Minimalversion veröffentlichen:

# Serverinformation
meineDomain = diti.me
myorigin = $meineDomäne
  # Verschiedene andere Parameter verwenden diese beiden Variablen als Standardwerte.

# SMTP-Dienst
smtpd_tls_security_level = kann
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 `ssl-cert`-Gruppe hinzugefügt werden muss, um
  # um auf Dateien in /etc/ssl/private zuzugreifen.

# Richtlinien
meineNetzwerke = [::1]/128, 127.0.0.0/8, [::ffff:127.0.0.0]/104
  # Hier werden die IP-Adressen aufgelistet, die als "vertrauenswürdig" gelten und
  # dieser Server sendet E-Mails nach außen (also an andere Domänen). Durch
  # standardmäßig ist nur "localhost" erlaubt. Von allen anderen nur Mail an
  # Domänen in $mydestination werden akzeptiert.
meinZiel = $meineDomäne, lokalerHost
  # Liste der Domänen, für die E-Mails von beliebigen IP-Adressen akzeptiert werden.
# Lieferung
alias_maps = hash:/usw./Aliase
  # Dadurch werden systemweite Aliase beibehalten. Es ist gut, dies explizit festzulegen, da
  # der Standardwert enthält manchmal NIS, was keinen Sinn ergibt.
Empfängertrennzeichen = +
  # Weist Postfix an, den lokalen Teil der Adressen beim ersten '+' aufzuteilen,
  # sogenannte "Plus-Adressierung": Mails die an diti+foo@ gesendet werden, werden zugestellt
  # an das diti@-Postfach.

Für Dovecot verwendet Debian einfach die standardmäßigen Beispielkonfigurationen, und diese sind mit der Beschreibung jeder Option gut genug.

Wenn Sie die Konfiguration ändern, laden Sie die Daemons mit postfix reloadund/oder neu doveadm reload.

4.Standardmäßig liefert Postfix E-Mails an /var/mail/$USERimmboxFormat, das recht einfach ist (Sie können es problemlos mit einem Texteditor anzeigen), aber insbesondere bei IMAP viele Probleme aufweist, da die gesamte Datei neu geschrieben werden muss, wenn Sie eine Nachricht verschieben oder sogar als „gelesen“ oder „ungelesen“ markieren.

Ändern Sie beide Daemons, um Maildir zu verwenden. (Es gibt andere Formate, aber diese sind in der Regel spezifisch für den MTA-, MDA-, IMAP-Server oder was auch immer; Maildir wird weitgehend unterstützt.)

Fügen Sie in /etc/postfix/main.cfdem Abschnitt „Lieferung“ Folgendes hinzu:

home_mailbox = Mail/

Konfigurieren Sie Dovecot so, dass der gleiche Pfad verwendet wird, in /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 finden Sie in /etc/dovecot/conf.d/10-ssl.conf. Tatsächlich ist das Debian-Paket für Dovecotbereitsverwendet SSL, allerdings mit einem selbstsignierten Zertifikat, das größtenteils nutzlos ist. Konfigurieren Sie es so, dass Ihr eigenes Zertifikat verwendet wird:

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 noch notwendig, Postfix zu konfigurieren, damit Sie E-Mails senden können.ausaußerhalb, indem Sie sich über SMTP mit Ihrem Mail-Client verbinden.

Sagen Sie Postfix zunächst, dass es Dovecot zur Überprüfung der Anmeldungen verwenden soll. Die folgenden Anweisungen stammen größtenteils ausDovecots Wiki.

Dovecot /etc/dovecot/conf.d/10-master.confmuss auf einem Socket lauschen, auf den Postfix zugreifen kann. Die Standardkonfiguration enthält bereits ein auskommentiertes Beispiel:

Dienstauthentifizierung {
    ...
    unix_listener /var/spool/postfix/private/auth {
        Modus = 0660
        Benutzer = Postfix
        Gruppe = Postfix
    }
    ...
}

Und Postfix muss es verwenden – /etc/postfix/main.cfnoch einmal:

# Authentifizierung
smtpd_sasl_type = Taubenschlag
smtpd_sasl_path = privat/auth
  # Der andere mögliche Typ ist „cyrus“ für das Cyrus SASL „saslauthd“
  # Daemon. Ich habe mich hier für Dovecot entschieden, da es als SASL-Server gut funktioniert und
  # es ist einfach einfacher, die Authentifizierung für beide Daemons von ihm übernehmen zu lassen.

7.Beachten Sie, dass das Obige nirgendwo festgelegt wurde smtpd_sasl_auth_enable. Die aktuelle Konvention istnichtSMTP-Authentifizierung global aktivieren, aber TCP/25 als reinen „Server-zu-Server“-SMTP-Port behalten. Neue Nachrichten von Benutzern werden inzwischen über SMTP auf TCP/587, dem „Mail-Übermittlungs“-Port, angenommen, der eine Authentifizierung erfordert. Einige ISPs blockieren TCP/25 sogar wegen Spam, lassen aber TCP/587 offen, da es normalerweise besser gesichert ist.

Aktivieren Sie den Port "Submission" in /etc/postfix/master.cfmit SASL-Authentifizierung. Die Standardeinstellung master.cfenthält bereits die erforderlichen Zeilen, die nur auskommentiert werden müssen.manchedavon sollten dennoch weggelassen werden.

Übermittlung inet n - - - - smtpd
  -o syslog_name=postfix/übermittlung
  -o smtpd_tls_security_level=verschlüsseln
    # Der "Submission"-Port erfordert TLS, anstatt es optional zu machen
  -o smtpd_sasl_auth_enable=ja
    # … und Benutzern die Anmeldung ermöglichen.
# -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 bleiben; wenn sie aktiviert werden, würden sie
    # erwarten, dass Sie benutzerdefinierte Einschränkungsregeln in 'main.cf' festlegen, aber die
    # Die Standardeinstellungen sind völlig ausreichend.
  -o smtpd_recipient_restrictions=sasl_authenticated_permit,ablehnen
    # Die Standard-Receiver_Restrictions prüfen die IP-Adresse und
    # $mydestination. Für den "Submission"-Port, erlauben Sie alles, solange
    # als Benutzer angemeldet ist, aber alle anonymen E-Mails ablehnen.
  -o milter_macro_daemon_name=URSPRUNG
    # Wenn Sie sich später entscheiden, einen DKIM-Proxy oder ähnliches einzurichten, ermöglicht dies
    # um zwischen vom Benutzer gesendeten und empfangenen E-Mails zu unterscheiden.
    # Es ist Teil der Standardkonfiguration und daher auch hier enthalten.

Wenn Sie einen E-Mail-Client haben, der einen alten „impliziten SSL“-Port (TCP/465) erfordert, können Sie die smtpsZeilen auskommentieren master.cf. Wenn Sie dies tun, behalten Sie die Einstellungen bei, die submissiondenen für den Port ähnlich sind.

8.Richten Sie abschließend Aliase für Ihr Konto ein, indem Sie bearbeiten /etc/aliases. Der postmasterAlias ​​ist grundsätzlich erforderlich; er ist der Ansprechpartner, wenn es Probleme mit Ihrem Mailserver gibt. Verweisen rootund andere ähnliche Aliase sind ebenfalls gut.

Das grundlegende Format ist in aliases(5) dokumentiert:

postmaster: root
admin:      root
root:       diti
kra:        diti

Verwenden Sie postaliasoder newaliases, um die gehashte Datenbank /etc/aliases.dbjedes Mal zu aktualisieren, wenn Sie diese Datei bearbeiten.

Nun haben Sie ditifür Postfix und Dovecot immer noch ein Konto, an das gesendete E-Mails jedoch kra@...auch dorthin weitergeleitet werden. Einige E-Mail-Clients (z. B. Thunderbird) unterstützen mehrere „Identitäten“ oder „Personas“ für einen einzelnen Mailserver, sodass Sie zwischen verschiedenen „Von:“-Adressen wählen können.

Das ist alles. Ich werde später vielleicht mit Anweisungen für Procmail, virtuelle Domänen, SPF und/oder DKIM zurückkommen.

verwandte Informationen