Einrichten eines Postfix Mail Servers mit Dovecot und RoundCube auf CentOS 7

Bei diesem Text handelt es sich um eine maschinell erstellte Übersetzung. Eine überarbeitete Version ist in Planung.

Einführung

Erfahren Sie, wie Sie einen Mailserver auf einem Cloud Server unter CentOS 7 einrichten. Dieses Tutorial zeigt Postfix als SMTP-Server, Dovecot für POP/IMAP-Funktionalität und RoundCube als Webmail-Programm für Benutzer, die E-Mails über einen Webbrowser abrufen und empfangen möchten.

Das Tutorial führt Sie auch durch den Prozess der Erstellung und Verwendung eines selbstsignierten SSL-Zertifikats zur Sicherung ein- und ausgehender E-Mail-Verbindungen.

Anforderungen

  • Ein #Cloud Server## mit CentOS 7.
  • Postfix installiert und läuft.

Um den Status von Postfix auf dem Server zu überprüfen, verwenden Sie den Befehl:

sudo postfix status

Wenn Postfix installiert ist und läuft, sehen Sie die Ausgabe:

[user@localhost ~]# sudo postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 1681

Firewall-Zugang

Wenn Sie eine Firewall haben, müssen Sie den Zugriff auf die folgenden Ports erlauben:

  • SMTP: 25
  • POP3: 110
  • IMAP: 143
  • SMTP Sicherheit: 465
  • MSA: 587
  • IMAP Sicherheit: 993
  • POP3 Sicherheit: 995

Weitere Informationen über die Verwendung einer Firewall auf einem Cloud Server, finden Sie in unserer Dokumentation zu diesem Thema..

Erstellen eines SSL-Zertifikats

Wir werden ein selbstsigniertes SSL-Zertifikat erstellen, um ein- und ausgehende E-Mail-Verbindungen zu schützen:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout mailserver.key -out mailserver.crt -nodes -days 365

Beantworten Sie die Fragen bei der Eingabeaufforderung, oder drücken Sie einfach[Enter], um eine Antwort leer zu lassen. Dieser Befehl erstellt zwei Dateien: mailserver.key und mailserver.crt.

Erstellen Sie einen Ordner für die SSL-Zertifikatsdateien:

sudo mkdir /etc/postfix/ssl

Verschieben Sie dann die Dateien in diesen Ordner:

sudo mv mailserver.key /etc/postfix/ssl
sudo mv mailserver.crt /etc/postfix/ssl

Konfiguriert Postfix

Die folgenden Schritte ermöglichen eine grundlegende Postfix-Einrichtung, mit der Sie E-Mails senden und empfangen können. Weitere Informationen zu diesen Konfigurationen,  finden Sie in der offiziellen Dokumentation.

Bevor Sie mit den Konfigurationsänderungen beginnen, stellen Sie sicher, dass Sie die neueste Version von Postfix haben, indem Sie den Befehl ausführen:

sudo yum update postfix

Edit master.cf

Zuerst werden wir die Datei /etc/postfix/master.cf bearbeiten, damit der Einreichungsdämon E-Mails sicher senden und annehmen kann:

sudo nano /etc/postfix/master.cf

Zuerst werden wir die Datei /etc/postfix/master.cf bearbeiten, damit der Einreichungsdämon E-Mails sicher senden und annehmen kann:

#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

Speichern und beenden Sie die Datei.

Edit main.cf

The /etc/postfix/main.cf file contains the configuration options for your Postfix installation. Edit this file:

sudo nano /etc/postfix/main.cf

Nehmen Sie die folgenden Änderungen vor:

Hostname setzen

Bearbeiten Sie die Zeile, die liest:

#myhostname = host.domain.tld

Löschen Sie das Hash-Markierung (#), um die Zeile zu entkommentieren, und ersetzen Sie host.domain.tld durch den Hostnamen des Servers:

myhostname = example.com

Domäne festlegen

Bearbeiten Sie die Zeile, die liest:

#mydomain = domain.tld

Löschen Sie das Hash-Markierung (#), um die Zeile zu entkommentieren, und ersetzen Sie domain.tld durch die Domain, für die Sie eine E-Mail erhalten möchten:

mydomain = example.com

Andere Einstellungen aktivieren

Löschen Sie die Hash-Markierung (#), um die folgenden Zeilen zu entkommentieren:

#myorigin = $myhostname
#inet_interfaces = all
#inet_interfaces = localhost
#inet_protocols = all
#mydestination = $myhostname, localhost.$mydomain, localhost
#home_mailbox = Maildir/

Konfigurationen hinzufügen

Fügen Sie schließlich die folgenden Zeilen an das Ende der Datei hinzu:

smtpd_tls_key_file = /etc/postfix/ssl/mailserver.key
smtpd_tls_cert_file = /etc/postfix/ssl/mailserver.crt
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may

Speichern und beenden Sie die Datei und starten Sie dann Postfix neu, um die neuen Konfigurationen zu laden:

sudo systemctl restart postfix

Test Postfix With Telnet

Um Postfix zu testen, werden wir uns mit dem Server verbinden und ein einfaches "Handshake-Protokoll" durchführen, genau wie ein E-Mail-Programm.

Installieren Sie zunächst Telnet:

sudo yum install telnet

Sobald Telnet installiert ist, verwenden Sie es, um eine Verbindung zum SMTP-Port des Servers herzustellen:

telnet localhost 25

Der Server antwortet mit:

[user@localhost ~]$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Beginnen Sie, indem Sie dem Server mitteilen, von wem die Mail gesendet wird:

mail from: some-person@some-other-server.com

Dann teilen Sie dem Server mit, an wen Sie die E-Mail senden, und ersetzen Sie user@example.com durch Ihren eigenen Benutzernamen und Domainnamen:

rcpt to: user@example.com

Füge nun eine einfache Nachricht hinzu. Teilen Sie dem Server mit, dass Ihr Nachrichtentext hier beginnt:

data 

Geben Sie die Nachricht ein und folgen Sie ihr mit[Enter], einem Punkt . und[Enter]:

hello world 
.

Schließen Sie die Sitzung, indem Sie quit eingeben und Enter drücken.

Wenn Sie erfolgreich sind, erscheint Ihre Testnachricht unter /home/username/Maildir/new. Sie können diese Nachricht mit dem Befehl anzeigen:

ll /home/username/Maildir/new

Um die Nachricht zu lesen, kopieren und fügen Sie den Namen der Datei ein (es wird ein langer Name wie 1481229255.Vfd01I402b66aM546595.example.com sein) und lesen Sie sie mit mehr:

more 1481229255.Vfd01I402b66aM546595.example.com

Sie sehen die E-Mail-Nachricht zusammen mit allen Kopfzeileninformationen:

From some-person@some-other-server.com  Thu Dec  8 19:43:10 2016
Return-Path: <some-person@some-other-server.com>
X-Original-To: user@example.com
Delivered-To: user@example.com
Received: from localhost (localhost [127.0.0.1])
        by mail.example.com (Postfix) with SMTP id 6CFD589184
        for <user@example.com>; Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
Message-Id: <20161208194238.6CFD589184@mail.oxnardindustries.com>
Date: Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
From: some-person@some-other-server.com

hello world

Installation und Konfiguration von Dovecot

Wir werden Dovecot als POP3/IMAP-Server einsetzen, damit die Benutzer ihre E-Mails empfangen und überprüfen können. Weitere Informationen über Dovecot finden Sie auf der Website von Dovecot.

Installiere Dovecot mit dem Befehl:

sudo yum install dovecot

Sie können den Status von Dovecot mit dem Befehl überprüfen:

sudo systemctl status dovecot

Wenn Dovecot läuft, sehen Sie eine Ausgabe ähnlich wie:

[user@mail dovecot]$ sudo systemctl status dovecot -l
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-12-08 21:04:48 UTC; 3s ago
  Process: 8985 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)
 Main PID: 8989 (dovecot)
   CGroup: /system.slice/dovecot.service
           ├─8989 /usr/sbin/dovecot -F
           ├─8992 dovecot/anvil
           ├─8993 dovecot/log
           └─8995 dovecot/config

Dec 08 21:04:48 example.com systemd[1]: Starting Dovecot IMAP/POP3 email server...
Dec 08 21:04:48 example.com systemd[1]: Started Dovecot IMAP/POP3 email server.
Dec 08 21:04:48 example.com dovecot[8989]: master: Dovecot v2.2.10 starting up for imap (core dumps disabled)

Beachten Sie die Zeile, die lautet:

Das bedeutet, dass Dovecot installiert ist und läuft.

Roundcube installieren

Roundcube ist ein kostenloses, Open-Source-Webmail-Programm mit robusten, integrierten mehrsprachigen Funktionen und vielen praktischen Du kannst mehr über Roundcube auf  der Roundcube-Website lesen.

Roundcube benötigt mehrere PHP- und MariaDB-Pakete als Voraussetzung. Installieren und/oder aktualisieren Sie diese zuerst mit dem Befehl:

sudo yum install mysql mariadb-server php php-common php-json php-xml php-mbstring

Als nächstes erstellen Sie einen MariaDB-Benutzernamen und eine Datenbank für die Roundcube-Installation. Melden Sie sich mit dem Befehl am MariaDB-Client an:

mysql -u root -p 

Melden Sie sich mit dem Root-Passwort an und erstellen Sie dann eine Roundcube-Datenbank:

create database roundcube_db;

Legen Sie einen Benutzer für diese Datenbank an. Hinweis: Achten Sie darauf, dem Benutzer ein sicheres Passwort zu geben.

grant all on roundcube_db.* to roundcube_user@localhost identified by 'roundcube_db_password';

Ersetzen:

  • roundcube_user mit dem Benutzernamen, den Sie für Ihre Datenbank erstellen möchten.
  • roundcube_db_password mit einem sicheren Passwort für diesen Benutzer.

Verlassen Sie dann MariaDB:

quit;

Gehen Sie zum Dokumentenstamm Ihrer Website. Laden Sie die aktuelle Version von der Roundcube-Website herunter, indem Sie den Befehl verwenden:

sudo wget [download URL]

Um die Download-URL zu finden,  besuchen Sie die aktuelle Release-Seite auf der Roundcube-Website. Kopieren Sie die URL für den grünen Link "Download". Sie können es in die Befehlszeile einfügen, indem Sie auf Umschalt + Einfügen klicken.

Zum Beispiel, um die aktuelle stabile Version ab der Veröffentlichung dieses Artikels herunterzuladen, lautet der Befehl:

sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.2.3/roundcubemail-1.2.3-complete.tar.gz

Entkomprimieren Sie diese Datei mit dem Befehl:

sudo tar -xvf [filename]

Tipp: Sie können die Vervollständigung der Registerkarte verwenden, um diesen Vorgang zu erleichtern. Gib sudo tar -xvf roundcube ein und drücke dann Tab. Die Shell füllt automatisch den Rest des Dateinamens auf der Kommandozeile aus.

Um die oben heruntergeladene Datei zu entpacken, lautet der Befehl:

 sudo tar -xvf roundcubemail-1.2.3-complete.tar.gz

Benennen Sie das extrahierte Verzeichnis roundcube um:

sudo mv roundcubemail-1.2.3 roundcube

Stellen Sie den Eigentümer der Dateien auf den Apache-Benutzer ein:

sudo chown -R apache:apache roundcube

Um die Installation abzuschließen, wechseln Sie zu einem Browser und gehen Sie auf die URL http://example.com/roundcube/installer/.

Scrollen Sie nach unten auf der Seite und klicken Sie auf NÄCHSTE.

Im nächsten Abschnitt müssen Sie die Datenbankinformationen ausfüllen.

Geben Sie den Namen, den Benutzernamen und das Passwort der MariaDB-Datenbank ein, die Sie oben erstellt haben. Scrollen Sie dann nach unten und klicken Sie auf KONFIGURATION ERSTELLEN.

Hinweis: Es gibt viele mögliche Konfigurationen. Sie können sie jederzeit in der Zukunft ändern oder einstellen.

Nachdem die Konfigurationsdatei erstellt wurde, klicken Sie auf FORTSETZEN, um fortzufahren.

Klicken Sie auf die Schaltfläche Datenbank initialisieren, um die Datenbank einzurichten.

Testen Sie die Mailserver-Konfiguration, indem Sie eine Test-SMTP-E-Mail senden.

  • Absender: Deine neue E-Mail-Adresse auf diesem Server. (Zum Beispiel, jdoe@example.com)
  • Empfänger: Eine externe E-Mail-Adresse. (Zum Beispiel jdoe@gmail.com)

Klicken Sie dann auf Testmail senden. Überprüfen Sie nach einiger Zeit das externe E-Mail-Konto, um zu sehen, ob Ihre E-Mail gesendet wurde.

Testen Sie die IMAP-Konfigurationen, indem Sie sich mit Ihrem Benutzernamen und Passwort anmelden.

Beachten Sie, dass Ihr Benutzername NICHT Ihre vollständige E-Mail-Adresse ist. Melden Sie sich beispielsweise mit dem Benutzernamen jdoe an, nicht mit jdoe@example.com.

Nachdem die Konfiguration abgeschlossen ist, können Sie sich unter http://example.com/webmail anmelden, um E-Mails zu überprüfen und zu senden.