So stellen Sie Postfix -Mailserver und doveCot mit Datenbank (MariADB) sicher - Teil 1 ein

So stellen Sie Postfix -Mailserver und doveCot mit Datenbank (MariADB) sicher - Teil 1 ein
Setup Postfix Mail Server in CentOS 7 einrichten

In diesem 3-Artikeln Serie Wir werden diskutieren, wie man a einrichtet Postfix Mailserver mit Antiviren- und Spamschutz in a Centos 7 Kasten. Bitte beachten Sie, dass diese Anweisungen auch zu anderen Verteilungen wie z Rhel/Fedora Und Debian/Ubuntu.

Teil 1: So erstellen und richten Sie Postfix Mail Server -Datenbank (MariADB) sicher und einrichten Teil 2: So konfigurieren Sie Postfix und Dovecot mit virtuellen Domänenbenutzern unter Linux Teil 3: So fügen Sie dem Postfix -Mailserver Antiviren- und Spam -Schutz mit Clamav und Spamassassin hinzu Teil 4: So installieren und konfigurieren Sie den RoundCube -Webmail -Client mit virtuellen Benutzern in Postfix Teil 5: So verwenden Sie Sagator, ein Antivirus/Antispam -Gateway, um Ihren Mailserver zu schützen

Unser Plan besteht darin, E -Mail -Konten und Aliase in a zu speichern Mariadb Datenbank, die zu unserer Bequemlichkeit dient, wird durch verwaltet phpmyadmin.

Wenn Sie nicht installieren möchten phpmyadmin, oder mit einem CLII-Server zu tun haben, werden wir auch den äquivalenten Code zum Erstellen der Datenbanktabellen bereitstellen, die in dieser Serie verwendet werden.

Da ein Mailserver in Betrieb genommen wird, ist es eine der wichtigsten Aufgaben, die normalerweise Systemadministratoren und -ingenieuren zugeordnet sind, auch einige Tipps zur effizienten Ausführung dieses kritischen Dienstes in einer Produktionsumgebung bereitstellen.

Erstellen Sie A- und MX -Datensätze für Domain in DNS

Bevor Sie weiter fortfahren, gibt es einige Voraussetzungen, die erfüllt sein müssen:

1. Sie benötigen eine gültige Domain, die über einen Domain -Registrar registriert ist. In dieser Serie werden wir verwenden www.LinuxNewz.com, das wurde durch registriert Los Papa.

2. Diese Domäne muss auf die externe IP Ihres VPS- oder Cloud -Hosting -Anbieters hingewiesen werden. Wenn Sie Ihren Mailserver selbst veranstalten, können Sie den von Freedns angebotenen Dienst verwenden (erfordert die Registrierung).

In jedem Fall müssen Sie einrichten A Und Mx Aufzeichnungen auch für Ihre Domain (Sie erfahren mehr über MX -Datensätze in diesen FAQs von Google).

Sobald Sie hinzugefügt sind, können Sie sie mit einem Online -Tool wie nach wie vor nachsehen Mxtoolbox oder Viewdns Um sicherzustellen, dass sie ordnungsgemäß eingerichtet sind.

Wichtig: Bitte beachten Sie, dass es eine Weile dauern kann (1-2 Tage) bis die DNS -Datensätze propagiert sind und Ihre Domain verfügbar ist. In der Zwischenzeit können Sie über seine IP -Adresse auf Ihre VPS zugreifen, um die unten angegebenen Aufgaben auszuführen.

3. Konfigurieren Sie die Fqdn (Voll qualifizierter Domainname) Ihrer VPS:

# Hostnamectl Set-Hostname YourHostName 

So setzen Sie den System -Hostnamen ein und bearbeiten Sie dann /etc/hosts wie folgt (ersetzen AAA.BBB.CCC.DDD, Ihr hostname, Und Deine Domain Mit der öffentlichen IP Ihres Servers, Ihres Hostnamens und Ihrer registrierten Domäne):

AAA.BBB.CCC.DDD YourHostName.Deine Domain.com YouHostname 

Wo Ihr hostname ist der System -Hostname, der zuvor verwendet wurde hostnamectl Befehl.

Installieren der erforderlichen Softwarepakete

4. So installieren Sie die erforderlichen Softwarepakete wie Apache, Postfix, Dovecot, Mariadb, Phpmyadmin, Spamassassin, Clamav usw., Sie müssen die aktivieren Epel Repository:

# yum install epel-release 

5. Sobald Sie die obigen Schritte befolgt haben, installieren Sie die erforderlichen Pakete:

In CentOS -basierten Systemen:

# yum update && yum install httpd httpd-devel postfix dovecot dovecot-mysql spamassassin clamav clamav-scanner clamav-scanner-systemd clamav-data clamav-update mariadb-server phpMyadmin 

In Debian und Derivaten:

# APTITIDE UPDATE && Eignung APache2 postfix dovecot-core dovecot-iMapd dovecot-pop3d dovecot-lmtpd dovecot-mysql spamassassin clamav clamav-däemon clamav-base mariadb-server PHP5 PHPMYADMIN PHPMYADMIN PHPMYADMIN 

6. Starten und aktivieren Sie die Web- und Datenbankserver:

In CentOS -basierten Systemen:

# Systemctl aktivieren 

In Debian und Derivaten:

# SystemCTL aktivieren apache2 mariadb # systemctl start apache2 mariadb 

Wenn die Installation abgeschlossen ist und der oben genannte Dienst aktiviert und ausgeführt wird, werden wir zunächst die Datenbank und Tabellen einrichten, um Informationen zu Postfix -Mail -Konten zu speichern.

Erstellen von Postfix -Mail -Konten -Datenbank

Der Einfachheit halber werden wir verwenden phpmyadmin, ein Werkzeug, das die Verwaltung von verabreicht hat Mysql / Mariadb Datenbanken über eine Weboberfläche, um die E -Mail -Datenbank zu erstellen und zu verwalten.

Um sich bei diesem Tool anzumelden und zu verwenden, müssen wir jedoch folgende Schritte befolgen:

7. Aktivieren Sie das Mariadb Konto (Sie können dies tun, indem Sie das ausführen mysql_secure_installation Dienstprogramm aus der Befehlszeile, ein Kennwort für das Benutzerroot zugewiesen und die vom Tool vorgeschlagenen Standardeinstellungen außer “gesetzt werdenRoot Anmeldung aus der Ferne nicht zulassen?„:

Deaktivieren Sie die MySQL Root Login

oder auf andere Weise einen neuen Datenbankbenutzer erstellen:

Mariadb [(keine)]> user 'dba'@'localhost' erstellen durch 'yourpasswordhere'; Mariadb [(Keine)]> Geben Sie alle Privilegien auf * Gewähren . * Zu 'dba'@'localhost'; Mariadb [(keine)]> Flush -Privilegien; 
Erstellen Sie einen neuen Datenbankbenutzer

Sichern Sie Apache mit einem Zertifikat

8. Da wir eine Webanwendung verwenden, um die E -Mail -Server -Datenbank zu verwalten, müssen wir die erforderlichen Vorkehrungen zum Schutz von Verbindungen zum Server treffen. Ansonsten unsere phpmyadmin Die Anmeldeinformationen werden in einfachem Text über den Kabel wandern.

Aufstellen Transportschichtsicherheit (Tls) Befolgen Sie in Ihrem Server die in beschriebenen Schritte in Teil 8 der RHCE -Serie: Implementierung von HTTPS über TLS mithilfe von Network Security Service (NSS) für Apache, bevor Sie weiter fortfahren.

Notiz: Wenn Sie keinen Zugriff auf die Konsole des Servers haben, müssen Sie einen anderen Weg finden, um die erforderliche Entropie während der Schlüsselerstellung zu generieren. In diesem Fall möchten Sie möglicherweise eine Installation in Betracht ziehen RNG-Tools und läuft rngd -r /dev /urandom.

Konfigurieren und sichern Sie PhpMyAdmin

9. In /etc/httpd/conf.d/phpmyadmin.Conf (Centos) oder /etc/phpmyadmin/apache.Conf (Debian und Derivate) finden Sie alle Vorkommen der folgenden Zeilen und verweisen Sie auf die öffentliche IP Ihres Servers:

Erfordern IP AAA.BBB.CCC.DDD erlauben von AAA.BBB.CCC.DDD 

Deaktivieren Sie außerdem die Standard -Aliase und erstellen. Dies wird dazu beitragen, die Website gegen Bots und externe Angreifer zu sichern, die sich ansprechen www.Deine Domain.com/phpmyadmin oder www.Deine Domain.com/phpmyadmin.

#Alias ​​/phpmyadmin /usr /share /phpmyadmin #alias /phpmyadmin /usr /share /phpmyadmin alias /Managedb /usr /share /phpmyadmin 

Fügen Sie auch die folgende Linie innen hinzu :

Alle gewährt 
Sichern Sie PhpMyAdmin

Erstellen Sie Apache VirtualHost für die Domäne

10. Stellen Sie sicher, dass Ihre Domain zu den aktivierten Websites hinzugefügt wird. Erstellen /etc/httpd/sites-verfügbar/linuxnewz.com.Conf (Centos) oder /etc/apache2/sites-verfügbar/linuxnewz.com (Debian) mit den folgenden Inhalten (stellen Sie sicher, dass die Dokument Root, Standorte verfügbar, Und Websites fähig Verzeichnisse existieren):

 Servername www.LinuxNewz.Com Serveralias LinuxNewz.com documentroot/var/www/linuxnewz.com/public_html ERRAGELOG/var/www/linuxnewz.com/fehler.Log CustomLog/var/www/linuxnewz anmelden.com/Anfragen.Log -kombinierte Optionen Indizes folgen  

und der symbolische Link:

Auf CentOS:
# ln -s/etc/httpd/seiten -verfügbare/linuxnewz.com.conf/etc/httpd/sites-fähig/linuxnewz.com.Conf 
Auf Debian:
# A2ensit LinuxNewz.com 

und du bist fertig.

Setup Postfix -E -Mail -Datenbank einrichten

11. Jetzt können Sie Ihre öffnen phpmyadmin Schnittstelle bei https: // www.Deine Domain.com/ManagedB (beachten Sie, dass verwaltet ist der Alias, den wir früher für das PhpMyAdmin -Datenverzeichnis eingerichtet haben).

Wenn dies nicht funktioniert (was durch eine Verzögerung in der Ausbreitung oder mangelnde Konfiguration von DNS -Datensätzen verursacht werden kann) können Sie versuchen www.Deine Domain.com:

PhpMyAdmin Login

Nachdem Sie sich bei PHPMYADMIN angemeldet haben, sehen Sie die folgende Schnittstelle. Klicken Neu Im linken Abschnitt:

Erstellen Sie eine neue Datenbank in PhpMyAdmin

Geben Sie einen Namen für die Datenbank ein (EMAILSERVER_DB In diesem Fall müssen Sie keine Zusammenfassung auswählen) und klicken Sie nicht Erstellen:

Geben Sie den Datenbanknamen ein

12. Wählen Sie auf dem nächsten Bildschirm a Name Für die erste Tabelle (wo wir die Domains speichern, wird dieser Mailserver verwaltet.

Bitte beachten Sie, dass Sie, selbst wenn wir in dieser Serie nur eine Domain verwalten, später mehr hinzufügen können) und die Anzahl der gewünschten Felder, dann klicken Gehen. Sie werden aufgefordert, diese beiden Felder zu benennen und zu konfigurieren, in denen Sie sicher vorgehen können, wie in den folgenden Bildern angegeben:

Datenbanktabelle erstellen

Wenn Sie wählen Primär unter Index für Domainid, Akzeptieren Sie die Standardwerte und klicken Sie auf Gehen:

Datenbankindex hinzufügen

Alternativ können Sie klicken Vorschau SQL Um den Code unter der Motorhaube zu sehen:

Erstellen Sie Tabelle 'E -Mailserver_DB'.'Domains_tbl' ('DomainId' int nicht null auto_increment, 'domainname' varchar (50) nicht null, primärer Key ('DomainId')) Engine = InnoDB; 
Datenbanktabelle Indexcode

Wenn Sie bereit sind, klicken Sie auf Speichern Änderungen bestätigen. Sie können dann klicken können Neu unter EMAILSERVER_DB Um weiterhin Tabellen zu erstellen:

Erstellen Sie Tabellen unter Datenbank

13. Befolgen Sie nun diese Schritte, um den Rest der Tabellen zu erstellen. Klick auf das Sql Registerkarte und geben Sie den angegebenen Code für jedes Datenbankobjekt ein.

Beachten Sie, dass wir in diesem Fall die Tabelle mithilfe einer SQL -Abfrage aufgrund der Beziehungen erstellt haben, die zwischen verschiedenen Tabellen hergestellt werden müssen:

User_tbl

Erstellen Sie die Tabelle 'user_tbl' ('userId' int nicht null auto_increment, 'domainId' int nicht null, 'passwart' varchar (100) nicht null, 'E -Mail' Varchar (100), nicht null, Primärschlüssel ('userId'), eindeutig eindeutig Schlüssel 'E -Mail' ('E -Mail'), Fremdschlüssel (Domainid) Referenzen domains_tbl (DomainId) auf Löschen von Kaskade) Engine = InnoDB; 
Erstellen Sie die Postfix -Benutzertabelle

Sie sollten eine Bestätigungsnachricht erhalten (wenn nicht, wird PhpMyAdmin nach Syntaxfehlern fordert):

MySQL -Bestätigung

Alias_tbl

Erstellen Sie die Tabelle 'alias_tbl' ('aliasid' int nicht null auto_increment, 'domainid' int nicht null, 'Quelle' varchar (100) nicht null, 'Ziel' Varchar (100) nicht null, Primärschlüssel ('aliasid'), Fremd Key (DomainId) referenziert domains_tbl (DomainId) auf Löschen von Kaskade) Engine = InnoDB; 

(Klicken Gehen unten mit der Erstellung der Tabelle fortfahren).

Bis zu diesem Punkt sollten Sie die folgende Datenbankstruktur haben:

Datenbankstruktur

Das heißt, Sie sind bereit, im nächsten Abschnitt einige Datensätze hinzuzufügen.

Erstellen einer Postfix -Domäne, Benutzer und Aliase

14. Wir werden nun die folgenden Datensätze in die drei Tabellen einfügen. Die Passwörter für [E -Mail geschützt] Und [E -Mail geschützt] wird verschlüsselt und die In user_tbl einfügen Stellungnahme.

Bitte beachten Sie außerdem, dass die an die E -Mails gesendeten E -Mails [E -Mail geschützt] wird umgeleitet auf [E -Mail geschützt]:

In Domains_tbl (DomainName) -Werte einfügen ('LinuxNewz.com '); In user_tbl (DomainId, Passwort, E -Mail) Werte (1, Encrypt ('PasswordFirstemailAccount', concat ('$ 6 $', Substring (SHA (Rand ()), -16)) einfügen (1 E -Mail -geschützte] '); In user_tbl (DomainId, Passwort, E -Mail) -Werte (1, Encrypt ('passayForSecondemailAccount', concat ('$ $ $', Substring (SHA (Rand ()), -16)) einfügen, '[E -Mail geschützt]'); In alias_tbl (DomainId, Quelle, Ziel) Werte (1, '[E -Mail geschützt]', '[E -Mail geschützt]' einfügen; 

Nachdem wir unsere Domain, zwei Benutzerkonten und einen E -Mail -Alias ​​hinzugefügt haben DEVECOT Und Postfix.

Zusammenfassung

In diesem Artikel haben wir die Pakete aufgeführt, die zur Installation eines Postfix -E -Mail -Servers in einem CentOS 7 VPS erforderlich sind, und erläutert, wie die zugrunde liegende Datenbank mithilfe von PHPMYADMIN verwaltet wird.

In den nächsten beiden Artikeln werden wir die Konfiguration der beiden Programme überprüfen, die sich um die E -Mail -Verteilung für unsere Domain kümmern (Teil 2) und zeigen Sie, wie Sie Schutz gegen Spam und Viren hinzufügen (Viren (Teil 3) Für Ihren Server.

Bis dahin können Sie uns gerne mit dem folgenden Formular kontaktieren, wenn Sie Fragen oder Kommentare haben.