GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie den Postfix-Mailserver unter Ubuntu 16.04 ein (Dovecot - MySQL)

Im Allgemeinen bestehen alle Mailserver aus drei Hauptkomponenten:MTA, MDA und MUA. Jede Komponente spielt eine bestimmte Rolle beim Verschieben und Verwalten von E-Mail-Nachrichten und ist wichtig, um eine ordnungsgemäße E-Mail-Zustellung sicherzustellen. Daher ist das Einrichten eines Mailservers ein schwieriger Prozess, der die richtige Konfiguration dieser Komponenten erfordert. Am besten installieren und konfigurieren Sie jede einzelne Komponente einzeln, stellen sicher, dass jede einzelne funktioniert, und bauen Ihren Mailserver schrittweise auf.

In diesem Artikel stelle ich die Richtlinien bereit, wie wir einen Mailserver auf einem Ubuntu 16.04-Server mit Postix (MTA) und Dovecot (MDA) unter Verwendung einer externen Datenbank (MySQL) zur Verwaltung virtueller Benutzer konfigurieren können. Beginnen wir zunächst mit den Voraussetzungen für den Aufbau unseres Mailservers.

Voraussetzungen

  • MySQL installierter Server
  • Ein vollständig qualifizierter Hostname
  • Domainauflösung zu Ihrem Server

Nachdem wir unsere Voraussetzungen erfüllt haben, können wir damit beginnen, unseren Mailserver Stück für Stück aufzubauen.

Pakete installieren

Zuerst müssen wir unsere APT-Repository-Pakete aktualisieren und mit der Installation der erforderlichen Postfix- und Dovecot-Pakete beginnen.

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Während der Postfix-Installation werden Setup-Fenster für die Erstkonfiguration eingeblendet. Wir müssen während der Installationsphase die "Internetseite" auswählen und einen FQDN als unseren System-E-Mail-Namen festlegen. Dies geht mit der Installation der erforderlichen Pakete wie folgt weiter.

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) ..

Erstellen Sie eine Datenbank zur Verwaltung der E-Mail-Benutzer

Der nächste Schritt besteht darin, eine Datenbank für die Verwaltung der E-Mail-Benutzer und Domänen auf unserem Mailserver zu erstellen. Wie ich bereits sagte, verwalten wir die E-Mail-Benutzer mit dieser MySQL-Datenbank. Wir können MySQL installieren, wenn es nicht installiert ist, indem Sie diesen Befehl ausführen apt-get install mysql-server-5.7 .

Wir werden eine Datenbank namens "lnmailserver" mit drei Tabellen wie folgt erstellen:

  • Virtuelle Domains:Zum Verwalten von Domains
  • Virtuelle Benutzer:Zum Verwalten von E-Mail-Benutzern
  • Virtueller Alias:Zum Einrichten von Aliasen

Lassen Sie uns unsere Datenbanken mit all diesen Tabellen erstellen.

  • Erstellen einer Datenbank namens lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • Erstellen eines DB-Benutzers lnmailuser und den Zugriff auf diese Datenbank mit einem Passwort zu gewähren.
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
  • Wechsel zur Datenbank lnmailserver und Erstellen unserer drei Tabellen, nämlich virtual_domains, virtual_users und virtual_aliases mit Spezifikation und Tabellenformat.
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
  • Hinzufügen der Domänen, Benutzer und Aliase zu jeder dieser Tabellen gemäß unseren Anforderungen.
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec)
  • Überprüfen des Inhalts jeder Tabelle
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit

Postfix konfigurieren

Unser nächster Schritt besteht darin, die Postfix-Konfiguration gemäß unserem Konfigurationsplan zu ändern, wie wir SMTP-Verbindungen akzeptieren müssen. Bevor Sie Änderungen an der Konfiguration vornehmen, sollten Sie immer eine Sicherungskopie der Datei erstellen.

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp

Jetzt können wir die Datei öffnen und die folgenden Änderungen vornehmen.

  • Ändern Sie die folgenden Einträge, um die TLS-Unterstützung für die Verbindung der Benutzer zu aktivieren, geben Sie das SSL-Zertifikat an, das zum Sichern der Verbindung verwendet wird.
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

Ich verwende kostenlose Dovecot-SSL-Zertifikate, die hier angegeben sind. Mit dem folgenden Befehl können wir selbstsignierte SSL-Zertifikate von dovecot generieren. Wenn Sie ein gültiges SSL-Zertifikat für Ihren Hostnamen haben, können Sie stattdessen diese angeben.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • Wir müssen diese TLS-Parameter zur Postfix-Konfiguration hinzufügen, damit Postfix Dovecot zur Authentifizierung und zum Initialisieren von Verbindungen verwendet.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
  • Wir müssen die Standardeinträge von "mydestination" kommentieren und aktualisieren, damit nur "localhost" verwendet wird.
mydestination = localhost
  • Bestätigen Sie den myhostname-Teil, ob er richtig als unser FQDN-Hostname festgelegt ist.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • Durch die Änderung dieses Parameters kann Postfix das LMTP von Dovecot anstelle seines eigenen LDA verwenden, um E-Mails in den lokalen Postfächern zu speichern, wodurch die lokale E-Mail-Zustellung für alle in der MySQL-Datenbank aufgeführten Domänen aktiviert wird.
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • Zu guter Letzt müssen wir Postfix mitteilen, dass wir eine externe Datenbank verwenden, um die Domains, Benutzer und Aliase zu verwalten. Wir müssen den Konfigurationspfad hinzufügen, um diese Details aus den Datenbanktabellen abzurufen.
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Jetzt müssen wir diese oben genannten Dateien einzeln erstellen. Bitte sehen Sie meine Dateidetails unten:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Diese Dateien beschreiben, wie sich Postfix mit der externen Datenbank verbindet. Wir müssen Postfix neu starten, nachdem wir diese Änderungen vorgenommen haben.

root@ubuntu:~# service postfix restart

Wir müssen die folgenden Befehle ausführen, um die Konnektivität zu bestätigen und zu prüfen, ob Postfix die erforderlichen Informationen aus der Datenbank abrufen kann.

  • Um zu überprüfen, ob Postfix Ihre Domain in der Datenbank findet, können wir dies ausführen. Dies sollte '1' zurückgeben, wenn der Versuch erfolgreich ist.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Um zu überprüfen, ob Postfix Ihre benötigte E-Mail-Adresse in der Datenbank findet, können wir dies ausführen. Dies sollte auch '1' zurückgeben, wenn es erfolgreich ist.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Um zu überprüfen, ob Posfix Ihren E-Mail-Forwarder aus der Datenbank findet, können wir dies ausführen. Dies sollte Ihren E-Mail-Weiterleitungssatz zurückgeben, wenn der Versuch erfolgreich ist.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

Bitte beachten Sie:Sie können sich sicher mit Ihren E-Mail-Clients verbinden, indem Sie Postfix auf Port 587 verwenden. Sie können den Port öffnen, indem Sie den folgenden Teil in der Postfix-Master-Konfiguration auskommentieren:/etc/postfix/master.cf.

Sie müssen Postfix neu starten, nachdem Sie Änderungen an der Konfiguration vorgenommen haben. Mit dem Telnet-Befehl können Sie bestätigen, ob der Port offen ist.

Dovecot konfigurieren

Unser nächster Schritt besteht darin, unseren MDA so zu konfigurieren, dass POP3- oder IMAP-Protokolle und andere Konfigurationseinstellungen eine Verbindung zu einer externen Datenbank und Postfix herstellen können. Wir ändern hauptsächlich die folgenden Dateien.

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Es wird immer empfohlen, eine Sicherungskopie dieser Dateien zu erstellen, bevor Sie Konfigurationsänderungen vornehmen. Wir können jede Datei einzeln ändern.

Ändern der Dovecot-Hauptkonfigurationsdatei:/etc/dovecot/dovecot.conf

  • Die folgende Einstellung ist standardmäßig unkommentiert. Aber wir müssen sicherstellen, dass es unkommentiert ist.
!include conf.d/*.conf
  • Wir können alle erforderlichen Protokolle in dieser Anweisung aktivieren. Wenn Sie POP3 aktivieren müssen, können wir pop3 an diese Zeile anhängen und auch sicherstellen, dass die erforderlichen Dovecot-Pakete "dovecot-pop3d" installiert werden, um dies zu aktivieren.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Ändern der Dovecot Mail-Konfigurationsdatei:/etc/dovecot/conf.d/10-mail.conf

  • Wir müssen den folgenden Parameter "mail_location" in der Konfiguration finden und mit unserem Mailspeicherpfad aktualisieren. Ich habe meine E-Mail-Ordner im Ordner "/var/mail/vhosts/". Daher habe ich den Dateipfad wie folgt geändert:
mail_location = maildir:/var/mail/vhosts/%d/%n
  • Wir müssen die "mail_privileged_group "-Parameter an "mail ".
mail_privileged_group = mail

Sobald dies erledigt ist, müssen wir sicherstellen, dass wir die richtigen Eigentümer und Berechtigungen für unsere E-Mail-Ordner festgelegt haben. Erstellen Sie die E-Mail-Ordner für jede Domain, die wir in der MySQL-Tabelle in diesem Ordner "/var/mail/vhosts" registriert haben, und legen Sie die richtigen Eigentümer/Berechtigungen fest.

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail

Ändern der Dovecot-Authentifizierungsdatei:/etc/dovecot/conf.d/10-auth.conf

  • Deaktivieren Sie die Klartext-Authentifizierung, um die Sicherheit zu gewährleisten, indem Sie den folgenden Parameter auf "yes" ändern.
disable_plaintext_auth = yes
  • Ändern Sie den Parameter "auth_mechanisms" wie folgt:
auth_mechanisms = plain login
  • Wir müssen die erwähnte Zeile auskommentieren und die MySQL-Authentifizierung aktivieren, indem wir die Zeile auth-sql.conf.ext wie folgt auskommentieren:
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Ändern der Authentifizierungs-SQL-Datei:/etc/dovecot/conf.d/auth-sql.conf.ext

Stellen Sie sicher, dass Ihre MySQL-Authentifizierungsdatei so aussieht.

Ändern der Dovecot + MySQL-Konfigurationsdatei:/etc/dovecot/dovecot-sql.conf.ext

  • Wir müssen den "driver"-Parameter auskommentieren und wie unten auf MySQL setzen:
driver = mysql
  • Ändern und setzen Sie die Verbindungsparameter gemäß unserem Datenbanknamen und Benutzer.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • Ändern Sie das default_pass_scheme in SHA-512 und die password_query-Zeile wie folgt:
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Bitte beachten Sie:Legen Sie Berechtigungen für das /etc/dovecot-Verzeichnis fest, damit der vmail-Benutzer es verwenden kann.

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Ändern der Konfigurationsdatei von Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Wir ändern vier Abschnitte in dieser Konfigurationsdatei. IMAP-Abschnitt, lokaler E-Mail-Übertragungsabschnitt, Authentifizierungsabschnitt und letzter authentifizierender Arbeitsprozessabschnitt. Bitte sehen Sie sich die Screenshots der einzelnen Abschnitte unten an, um die Änderungen anzuzeigen:

Ändern der SSL-Konfiguration:/etc/dovecot/conf.d/10-ssl.conf

Wir ändern diesen Abschnitt, um SSL für die eingehenden/ausgehenden Verbindungen zu aktivieren. Diese Konfigurationseinstellungen sind optional. Aber ich würde diese für mehr Sicherheit empfehlen.

  • Ändern Sie den SSL-Parameter in erforderlich
ssl = required
  • Geben Sie das SSL-Zertifikat und den Speicherort der Schlüsseldatei für unsere Konfiguration an. Sie können sich den Screenshot für weitere Details ansehen.

Sie müssen Dovecot nach all diesen Änderungen neu starten.

Das ist alles :) Wir haben die Einrichtung unseres Mailservers abgeschlossen. Hurra! Sie können auf Ihr E-Mail-Konto mit Ihrem Benutzernamen und Passwort auf jedem Ihrer bevorzugten E-Mail-Clients zugreifen. Ich konnte mit den folgenden Einstellungen erfolgreich auf mein E-Mail-Konto zugreifen:

Ich hoffe, Sie haben es genossen, diesen Artikel zu lesen. Ich würde Ihre wertvollen Vorschläge und Kommentare dazu empfehlen.
Ich wünsche Ihnen einen schönen Tag!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • Überprüfen des Inhalts jeder Tabelle
 
 
 

Postfix konfigurieren

Unser nächster Schritt besteht darin, die Postfix-Konfiguration gemäß unserem Konfigurationsplan zu ändern, wie wir SMTP-Verbindungen akzeptieren müssen. Bevor Sie Änderungen an der Konfiguration vornehmen, sollten Sie immer eine Sicherungskopie der Datei erstellen.

 

Jetzt können wir die Datei öffnen und die folgenden Änderungen vornehmen.

  • Ändern Sie die folgenden Einträge, um die TLS-Unterstützung für die Verbindung der Benutzer zu aktivieren, geben Sie das SSL-Zertifikat an, das zum Sichern der Verbindung verwendet wird.
 

Ich verwende kostenlose Dovecot-SSL-Zertifikate, die hier angegeben sind. Mit dem folgenden Befehl können wir selbstsignierte SSL-Zertifikate von dovecot generieren. Wenn Sie ein gültiges SSL-Zertifikat für Ihren Hostnamen haben, können Sie stattdessen diese angeben.

 
  • Wir müssen diese TLS-Parameter zur Postfix-Konfiguration hinzufügen, damit Postfix Dovecot zur Authentifizierung und zum Initialisieren von Verbindungen verwendet.
 
  • Wir müssen die Standardeinträge von "mydestination" kommentieren und aktualisieren, damit nur "localhost" verwendet wird.
 
  • Bestätigen Sie den myhostname-Teil, ob er richtig als unser FQDN-Hostname festgelegt ist.
 
  • Das Ändern dieses Parameters ermöglicht es Postfix, Dovecots LMTP anstelle seines eigenen LDA zu verwenden, um E-Mails in den lokalen Postfächern zu speichern, wodurch die lokale E-Mail-Zustellung für alle in der MySQL-Datenbank aufgeführten Domänen aktiviert wird.
     
  • Zu guter Letzt müssen wir Postfix mitteilen, dass wir eine externe Datenbank verwenden, um die Domains, Benutzer und Aliase zu verwalten. Wir müssen den Konfigurationspfad hinzufügen, um diese Details aus den Datenbanktabellen abzurufen.
 

Jetzt müssen wir diese oben genannten Dateien einzeln erstellen. Bitte sehen Sie meine Dateidetails unten:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Diese Dateien beschreiben, wie sich Postfix mit der externen Datenbank verbindet. Wir müssen Postfix neu starten, nachdem wir diese Änderungen vorgenommen haben.

 

Wir müssen die folgenden Befehle ausführen, um die Konnektivität zu bestätigen und zu prüfen, ob Postfix die erforderlichen Informationen aus der Datenbank abrufen kann.

  • Um zu überprüfen, ob Postfix Ihre Domain in der Datenbank findet, können wir dies ausführen. Dies sollte '1' zurückgeben, wenn der Versuch erfolgreich ist.
 
  • Um zu überprüfen, ob Postfix Ihre benötigte E-Mail-Adresse in der Datenbank findet, können wir dies ausführen. Dies sollte auch '1' zurückgeben, wenn es erfolgreich ist.
 
  • Um zu überprüfen, ob Posfix Ihren E-Mail-Forwarder aus der Datenbank findet, können wir dies ausführen. Dies sollte Ihren E-Mail-Weiterleitungssatz zurückgeben, wenn der Versuch erfolgreich ist.
 

Bitte beachten Sie:Sie können sich sicher mit Ihren E-Mail-Clients verbinden, indem Sie Postfix auf Port 587 verwenden. Sie können den Port öffnen, indem Sie den folgenden Teil in der Postfix-Master-Konfiguration auskommentieren:/etc/postfix/master.cf.

Sie müssen Postfix neu starten, nachdem Sie Änderungen an der Konfiguration vorgenommen haben. Mit dem Telnet-Befehl können Sie bestätigen, ob der Port offen ist.

Dovecot konfigurieren

Unser nächster Schritt besteht darin, unseren MDA so zu konfigurieren, dass POP3- oder IMAP-Protokolle und andere Konfigurationseinstellungen eine Verbindung zu einer externen Datenbank und Postfix herstellen können. Wir ändern hauptsächlich die folgenden Dateien.

 

Es wird immer empfohlen, eine Sicherungskopie dieser Dateien zu erstellen, bevor Sie Konfigurationsänderungen vornehmen. Wir können jede Datei einzeln ändern.

Ändern der Dovecot-Hauptkonfigurationsdatei:/etc/dovecot/dovecot.conf

  • Die folgende Einstellung ist standardmäßig unkommentiert. Aber wir müssen sicherstellen, dass es unkommentiert ist.
 
  • Wir können alle erforderlichen Protokolle in dieser Anweisung aktivieren. Wenn Sie POP3 aktivieren müssen, können wir pop3 an diese Zeile anhängen und auch sicherstellen, dass die erforderlichen Dovecot-Pakete "dovecot-pop3d" installiert werden, um dies zu aktivieren.
 

Ändern der Dovecot Mail-Konfigurationsdatei:/etc/dovecot/conf.d/10-mail.conf

  • Wir müssen den folgenden Parameter "mail_location" in der Konfiguration finden und mit unserem Mailspeicherpfad aktualisieren. Ich habe meine E-Mail-Ordner im Ordner "/var/mail/vhosts/". Daher habe ich den Dateipfad wie folgt geändert:
 
  • Wir müssen die "mail_privileged_group "-Parameter an "mail ".
 

Sobald dies erledigt ist, müssen wir sicherstellen, dass wir die richtigen Eigentümer und Berechtigungen für unsere E-Mail-Ordner festgelegt haben. Erstellen Sie die E-Mail-Ordner für jede Domain, die wir in der MySQL-Tabelle in diesem Ordner "/var/mail/vhosts" registriert haben, und legen Sie die richtigen Eigentümer/Berechtigungen fest.

 

Ändern der Dovecot-Authentifizierungsdatei:/etc/dovecot/conf.d/10-auth.conf

  • Deaktivieren Sie die Klartext-Authentifizierung, um die Sicherheit zu gewährleisten, indem Sie den folgenden Parameter auf "yes" ändern.
 
  • Ändern Sie den Parameter "auth_mechanisms" wie folgt:
 
  • Wir müssen die erwähnte Zeile auskommentieren und die MySQL-Authentifizierung aktivieren, indem wir die Zeile auth-sql.conf.ext wie folgt auskommentieren:
 

Ändern der Authentifizierungs-SQL-Datei:/etc/dovecot/conf.d/auth-sql.conf.ext

Stellen Sie sicher, dass Ihre MySQL-Authentifizierungsdatei so aussieht.

Ändern der Dovecot + MySQL-Konfigurationsdatei:/etc/dovecot/dovecot-sql.conf.ext

  • Wir müssen den "driver"-Parameter auskommentieren und wie unten auf MySQL setzen:
 
  • Ändern und setzen Sie die Verbindungsparameter gemäß unserem Datenbanknamen und Benutzer.
 
  • Ändern Sie das default_pass_scheme in SHA-512 und die password_query-Zeile wie folgt:
 

Bitte beachten Sie:Legen Sie Berechtigungen für das /etc/dovecot-Verzeichnis fest, damit der vmail-Benutzer es verwenden kann.

 

Ändern der Konfigurationsdatei von Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Wir ändern vier Abschnitte in dieser Konfigurationsdatei. IMAP-Abschnitt, lokaler E-Mail-Übertragungsabschnitt, Authentifizierungsabschnitt und letzter authentifizierender Arbeitsprozessabschnitt. Bitte sehen Sie sich die Screenshots der einzelnen Abschnitte unten an, um die Änderungen anzuzeigen:

Ändern der SSL-Konfiguration:/etc/dovecot/conf.d/10-ssl.conf

Wir ändern diesen Abschnitt, um SSL für die eingehenden/ausgehenden Verbindungen zu aktivieren. Diese Konfigurationseinstellungen sind optional. Aber ich würde diese für mehr Sicherheit empfehlen.

  • Ändern Sie den SSL-Parameter in erforderlich
 
  • Geben Sie das SSL-Zertifikat und den Speicherort der Schlüsseldatei für unsere Konfiguration an. Sie können sich den Screenshot für weitere Details ansehen.

Sie müssen Dovecot nach all diesen Änderungen neu starten.

Das ist alles :) Wir haben die Einrichtung unseres Mailservers abgeschlossen. Hurra! Sie können auf Ihr E-Mail-Konto mit Ihrem Benutzernamen und Passwort auf jedem Ihrer bevorzugten E-Mail-Clients zugreifen. Ich konnte mit den folgenden Einstellungen erfolgreich auf mein E-Mail-Konto zugreifen:

Ich hoffe, Sie haben es genossen, diesen Artikel zu lesen. Ich würde Ihre wertvollen Vorschläge und Kommentare dazu empfehlen.
Ich wünsche Ihnen einen schönen Tag!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • Überprüfen des Inhalts jeder Tabelle
 
 
 

Postfix konfigurieren

Unser nächster Schritt besteht darin, die Postfix-Konfiguration gemäß unserem Konfigurationsplan zu ändern, wie wir SMTP-Verbindungen akzeptieren müssen. Bevor Sie Änderungen an der Konfiguration vornehmen, sollten Sie immer eine Sicherungskopie der Datei erstellen.

 

Jetzt können wir die Datei öffnen und die folgenden Änderungen vornehmen.

  • Ändern Sie die folgenden Einträge, um die TLS-Unterstützung für die Verbindung der Benutzer zu aktivieren, und geben Sie das SSL-Zertifikat an, das zum Sichern der Verbindung verwendet wird.
 

Ich verwende kostenlose Dovecot-SSL-Zertifikate, die hier angegeben sind. Mit dem folgenden Befehl können wir selbstsignierte SSL-Zertifikate von dovecot generieren. Wenn Sie ein gültiges SSL-Zertifikat für Ihren Hostnamen haben, können Sie stattdessen diese angeben.

 
  • Wir müssen diese TLS-Parameter zur Postfix-Konfiguration hinzufügen, damit Postfix Dovecot zur Authentifizierung und zum Initialisieren von Verbindungen verwendet.
 
  • Wir müssen die Standardeinträge von "mydestination" kommentieren und aktualisieren, damit nur "localhost" verwendet wird.
 
  • Bestätigen Sie den myhostname-Teil, ob er richtig als unser FQDN-Hostname festgelegt ist.
 
  • Das Ändern dieses Parameters ermöglicht es Postfix, Dovecots LMTP anstelle seines eigenen LDA zu verwenden, um E-Mails in den lokalen Postfächern zu speichern, wodurch die lokale E-Mail-Zustellung für alle in der MySQL-Datenbank aufgeführten Domänen aktiviert wird.
     
  • Zu guter Letzt müssen wir Postfix mitteilen, dass wir eine externe Datenbank verwenden, um die Domains, Benutzer und Aliase zu verwalten. Wir müssen den Konfigurationspfad hinzufügen, um diese Details aus den Datenbanktabellen abzurufen.
 

Jetzt müssen wir diese oben genannten Dateien einzeln erstellen. Bitte sehen Sie meine Dateidetails unten:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Diese Dateien beschreiben, wie sich Postfix mit der externen Datenbank verbindet. Wir müssen Postfix neu starten, nachdem wir diese Änderungen vorgenommen haben.

 

Wir müssen die folgenden Befehle ausführen, um die Konnektivität zu bestätigen und zu prüfen, ob Postfix die erforderlichen Informationen aus der Datenbank abrufen kann.

  • Um zu überprüfen, ob Postfix Ihre Domain in der Datenbank findet, können wir dies ausführen. Dies sollte '1' zurückgeben, wenn der Versuch erfolgreich ist.
 
  • Um zu überprüfen, ob Postfix Ihre benötigte E-Mail-Adresse in der Datenbank findet, können wir dies ausführen. Dies sollte auch '1' zurückgeben, wenn es erfolgreich ist.
 
  • Um zu überprüfen, ob Posfix Ihren E-Mail-Forwarder aus der Datenbank findet, können wir dies ausführen. Dies sollte Ihren E-Mail-Weiterleitungssatz zurückgeben, wenn der Versuch erfolgreich ist.
 

Bitte beachten Sie:Sie können sich sicher mit Ihren E-Mail-Clients verbinden, indem Sie Postfix auf Port 587 verwenden. Sie können den Port öffnen, indem Sie den folgenden Teil in der Postfix-Master-Konfiguration auskommentieren:/etc/postfix/master.cf.

Sie müssen Postfix neu starten, nachdem Sie Änderungen an der Konfiguration vorgenommen haben. Mit dem Telnet-Befehl können Sie bestätigen, ob der Port offen ist.

Dovecot konfigurieren

Unser nächster Schritt besteht darin, unseren MDA so zu konfigurieren, dass POP3- oder IMAP-Protokolle und andere Konfigurationseinstellungen eine Verbindung zu einer externen Datenbank und Postfix herstellen können. Wir ändern hauptsächlich die folgenden Dateien.

 

Es wird immer empfohlen, eine Sicherungskopie dieser Dateien zu erstellen, bevor Sie Konfigurationsänderungen vornehmen. Wir können jede Datei einzeln ändern.

Ändern der Dovecot-Hauptkonfigurationsdatei:/etc/dovecot/dovecot.conf

  • Die folgende Einstellung ist standardmäßig unkommentiert. Aber wir müssen sicherstellen, dass es unkommentiert ist.
 
  • Wir können alle erforderlichen Protokolle in dieser Anweisung aktivieren. Wenn Sie POP3 aktivieren müssen, können wir pop3 an diese Zeile anhängen und auch sicherstellen, dass die erforderlichen Dovecot-Pakete "dovecot-pop3d" installiert werden, um dies zu aktivieren.
 

Ändern der Dovecot Mail-Konfigurationsdatei:/etc/dovecot/conf.d/10-mail.conf

  • Wir müssen den folgenden Parameter "mail_location" in der Konfiguration finden und mit unserem Mailspeicherpfad aktualisieren. Ich habe meine E-Mail-Ordner im Ordner "/var/mail/vhosts/". Daher habe ich den Dateipfad wie folgt geändert:
 
  • Wir müssen die "mail_privileged_group "-Parameter an "mail ".
 

Sobald dies erledigt ist, müssen wir sicherstellen, dass wir die richtigen Eigentümer und Berechtigungen für unsere E-Mail-Ordner festgelegt haben. Erstellen Sie die E-Mail-Ordner für jede Domain, die wir in der MySQL-Tabelle in diesem Ordner "/var/mail/vhosts" registriert haben, und legen Sie die richtigen Eigentümer/Berechtigungen fest.

 

Ändern der Dovecot-Authentifizierungsdatei:/etc/dovecot/conf.d/10-auth.conf

  • Deaktivieren Sie die Klartext-Authentifizierung, um die Sicherheit zu gewährleisten, indem Sie den folgenden Parameter auf "Ja" ändern.
 
  • Ändern Sie den Parameter "auth_mechanisms" wie folgt:
 
  • We need to comment the mentioned line and enable the MySQL authentication by uncommenting the auth-sql.conf.ext line as below:
 

Modifying the authentication SQL file :/etc/dovecot/conf.d/auth-sql.conf.ext

Make sure your MySQL authentication file looks like this.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup. Hurra! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

I hope you enjoyed reading this article. I would recommend your valuable suggestions and comments on this.
Have a Nice day!


Ubuntu
  1. So installieren Sie DKIM auf einem Ubuntu-Server

  2. So richten Sie den Zimbra-Mailserver unter Ubuntu 16 ein

  3. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

  4. So installieren Sie MySQL Server unter Ubuntu 16.04

  5. So installieren Sie MySQL Server unter Ubuntu 17.04

So installieren Sie MySQL-Server in Ubuntu

So installieren Sie den Postfix-Mailserver unter Ubuntu 20.04

So richten Sie einen vollständigen Mailserver (Postfix) mit „SquirrelMail“ (Webmail) unter Ubuntu/Debian ein

Postfix-Mailserver-Setup unter Ubuntu 14.04

Postfix-Mailserver-Setup auf Ubuntu 20.04

So installieren Sie MySQL Server unter Ubuntu 20.04