Mein VPS läuft unter Ubuntu und ich möchte E-Mails an meine Domain erhalten.
Wie richte ich dazu einfach einen Mailserver 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?
Antworten:
So habe ich Mail auf unseren Produktionsmaschinen eingerichtet. Dies sind die Kriterien, die wir brauchten:
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 das 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 installiert es MySQL - 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).
Wir weichen geringfügig vom Pfad normaler Konfigurationen ab, dies erleichtert jedoch die Verwaltung.
Alle unserer Mail wird in gespeichert /var/mail/virtual/<domain>/<user>/mail
für zukünftige Beispiele Also ich verwenden werden email@example.com
, fwd@example.com
, foo@example.com
um zu gehen , um eine E - Mail - Adresse, eine Weiterleitung zu vertreten example@gmail.com
, und jeweils eine schlechte Adresse. Im obigen Beispiel wäre es /var/mail/virtual/example.com/email/mail
.
Ich habe auch eine Liste aller Domains auf dem Server, /etc/valiases
aber dazu später mehr.
Dies ist mehr oder weniger der einfache Teil des Setups. Installieren Sie einfach das postfix
Paket.
Exim apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy
installieren mit Nach der Installation müssen Sie die Exim-Standardkonfiguration 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
Dies schließt die für Exim erforderlichen Änderungen ab
Installieren Sie Courier mit courier-base
dieser sollte installieren 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.
Exim und Courier überprüfen an einigen Stellen, ob ein Login oder eine eingehende E-Mail gültig sind. Exim prüft, ob die Domain als lokaler Hostname aufgeführt ist oder ob die Domain eingetragen ist /var/mail/virtual
oder ob die Domain eingetragen ist /etc/valiases
.
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 "courier userdb" hinzu, damit sie sich anmelden können
userdb email@example.com 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 - uid
und gid
müssen die numerischen Benutzer- / Gruppen-IDs für den E-Mail-Benutzer sein.
userdbpw -md5 | userdb email@example.com set systempw
Daraufhin werden Sie 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@example.com
Sollte etwas ähnliches produzieren
Authentication succeeded.
Authenticated: email@example.com (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.
Für jede Domain sollten Sie eine Datei in /etc/valiases
(erstellen, wenn es 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 Mails, die gesendet werden, um zu sagen foo@example.com
, werden als Fehler zurückgewiesen.
Wir haben jedoch ein paar E-Mail-Adressen, die wir an anderer Stelle pflegen möchten - beispielsweise bei example@gmail.com -, damit wir sie erstellen können. /etc/valiases/example.com
Der Inhalt der Datei sollte wie folgt lauten:
fwd: example@gmail.com
*: :fail: No user at this address.
Auf diese Weise stimmt fwd@example.com zwar mit keinem E-Mail-Konto auf dem Server überein, es stimmt jedoch mit der /etc/valiases
Datei überein, und die E-Mail wird an example@gmail.com weitergeleitet. Foo@example.com schlägt jedoch weiterhin mit fehl eine Meldung "Kein Benutzer an dieser Adresse".
Der einfachste Weg ist zu rennen sudo tasksel install mail-server
. Dadurch erhalten Sie einen E-Mail-Server mit vernünftigen Standardeinstellungen. Sie müssen nur ein paar Fragen 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:
sudo tasksel --task-packages mail-server
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
Wenn ich das nur selbst mache, brauchst du in der Tat Postfix, und in meinem Fall wollte ich auch einen Imap-Server, damit ich einen netten GUI-Client (ohne Namen zu erwähnen) auf einem anderen Computer verwenden kann. Ich habe diese Dokumente benutzt:
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 .
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.