it-swarm.com.de

Wie richte ich einen E-Mail-Server ein?

Mein VPS läuft unter Ubuntu und ich möchte E-Mails an meine Domain erhalten.

Wie richte ich dazu einfach einen Mailserver ein?

59
Stefano Palazzo

So habe ich Mail auf unseren Produktionsmaschinen eingerichtet. Dies sind die Kriterien, die wir brauchten:

  • E-mail Konten
  • E-Mail-Aliase (Weiterleitungen)
  • IMAP, POP3 und SMTP

"Easy" (tl; dr)

Zunächst möchte ich auf die scheinbar einfachste Lösung eingehen.

_Sudo tasksel install mail-server
_

Als wir dies versuchten, traten einige Probleme auf: Zuerst wird Dovecot installiert, was für die meisten in Ordnung ist, aber wir haben Courier für unsere Bedürfnisse als die bessere der beiden angesehen. Zweitens nutzt es Postfix, was großartig ist, aber wir brauchen auch Exim, da es ein leistungsfähigerer MTA/SMTP-Server ist. Drittens wird MySQL installiert - in der von mir verwendeten Konfiguration bevorzugen wir Flatfiles für die Konfiguration, da dies eine Schwachstelle weniger ist. Überlegen Sie, was passieren würde, wenn MySQL aus einem unbekannten Grund abstürzt. Ansonsten ist der Rest der Pakete ziemlich einfach und für einen kleinen Mail-Service einfach zu warten (man denke an 1-2 E-Mail-Domains insgesamt).

Unsere Konfiguration

Verzeichnisaufbau

Wir weichen geringfügig vom Pfad normaler Konfigurationen ab, dies erleichtert jedoch die Verwaltung.

Alle unsere E-Mails werden in _/var/mail/virtual/<domain>/<user>/mail_ gespeichert. Daher verwende ich für zukünftige Beispiele _[email protected]_, _[email protected]_, _[email protected]_, um eine E-Mail-Adresse darzustellen, einen Weiterleiter, zu dem ich gehe. _[email protected]_ und eine falsche Adresse. Im obigen Beispiel wäre es _/var/mail/virtual/example.com/email/mail_.

Ich habe auch eine Liste aller Domänen auf dem Server in _/etc/valiases_, aber dazu später mehr.

Postfix

Dies ist mehr oder weniger der einfache Teil des Setups. Installieren Sie einfach das Paket postfix.

Exim

Exim installieren mit _apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy_ Nach der Installation müssen Sie die Standardkonfiguration von exim bearbeiten, um die folgenden Werte zu ersetzen oder hinzuzufügen:

_domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes
_

(Diese Zeilen erscheinen in verschiedenen Teilen der Datei und werden entsprechend ersetzt.)

Sobald dies abgeschlossen ist, erstellen Sie die Exim-Konfiguration mit _update-exim4.conf_. Damit sind die für Exim erforderlichen Änderungen abgeschlossen

Kurier

Installieren Sie Courier mit _courier-base_ dies sollte _courier-authdaemon_, _courier-authlib*_, _courier-imap*_, _courier-pop*_, courieruserinfo, _courier-ssl_

Es gibt ehrlich gesagt nicht viel Konfiguration außerhalb des Standards. Sie müssen lediglich eine Benutzerdatenbank erstellen.

Konten

Exim und Courier überprüfen an einigen Stellen, ob ein Login oder eine eingehende E-Mail gültig sind. Exim prüft, ob die Domäne als lokaler Hostname aufgeführt ist oder ob sich die Domäne in _/var/mail/virtual_ befindet oder ob sich die Domäne in _/etc/valiases_ befindet.

E-Mail-Konten erstellen

Ich habe schließlich mehrere Tools erstellt, um diesen Prozess zu rationalisieren. Das Hinzufügen eines neuen Benutzers erfolgt jedoch wie folgt:

_mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/
_

Fügen Sie dann die Adresse zu kurier userdb hinzu, damit sie sich anmelden können

_userdb [email protected] set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail
_

Stellen Sie sicher, dass Sie die Werte gegebenenfalls ersetzen. Außerdem müssen - uid und gid die numerischen Benutzer-/Gruppen-IDs für den E-Mail-Benutzer sein.

_userdbpw -md5 | userdb [email protected] set systempw
_

Sie werden zur Eingabe eines Kennworts aufgefordert. Geben Sie das Kennwort ein, das Sie für das Konto verwenden möchten.

_makeuserdb
_

Generieren Sie abschließend die Userdb-Hash-/Shadow-Dateien. Starten Sie Courier neu und testen Sie, ob Ihre Änderungen funktionieren:

_authtest [email protected]
_

Sollte etwas ähnliches produzieren

_Authentication succeeded.

     Authenticated: [email protected]  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)
_

Wenn "Authentifizierung fehlgeschlagen: Vorgang nicht zulässig" angezeigt wird, bearbeiten Sie stattdessen/etc/courier/authdaemonrc und fügen Sie authuserdb in die Zeile authmodulelist ein.

Nachdem alle Tests bestätigt wurden, starten Sie die verschiedenen beteiligten Dienste neu (_courier-authdaemon_, _exim4_), öffnen Sie die Ports 143, 25, 586, 495, 110 und richten Sie die Konten in Ihrem bevorzugten E-Mail-Client ein.

E-Mail-Aliase erstellen

Für jede Domain sollten Sie eine Datei in _/etc/valiases_ (erstellen, wenn sie nicht existiert) mit mindestens der folgenden Zeile erstellen:

_*: :fail: No user at this address.
_

Was dies sagt: Wenn die eingehende E-Mail nicht mit einem E-Mail-Konto übereinstimmt, das ich gespeichert habe, sollte die E-Mail fehlschlagen und mit der Meldung "Kein Benutzer an dieser Adresse" zurückgewiesen werden. Alle E-Mails, die gesendet werden, um Folgendes zu sagen: _[email protected]_, werden als Fehler zurückgewiesen.

Wir haben jedoch ein paar E-Mail-Adressen, die wir an anderer Stelle pflegen möchten - beispielsweise bei [email protected] -, um dies zu tun, müssen wir _/etc/valiases/example.com_ erstellen und der Inhalt der Datei sollte wie folgt lauten:

_fwd: [email protected]
*: :fail: No user at this address.
_

Auf diese Weise stimmt [email protected] zwar mit keinem E-Mail-Konto auf dem Server überein, es stimmt jedoch mit der Datei _/etc/valiases_ überein, und die E-Mail wird an [email protected] weitergeleitet - jedoch an foo @ example. com schlägt immer noch mit der Meldung "Kein Benutzer an dieser Adresse" fehl.

48
Marco Ceppi

Am einfachsten ist es, Sudo tasksel install mail-server auszuführen. Dadurch erhalten Sie einen E-Mail-Server mit vernünftigen Standardeinstellungen. Alles was Sie tun müssen, ist ein paar Fragen zu beantworten. Natürlich können Sie danach noch manuelle Konfigurationen vornehmen, wenn dies erforderlich ist. In den meisten Fällen ist dies jedoch nicht der Fall. Folgen Sie einfach den Anweisungen auf dem Bildschirm und es sollte Ihnen gut gehen.

Es ist jedoch absolut empfehlenswert, sich über die Verwaltung der E-Mail-Dienste zu informieren.

Offizielle Referenzen:

14

Ich habe keine "gute Antwort", aber möglicherweise finden Sie diese Links hilfreich https://help.ubuntu.com/community/PostfixBasicSetupHowto#Receiving Mail und https: // help .ubuntu.com/community/Postfix

5
fragos

Tun Sie dies einfach selbst, Sie benötigen in der Tat Postfix, und in meinem Fall wollte ich auch einen Imap-Server, damit ich einen Nizza-GUI-Client (ohne Namen zu erwähnen) auf einem anderen Computer verwenden kann. Ich habe diese Dokumente benutzt:

Postfix

Dovecot (imap und pop3)

Es ist eigentlich ziemlich einfach, hat es in ein paar Minuten zum Laufen gebracht und erhalte E-Mails. Dies ist auch nützlich, um zu überprüfen, ob alles in Ordnung ist Ping-Fähigkeit .

Oh, und Sie müssen natürlich Ihre DNS-Einträge wie folgt korrekt einrichten (basierend auf den Einstellungen, die für mich funktionierten):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

und

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Beachten Sie den Punkt am Ende der Mailserver und geben Sie gegebenenfalls Ihre IP-Adresse und Ihren Domainnamen ein.

4
NimChimpsky