Wenn Sie eine E-Mail senden oder empfangen möchten, sollten Sie einen Mailserver haben. In diesem Beitrag werden wir den Linux Mail Server und die Funktionsweise des SMTP (Simple Mail Transfer Protocol) sowie andere Mail-bezogene Protokolle wie das Post Office Protocol (POP) und das Internet Message Access Protocol (IMAP) und die Beziehung zwischen ihnen diskutieren.,
Inhaltsverzeichnis
Linux SMTP Server
SMTP definiert das Senden von E-Mails von einem Host an einen anderen; Es ist auch systemunabhängig, was bedeutet, dass Sender und Empfänger unterschiedliche Betriebssysteme haben können.
SMTP erfordert nur, dass ein Server direkt ASCII-Text an einen anderen Server senden kann, können Sie dies tun, indem Sie an den Server auf Port 25 verbinden, die der Standard-SMTP-Port ist.
Die meisten Linux-Distributionen verfügen heute über zwei der häufigsten Implementierungen von SMTP, Sendmail und Postfix.,
Sendmail ist ein bekannter und kostenloser Mailserver, der jedoch etwas komplexes Design und weniger sicher ist.
Die Postfix-Implementierung ging noch einen Schritt weiter und wurde mit Blick auf die Sicherheit entwickelt.
Mail-Service-Komponenten
Der Mail-Dienst auf jedem Mail-Server besteht aus drei Komponenten:
Mail User Agent (MUA): diese Komponente, die der Benutzer sieht und interagiert mit wie Thunderbird und Microsoft Outlook sind diese Benutzeragenten für das Lesen von E-Mails und ermöglicht es Ihnen, E-Mails zu komponieren.,
Mail Transport Agent (MTA): Diese Komponente ist dafür verantwortlich, die E-Mails wie Sendmail und Postfix von einer Site auf eine andere zu übertragen.
Mail Delivery Agent( MDA): Diese Komponente ist für die Verteilung der empfangenen Nachrichten auf dem lokalen Computer an das entsprechende Benutzerpostfach wie postfix-maildrop und Procmail verantwortlich.
E-Mail-Server einrichten
Wir haben uns für den Postfix-Mailserver entschieden, der heute bei Systemadministratoren sehr beliebt und verbreitet ist.
Postfix ist der Standard-Mailserver auf den meisten modernen Linux-Distributionen.,
Überprüfen Sie zunächst, ob es auf Ihrem System installiert ist oder nicht:
$ rpm -qa | grep postfix
Wenn nicht installiert, können Sie Postfix mail Server auf Red Hat basierten Distributionen wie folgt installieren:
$ dnf -y install postfix
Starten Sie dann den postfix Dienst und aktivieren Sie ihn beim Systemstart:
$ systemctl start postfix$ systemctl enable postfix
Auf Debian-basierte Distributionen wie Ubuntu können Sie wie folgt installieren:
$ apt-get -y install postfix
Sie werden aufgefordert, den Konfigurationstyp des Postfix-Mailservers während des Installationsvorgangs auszuwählen.,
Unter den vier Optionen Keine Konfiguration, Internetseite, Internet mit Smarthost, Satellitensystem und nur lokal wählen wir keine Konfigurationsoption.
Linux-Mailserver konfigurieren
Nach der Installation des Postfix-Mailservers müssen Sie ihn konfigurieren; Die meisten Konfigurationsdateien finden Sie im Verzeichnis /etc/postfix/.
Die Hauptkonfiguration für den Postfix-Mailserver finden Sie in der Datei /etc/postfix/main.cf.,
Diese Datei enthält viele Optionen wie:
myhostname
Mit dieser Option können Sie den Hostnamen des Mailservers angeben. Dies ist der Internet-Hostname, auf dem Postfix E-Mails empfängt.
Die Hostnamen könnten wie folgt sein mail.example.com, smtp.example.com.
myhostname = mail.example.com
mydomain
Diese Option ist die Mail-Domäne, die Sie bedienen werden, wie example.com
Die Syntax ist wie folgt:
mydomain = example.com
myorigin
Alle von diesem Mailserver gesendeten E-Mails sehen so aus, als ob sie von dieser Option stammen., Sie können dies auf $mydomain Wert setzen.
myorigin = $mydomain
Sie können jeden Optionswert verwenden, dem Sie einfach ein $ like $mydomain voranstellen.
mydestination
Diese Option listet die Domänen auf, die der Postfix-Server für eingehende E-Mails verwendet.
Es kann Werte wie diese annehmen:
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain
mail_spool_directory
Es gibt zwei Versandarten, die Postfix mail Server verwenden kann:
- Direkt an das Postfach eines Benutzers.
- Zu einem zentralen Spool-Verzeichnis, auf diese Weise wird die Mail in /var/spool/mail mit einer Datei für jeden Benutzer.,
mail_spool_directory = /var/spool/mail
mynetworks
Mit dieser Option können Sie konfigurieren, welche Server über Ihren Postfix-Server weitergeleitet werden können.
Diese Option sollte lokale Adressen wie lokale Mail-Skripte nur auf Ihrem Server verwenden.
Andernfalls können Spammer Ihren Mailserver verwenden, um ihre Nachrichten weiterzuleiten, und Ihr Mailserver wird auf die schwarze Liste gesetzt, sodass Sie nicht viele E-Mails erhalten können.,
Diese option hat die folgende syntax:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_banner
Diese variable legt die Nachricht, die der server sendet, wenn der client nach erfolgreicher Verbindung.
Es ist besser, das Banner in etwas zu ändern, das dem von Ihnen verwendeten Server keine Ahnung gibt.
inet_protocols
Diese Option gibt die IP-Protokollversion an, die für Serververbindungen verwendet wird.,
inet_protocols = ipv4
Wenn Sie die Konfigurationsdateien für den Postfix-Mailserver ändern, müssen Sie den Dienst neu laden:
$ systemctl reload postfix
Wenn Sie eine Konfiguration eingeben, können Sie einen Fehler machen, Sie können mit dem folgenden Befehl nach Fehlern suchen:
Dieses Tool hilft Ihnen, genau die Zeile und die fehler, damit Sie es beheben können.
Überprüfen der Mail-Warteschlange
Manchmal sind die Mail-Warteschlangen mit Nachrichten gefüllt. Dies geschieht aus vielen Gründen, wie Netzwerkausfall oder aus irgendeinem Grund, der die Zustellung von E-Mails verzögern kann.,
Um die Mail-Warteschlange auf Ihrem Linux-Mailserver zu überprüfen, verwenden Sie den folgenden Befehl:
$ mailq
Dieser Befehl zeigt die Postfix-Mail-Warteschlange an.
Wenn Ihre Warteschlange gefüllt ist und die Verarbeitung der Nachricht mehrere Stunden dauert, sollten Sie die E-Mail-Warteschlange leeren.
$ postfix flush
Wenn Sie nun Ihre Mail-Warteschlange überprüfen, sollten Sie sie leer finden.
Linux Mailserver testen
Nachdem Sie den Postfix Mailserver korrekt konfiguriert haben, sollten Sie Ihren Mailserver testen.,
Der erste Schritt besteht darin, einen lokalen Mail-Benutzeragenten wie mailx oder mail zu verwenden, der ein Symlink zu mailx ist.
Versuchen Sie, eine E-Mail an eine andere Person auf demselben Server zu senden, wenn dies funktioniert, und senden Sie sie dann an eine entfernte Site.
Versuchen Sie dann, eine E-Mail von einer Remote-Site zu erhalten.
Wenn Sie Probleme haben, überprüfen Sie die Protokolle. Die Protokolldatei für Red Hat – basierte Distributionen in der Datei / var / log / maillog und für Debian – basierte Distributionen in /var/log / mail.protokolldatei oder wie in der rsyslogd-Konfiguration definiert.,
Ich empfehle Ihnen, den Linux-Syslog-Server für eine detaillierte Erklärung über Protokolle zu überprüfen und wie die rsyslogd konfigurieren.
Wenn Sie immer noch Probleme haben, überprüfen Sie Ihre DNS-Einstellungen und überprüfen Sie Ihre MX-Datensätze mithilfe von Linux-Netzwerkbefehlen.
Sichere Postfächer vor Spam mit SpamAssassin
Eine der Möglichkeiten, Spam zu bekämpfen, besteht darin, die Postfächer mit einem Tool zu scannen und nach bestimmten Mustern zu suchen, die mit Spam verbunden sind.
Eine der besten Lösungen ist SpamAssassin, das Open Source ist.,
Sie können es wie folgt installieren:
$ dnf -y install spamassassin
Starten Sie den Dienst und aktivieren Sie ihn beim Start:
$ systemctl start spamassassin$ systemctl enable spamassassin
Sobald Sie ihn installiert haben, können Sie die Konfiguration in
/etc/mail/spamassassin/local.cf
Datei überprüfen.
SpamAssassin ermittelt anhand des Ergebnisses der verschiedenen Scripts-Scores, ob eine E-Mail Spam ist oder nicht.
Wenn die Nachricht eine höhere Punktzahl hat, bedeutet dies eine höhere Möglichkeit, dass die Mail Spam ist.,
In der Konfigurationsdatei gibt der Parameter required_hits 5 an, dass SpamAssassin eine E-Mail als Spam markiert, wenn die Punktzahl fünf oder höher ist.
Die Option report_safe übernimmt die Werte 0, 1 oder 2. Wenn auf 0 gesetzt, bedeutet dies, dass E-Mails, die als Spam markiert sind, so gesendet werden, wie sie sind, und nur die Header ändern, um anzuzeigen, dass es sich um Spam handelt.
Wenn der Wert 1 oder 2 verwendet wird, generiert SpamAssassin eine neue Berichtsnachricht und sendet die Nachricht an den Empfänger.,
Der Wert 1 bedeutet, dass die Spam-Nachricht als Inhaltsnachricht / rfc822 codiert ist, während der Wert 2 bedeutet, dass die Nachricht als Text/einfacher Inhalt codiert ist.
Der Text / plain ist sicherer, da einige Mail-Clients message/rfc822 ausführen und den Client-Computer infizieren könnten.
Jetzt müssen wir es in Postfix integrieren. Der einfachste Weg dazu ist wahrscheinlich die Verwendung von procmail.
Wir müssen eine Datei mit dem Namen
erstellen und den folgenden Inhalt hinzufügen:
:0 hbfw| /usr/bin/spamc
Dann bearbeiten wir die Postfix-Konfigurationsdatei /etc/postfix/main.,cf und ändern Sie
mailbox_command
mailbox_command = /usr/bin/procmail
Starten Sie Postfix und SpamAssassin services:
$ systemctl restart postfix$ systemctl restart spamassassin
SpamAssassin erkennt jedoch manchmal keine Spam-Nachrichten, die zu Postfächern mit Spam-Nachrichten geführt haben.
Glücklicherweise können Sie Nachrichten filtern, bevor sie mit Realtime Blackhole Lists (RBLs) auf den Postfix-Server gelangen. Dadurch wird die Belastung Ihres Mailservers verringert und Ihr Mailserver sauber gehalten.
Öffnen Sie die Konfigurationsdatei von Postfix-server /etc/postfix/main.,wählen und ändern Sie die Option smtpd_recipient_restrictions und fügen Sie die folgenden Optionen wie folgt hinzu:
Starten Sie dann Ihren Postfix-Server neu:
$ systemctl restart postfix
Die obigen RBLs sind die häufigsten; Sie können weitere Listen im Web finden und sie ausprobieren.
SMTP-Verbindung sichern
Es ist besser, Ihren SMTP-Datenverkehr über TLS zu übertragen, um ihn vor einem MITM-Angriff (Man In The Middle) zu schützen.
Zuerst müssen wir das Zertifikat und den Schlüssel mit dem Befehl openssl generieren:
Fügen Sie dann die folgende Option zur Postfix-Konfigurationsdatei /etc/postfix/main hinzu.,cf:
Starten Sie schließlich Ihren Postfix-Dienst neu:
$ systemctl restart postfix
Jetzt müssen Sie die TLS auf Ihrem Client auswählen, wenn Sie eine Verbindung zum Server herstellen.
Sie erhalten eine Warnung, wenn Sie nach dem Ändern der Einstellung zum ersten Mal eine E-Mail senden, da das Zertifikat nicht signiert ist.
Verwenden von Let ’s Encrypt-Zertifikaten
Let‘ s Encrypt ist ein kostenloser SSL-Zertifikatanbieter, mit dem Sie Ihren Datenverkehr verschlüsseln können.
Anstatt selbstsignierte Zertifikate zu verwenden, die Ihre Benutzer darüber ärgern, ihnen zu vertrauen, können Sie diese gute Lösung verwenden.,
Installieren Sie zuerst letsencrypt:
$ yum install letsencrypt
Oder wenn Sie Debian – basierte Distribution verwenden, können Sie den folgenden Befehl verwenden:
$ apt-get install letsencrypt
Führen Sie letsencrypt wie folgt aus:
$ letsencrypt certonly --standalone -d yourdomain.com
Sie sollten letsencrypt yourdomain.com mit Ihrer tatsächlichen Domain.
Nach der Beantwortung der gestellten Fragen zur Kontakt-E-Mail, zur E-Mail-Serverdomäne und zur Lizenz sollte jetzt alles in Ordnung sein.,
Die Zertifikate befinden sich in:
/etc/letsencrypt/live/yourdomain.com/
Eine letzte Sache, die Sie tun müssen, ist, dass postfix diese Zertifikate verwendet. yourdomain.com mit Ihrer tatsächlichen Domain.
Starten Sie schließlich Ihren Postfix-Server neu:
$ systemctl restart postfix
POP3-und IMAP-Protokollgrundlagen
Bisher haben wir gesehen, wie der SMTP-Mailserver E-Mails ohne Probleme sendet und empfängt, aber berücksichtigen Sie die folgenden Situationen:
- Benutzer benötigen lokale Kopien von E-Mails für die Offline-Anzeige.,
- Das mbox-Dateiformat wird nicht unterstützt. Das mbox-Format wird von vielen Mail-Benutzeragenten wie mailx und Mutt verwendet.
- Benutzer können nicht mit einem schnellen Netzwerk verbunden bleiben, um eine lokale Kopie zum Offline-Lesen zu erhalten.
- Einige Mailserver gewähren aus Sicherheitsgründen keinen Zugriff auf die freigegebenen Mail-Spool-Verzeichnisse.
Um diese Fälle zu behandeln, sollten Sie die Mail-Zugriffsprotokolle verwenden.
Die beiden gängigsten Mailzugriffsprotokolle sind das Post Office Protocol (POP) und das Internet Message Access Protocol (IMAP).,
Die Idee hinter POP ist ganz einfach: Ein zentraler Linux-Mailserver bleibt die ganze Zeit online und empfängt und speichert E-Mails für alle Benutzer. Alle empfangenen E-Mails werden auf dem Server in die Warteschlange gestellt, bis ein Benutzer sie ergreift.
Wenn ein Benutzer eine E-Mail senden möchte, leitet der E-Mail-Client diese normalerweise über SMTP über den zentralen Linux-Mailserver weiter.
Beachten Sie, dass sich der SMTP-Server und der POP-Server problemlos auf demselben System befinden können. Die meisten Server tun dies heute.
Funktionen wie das Aufbewahren einer Master-Kopie der E-Mail eines Benutzers auf dem Server fehlten, was zur Entwicklung von IMAP führte.,
Durch die Verwendung von IMAP unterstützt Ihr Linux-Mailserver drei Zugriffsmodi:
- Der Online-Modus ähnelt dem direkten Dateisystemzugriff auf den Linux-Mailserver.
- Der Offline-Modus ähnelt der Funktionsweise von POP, bei dem der Client außer beim Abrufen einer E-Mail vom Netzwerk getrennt ist. In diesem Modus behält der Server normalerweise keine Kopie der E-Mail bei.
- Der getrennte Modus ermöglicht es Benutzern, zwischengespeicherte Kopien ihrer E-Mails aufzubewahren, und der Server behält eine Kopie der E-Mail bei.,
Es gibt mehrere Implementierungen für IMAP und POP; Am beliebtesten ist der Dovecot-Server, der beide Protokolle bereitstellt.
POP3, POP3S,IMAP und IMAPS werden an den Ports 110, 995, 143 bzw.
Dovecot installieren
Die meisten Linux-Distributionen sind mit Dovecot vorinstalliert., Sie können jedoch Dovecot in Red Hat-basierten Distributionen wie folgt installieren:
$ dnf -y install dovecot
Debian-basierte Distributionen bieten die IMAP-und POP3-Funktionalität in zwei separaten Paketen, Sie können sie wie folgt installieren:
$ apt-get -y install dovecot-imapd dovecot-pop3d
Sie werden aufgefordert, selbstsignierte Zertifikate für die Verwendung von IMAP und POP3 über SSL/TLS zu erstellen. Wählen Sie Ja und geben Sie den Hostnamen für Ihr System ein, wenn Sie dazu aufgefordert werden.,
Dann können Sie den Dienst ausführen und beim Start wie folgt aktivieren:
$ systemctl start dovecot$ systemctl enable dovecot
Dovecot konfigurieren
Die Hauptkonfigurationsdatei für Dovecot ist
/etc/dovecot/dovecot.conf
Datei.
Einige Linux-Distributionen stellen die Konfiguration unter das Verzeichnis
/etc/dovecot/conf.d/
und verwenden die include-Direktive, um die Einstellungen in die Dateien aufzunehmen.
Sie können die folgende Liste der Parameter verwenden, um Dovecot zu konfigurieren:
Protokolle: die Protokolle, die Sie unterstützen möchten.
protocols = imap pop3 lmtp
lmtp bedeutet lokales Mailübertragungsprotokoll.,
listen: IP-Adressen zum Abhören.
listen = *, ::
Das Sternchen bedeutet alle IPV4-Schnittstellen und :: bedeutet alle ipv6-Schnittstellen
userdb: Benutzerdatenbank zur Authentifizierung von Benutzern.
userdb {driver = pam}
passdb: Passwort-Datenbank zur Authentifizierung von Benutzern.
passdb {driver = passwd}
mail_location: dieser Eintrag in /etc/dovecot/conf.d/10-mail.conf-Datei:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Secure Dovecot
Dovecot wird mit generischen SSL-Zertifikaten und Schlüsseldateien geliefert., Schauen Sie sich diese Datei an:
/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem
Wenn ein Benutzer versucht, eine Verbindung zum dovecot-Server herzustellen, wird eine Warnung angezeigt, da die Zertifikate nicht signiert sind.
Oder wenn Sie Let ’s Encrypt-Zertifikate verwenden, können Sie stattdessen darauf verweisen:
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem
Vergessen Sie nicht, dovecot-Serverports in Ihrer iptables-Firewall zu öffnen, indem Sie iptables-Regeln für Ports hinzufügen 110, 995, 143, 993, 25.
Dann speichern Sie die Regeln.,
Oder wenn Sie firewalld verwenden, können Sie Folgendes tun:
Und zur Fehlerbehebung überprüfen Sie erneut die Protokolldateien /var/log/messages, /var/log/maillog und /var/log/mail.Protokolldateien.
Linux Mail Server ist einer der einfachsten Server, insbesondere der Postfix Mail Server.
ich hoffe, Sie finden den Beitrag nützlich und interessant. Komm immer wieder zurück.
Danke.
Gründer von LikeGeeks. Ich arbeite seit 2010 als Linux-Systemadministrator., Ich bin verantwortlich für die Wartung, Sicherung und Fehlerbehebung von Linux-Servern für mehrere Clients auf der ganzen Welt. Ich liebe es, Shell-und Python-Skripte zu schreiben, um meine Arbeit zu automatisieren.
Schreibe einen Kommentar