Die am häufigsten verwendeten Implementierungen von SMTP in den meisten Linux-Distributionen sind Sendmail und Postfix. Postfix ist ein Open-Source-Mail-Transfer-Agent, der ursprünglich als Alternative zu Sendmail entwickelt wurde und normalerweise als Standard-Mailserver eingerichtet wird.
Postfix installieren
Bevor Sie mit der Installation beginnen, das Wichtigste zuerst. Eine gute Angewohnheit ist es, zu prüfen, ob die Software bereits auf dem Server installiert ist. Es ist immer hilfreich zu überprüfen, ob etwas vorhanden ist, bevor Sie sich an die Arbeit machen.
Verwenden Sie diesen Befehl, um nach RPM-basierten Distributionen zu suchen:
$ rpm -qa | grep postfix
Wenn der vorherige Befehl zeigt, dass das RPM nicht installiert ist, können Sie das Postfix-RPM wie folgt installieren (auf yum
-basierte Distributionen):
$ yum install -y postfix
Nachdem Postfix installiert ist, können Sie den Dienst starten und aktivieren, um sicherzustellen, dass er nach dem Neustart startet:
$ systemctl start postfix
$ systemctl enable postfix
Postfix konfigurieren
Nachdem Postfix installiert ist, können Sie damit beginnen, den Dienst nach Ihren Wünschen zu konfigurieren. Alle Optionen, die Sie für den Dienst benötigen, befinden sich in /etc/postfix
. Die Hauptkonfigurationsdatei für den Postfix-Dienst befindet sich unter /etc/postfix/main.cf
. Innerhalb der Konfigurationsdatei gibt es viele Optionen, die Sie hinzufügen können, einige davon häufiger als andere. Sehen wir uns einige an, die Sie beim Einrichten des Dienstes und bei der Fehlerbehebung am häufigsten sehen:
myhostname
gibt den Hostnamen des Mailservers an. Hostnamen enthalten normalerweise Präfixe wie diese:
myhostname = mail.sinisterriot.com
mydomain
deklariert die Domain, die tatsächlich E-Mails verarbeitet, wie folgt:
mydomain = sinisterriot.com
mail_spool_directory
deklariert das Verzeichnis, in dem Postfachdateien abgelegt werden, etwa so:
mail_spool_directory = /var/mail
mynetworks
deklariert eine Liste vertrauenswürdiger Remote-SMTP-Server, die über den Server weitergeleitet werden können, wie folgt:
mynetworks = 127.0.0.0/8, 168.100.189.0/28
Die mit mynetworks
bereitgestellte Liste sollte nur lokale Netzwerk-IP-Adressen oder Netzwerk-/Netzmaskenmuster enthalten, die durch Kommas oder Leerzeichen getrennt sind. Es ist wichtig, nur lokale Netzwerkadressen zu verwenden, um zu verhindern, dass unbefugte Benutzer Ihren Mailserver für böswillige Aktivitäten verwenden, was dazu führt, dass Ihr Server und Ihre Adressen auf die schwarze Liste gesetzt werden.
Postfix testen
Bevor etwas in Produktion geht, ist es immer eine gute Idee, es in einer Entwicklungsumgebung zu testen. Dieser Prozess hat das gleiche Konzept:Sobald Sie den Mailserver konfiguriert haben, testen Sie ihn, um sicherzustellen, dass er funktioniert.
Zunächst empfehle ich zu testen, ob Sie eine E-Mail an einen lokalen Empfänger senden können. Bei Erfolg können Sie mit einem entfernten Empfänger fortfahren. Ich ziehe es vor, den Telnet-Befehl zu verwenden, um meinen Mailserver zu testen:
$ telnet mail.sinisterriot.com 25
Fügen Sie das HELO
hinzu Befehl, um dem Server mitzuteilen, von welcher Domäne Sie kommen:
HELO sinisterriot.com
Als nächstes kommt der Absender. Diese ID kann mit dem MAIL FROM
hinzugefügt werden Befehl:
MAIL FROM: [email protected]
Auf diesen Eintrag folgt der Empfänger, und Sie können mehr als einen hinzufügen, indem Sie RCPT TO
verwenden Befehl mehrmals:
RCPT TO: [email protected]
Schließlich können wir den Inhalt der Nachricht hinzufügen. Um den Inhaltsmodus zu erreichen, fügen wir das Präfix DATA
hinzu in einer eigenen Zeile, gefolgt von Subject
Zeile und die Textnachricht. Unten aufgeführt ist ein Beispiel:
DATA
Subject: This is a test message
Hello,
This is a test message
.
Um den Nachrichtentext zu vervollständigen und zu schließen, müssen Sie einen einzelnen Punkt (.) oder Punkt in einer eigenen Zeile hinzufügen. Sobald dieser Vorgang abgeschlossen ist, versucht der Server, die E-Mail mit den von Ihnen angegebenen Informationen zu senden. Die Code-Antwort benachrichtigt Sie, ob die E-Mail erfolgreich war oder nicht. Wenn Sie fertig sind, verwenden Sie quit
Befehl zum Schließen des Mailing-Fensters.
Überprüfen Sie in jedem Fall die E-Mail-Protokolle auf Fehler. Sie befinden sich in /var/log/maillog
standardmäßig, aber dieser Speicherort kann an einen anderen Ort geändert werden. Als Systemadministrator ist es eine gute Angewohnheit, Fehlerprotokolle zu überprüfen. Diese Vorgehensweise eignet sich hervorragend zur Fehlerbehebung und gibt uns einen Einblick in die schnellere Identifizierung und Behebung eines Problems. Das Entschlüsseln von E-Mail-Protokollen ist ebenfalls ein wichtiger Teil der Verwaltungsarbeit, da uns jeder Teil des Protokolls mitteilt, was wichtig ist. In den vergangenen Jahren hat mir das Wissen um diese Teile geholfen, Skripte für bestimmte Anfragen zu schreiben, während ich nur Teile der Mail-Protokolle redigieren oder weglassen musste.
Postfix sichern
Die Sicherung Ihrer Dienste ist genauso wichtig wie deren Einrichtung. Es ist sicherer, Daten über eine sichere Verbindung zu übertragen als über eine ungeschützte. Als Nächstes behandeln wir, wie Sie unseren neu konfigurierten Mailserver sichern können. Sie können dies tun, indem Sie eine SSL-Sitzung über Transport Layer Security (TLS) für den SMTP-Server generieren.
Zunächst müssen Sie den privaten Schlüssel und den Certificate Signing Request (CSR) generieren. Sie können dies über den openssl
tun Befehl:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Generieren Sie dann eine Signaturanforderung und kopieren Sie sie in /etc/postfix
Verzeichnis:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Diese Sequenz gibt ein signiertes Zertifikat an den Mailserver aus, das auch als Zertifikat einer Zertifizierungsstelle (CA) bezeichnet wird. Diese Praxis bedeutet, dass die Zertifizierungsstelle dem Zertifikatsunterzeichner vertrauen muss, um den privaten Schlüssel zu sichern und Daten über das Internet zu übertragen. Bei der anderen Art von Zertifikat, einem selbstsignierten, vertraut die Zertifizierungsstelle dem Unterzeichner des Zertifikats nicht, sodass die Informationen anfällig für Diebstahl und offen für Kompromittierungen sind. Es ist immer besser, ein signiertes Zertifikat zu verwenden.
Sobald dieser Vorgang abgeschlossen ist, können Sie der Postfix-Konfigurationsdatei TLS-Optionen hinzufügen:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
Starten Sie als Nächstes den Dienst neu, um die neuen Optionen in Kraft zu setzen:
$ systemctl restart postfix
Jetzt haben Sie einen funktionierenden, sicheren E-Mail-Server.