In dieser Anleitung erklären wir, wie Sie einen Mailserver mit PostfixAdmin, Postfix, Dovecot, MariaDB und SpamAssasin auf einem CentOS VPS einrichten und konfigurieren. PostfixAdmin ist ein PHP-basiertes Web-Frontend, mit dem Sie virtuelle Domänen und Benutzer für einen Postfix-Mail-Transport-Agenten verwalten können. Diese Anleitung sollte auch auf anderen Linux VPS-Systemen funktionieren, wurde aber für einen CentOS 7 VPS getestet und geschrieben.
Wenn Sie einen Ubuntu VPS verwenden, folgen Sie unserem Tutorial, um einen Mailserver mit Postfix, Dovecot, Spamassassin, SQLite und PostfixAdmin auf einem Ubuntu 16.04 VPS einzurichten
Wenn Sie SQLite anstelle von MariaDB verwenden möchten, folgen Sie unserem Tutorial, um einen Mailserver mit Postfix, Dovecot, Spamassassin, SQLite und PostfixAdmin auf einem CentoOS 7 VPS einzurichten
1. Aktualisieren Sie das System und installieren Sie die erforderlichen Pakete
yum update &&yum install wget nano
2. Systembenutzer erstellen
Aus Sicherheitsgründen erstellen wir einen neuen Systembenutzer, der Eigentümer aller Postfächer sein wird.
useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmailmkdir -p /var/vmailchmod -R 770 /var/vmailchown -R vmail:mail /var/vmail
3. Installieren Sie MariaDB
MariaDB 5.5 wird im Standard-Repository von CentOS 7 ausgeliefert, um es zu installieren, führen Sie einfach Folgendes aus:
yum installiere den Mariadb-Server
Führen Sie die folgenden Befehle aus, um den MariaDB-Dienst zu starten und beim Booten zu aktivieren:
systemctl start mariadb.servicesystemctl enable mariadb.service
Führen Sie den folgenden Befehl aus, um Ihre MariaDB-Installation zu sichern:
mysql_secure_installation
Als nächstes müssen wir eine Datenbank für unsere postfixadminHQ-Instanz erstellen.
mysql -uroot -pMariaDB [(keine)]> DATENBANK ERSTELLEN postfixadmin;MariaDB [(keine)]> GEWÄHREN SIE ALLE PRIVILEGIEN AUF postfixadmin.* AN 'postfixadmin'@'localhost' IDENTIFIZIERT DURCH 'strong_password';MariaDB [(keine )]> FLUSH PRIVILEGES;MariaDB [(keine)]> \q
4. Installieren Sie PHP und alle erforderlichen PHP-Module
CentOS 7 wird mit PHP Version 5.4 ausgeliefert, um PHP und notwendige Module zu installieren, führen Sie Folgendes aus:
yum installiere php php-mysql php-imap php-mbstring php-common
Wenn Sie Apache nicht installiert haben, installieren Sie es mit:
yum installiere httpd
5. Installieren Sie PostfixAdmin
Die neueste Version von PostfixAdmin, Version 3, unterstützt MySQL/MariaDB-, PostgreSQL- und SQLite-Datenbanken. In dieser Anleitung verwenden wir MariaDB.
Laden Sie das PostfixAdmin-Archiv von SourceForge herunter und extrahieren Sie es in das Verzeichnis /var/www/html/:
wget -q -O - "https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz" | tar -xzf - -C /var/www/html
Öffnen Sie die Mail-Konfigurationsdatei und bearbeiten Sie die folgenden Werte:
nano /var/www/html/postfixadmin-3.0.2/config.inc.php
$CONF['configured'] =true;$CONF['database_type'] ='mysqli';$CONF['database_host'] ='localhost';$CONF['database_user'] ='postfixadmin';$ CONF['database_password'] ='strong_password';$CONF['database_name'] ='postfixadmin';$CONF['domain_path'] ='NO';$CONF['domain_in_mailbox'] ='YES';
chown -R apache:/var/www/html/postfixadmin-3.0.2
Um die Datenbank zu füllen, gehen Sie zu https://Your_IP_Address/postfixadmin-3.0.2/setup.php
und Sie sollten so etwas wie unten sehen:Testing database connection - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadmin
Everything seems fine... attempting to create/update database structure
Erstellen Sie einen neuen Admin-Benutzer:
bash /var/www/html/postfixadmin-3.0.2/scripts/postfixadmin-cli admin add admin@your_domain_name.com --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1
6. Postfix installieren und konfigurieren
Um Postfix zu installieren, führen Sie den folgenden Befehl aus:
yum postfix installieren
Sobald die Installation abgeschlossen ist, müssen wir Konfigurationsdateien erstellen:
mkdir -p /etc/postfix/sql/
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address =CONCAT('@', alias_domain.target_domain) AND alias.active =1 AND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain ='%d' and mailbox.username =CONCAT('%u', '@', alias_domain.target_domain) AND mailbox .active =1 UND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address =CONCAT('%u', '@', alias_domain.target_domain) AND alias .active =1 UND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =Domäne AUS Domäne AUSWÄHLEN WHERE domain='%s' AND active ='1'#query =Domäne AUS Domäne AUSWÄHLEN WHERE domain='%s'#optionale Abfrage, die wann verwendet werden soll Weiterleitung für Backup MX#query =SELECT domain FROM domain WHERE domain='%s' AND backupmx ='0' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT quota FROM mailbox WHERE username='%s' AND active ='1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM mailbox WHERE username='%s' AND active ='1'#expansion_limit =100
[ecko_alert color=”blue”]Irgendwo stecken geblieben? Holen Sie sich einen VPS von uns und wir erledigen das alles kostenlos für Sie! Wir richten einen Mailserver komplett für Sie ein und konfigurieren ihn. [/ecko_alert]
Bearbeiten Sie die main.cf
Datei:
postconf -e "myhostname =$(hostname -f)" postconf -e "virtual_mailbox_domains =proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"postconf -e "virtual_alias_maps =proxy:mysql:/etc/ postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"postconf -e "virtual_mailbox_maps =proxy:mysql:/etc /postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf" postconf -e "smtpd_tls_cert_file =/etc/pki/tls/certs/localhost.crt"postconf -e "smtpd_tls_key_file =/ etc/pki/tls/private/localhost.key"postconf -e "smtpd_use_tls =yes"postconf -e "smtpd_tls_auth_only =yes" postconf -e "smtpd_sasl_type =dovecot"postconf -e "smtpd_sasl_path =private/auth"postconf -e " smtpd_sasl_auth_enable=yes"postconf -e "smtpd_recipient_restrictions=permit_sasl_authenticated, permission_mynetworks,reject_unauth_destination" post conf -e "mydestination =localhost"postconf -e "mynetworks =127.0.0.0/8"postconf -e "inet_protocols =ipv4"postconf -e "inet_interfaces =all"postconf -e "virtual_transport =lmtp:unix:private/dovecot- lmtp"
Öffnen Sie die master.cf
Datei finden Sie submission inet n
und smtps inet n
Abschnitte und bearbeiten Sie wie folgt:
nano /etc/postfix/master.cf
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no# -o smtpd_client_restrictions=$mua_client_restrictions# -o smtpd_client_restrictions# -$helom_restrictions_helom_restrictions=o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=-o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATINGsmtps inet n - n - - smtpd -o syslog_name=postfix/smtps# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no# -o smtpd_client_restrictions=$mua_client_restrictions# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=-o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGI NATEN
Aktivieren Sie den Postfix-Dienst
systemctl postfix aktivierensystemctl postfix neu starten
7. Dovecot installieren und konfigurieren
Installieren Sie dovecot mit MySQL-Unterstützung mit dem folgenden Befehl:
yum install dovecot dovecot-mysql
Öffnen Sie die /etc/dovecot/conf.d/10-mail.conf
Datei und ändern Sie die folgenden Werte:
nano /etc/dovecot/conf.d/10-mail.conf
mail_location =maildir:/var/vmail/%d/%nmail_privileged_group =mailmail_uid =vmailmail_gid =mailfirst_valid_uid =150last_valid_uid =150
Öffnen Sie die /etc/dovecot/conf.d/10-auth.conf
Datei und ändern Sie die folgenden Werte:
nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms =einfache Anmeldung#!include auth-system.conf.ext!include auth-sql.conf.ext
Erstellen Sie eine neue dovecot-sql.conf.ext
Datei:
nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=strong_passworddefault_pass_scheme =MD5-CRYPTpassword_query =SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/ var/vmail/%d/%n' als userdb_mail, 150 als userdb_uid, 8 als userdb_gid FROM mailbox WHERE username ='%u' AND active ='1'user_query =SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username ='%u' UND aktiv ='1'
In /etc/dovecot/conf.d/10-ssl.conf
Datei SSL-Unterstützung aktivieren:
ssl =ja
Öffnen Sie die /etc/dovecot/conf.d/15-lda.conf
Datei und legen Sie die postmaster_address
fest E-Mail-Adresse.
postmaster_address =postmaster@your_domain_name.com
Öffnen Sie die /etc/dovecot/conf.d/10-master.conf
Datei, suchen Sie den Abschnitt service lmtp und ändern Sie ihn in:
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode =0600 user =postfix group =postfix }}
Suchen Sie den Abschnitt Service Auth und ändern Sie ihn in:
service auth { unix_listener /var/spool/postfix/private/auth { mode =0666 user =postfix group =postfix } unix_listener auth-userdb { mode =0600 user =vmail #group =vmail } user =dovecot}Ändern Sie den Abschnitt service auth-worker wie folgt:
Service-Authentifizierungs-Worker { user =vmail}Legen Sie die Berechtigungen fest:
chown -R vmail:dovecot /etc/dovecotchmod -R o-rwx /etc/dovecotAktivieren Sie den Dovecot-Dienst und starten Sie ihn neu
systemctl dovecot aktivieren systemctl dovecot neu starten8. Spamassassin installieren und konfigurieren
Installieren Sie spamassassin mit dem folgenden Befehl:
yum installiere spamassassinErstellen Sie einen Spamassassin-Systembenutzer:
groupadd spamduseradd -g spamd -s /bin/false -d /var/log/spamassassin spamdchown spamd:spamd /var/log/spamassassin9. Konfigurieren Sie Postfix für die Verwendung von SpamAssassin
Öffnen Sie die
master.cf
Datei und bearbeiten Sie sie wie folgt:nano /etc/postfix/master.cfändern
smtp-inet n - n - - smtpdmit
smtp inet n - n - - smtpd -o content_filter=spamassassinFügen Sie am Ende der Datei die folgende Zeile hinzu:
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}Aktivieren Sie den Spamassassin-Dienst und starten Sie ihn neu
systemctl spamassassin aktivieren systemctl spamassassin neu startenStarten Sie den Postfix-Dienst neu
systemctl Neustart PostfixWenn jetzt alles richtig eingerichtet ist, sollten Sie sich bei Ihrem PostfixAdmin-Backend anmelden können, indem Sie zu
http://Your_IP_Address/postfixadmin-3.0.2.2
gehen und erstellen Sie Ihre erste virtuelle Domain und Mailbox.Natürlich müssen Sie keinen Mailserver mit PostfixAdmin und MariaDB auf CentOS 7 einrichten, wenn Sie einen unserer Mailserver-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, einen Mailserver einzurichten für dich. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS . Wenn Ihnen dieser Beitrag zum Einrichten eines Mailservers mit PostfixAdmin und MariaDB unter CentOS 7 gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen unten oder hinterlassen Sie einfach einen Kommentar im Kommentarbereich unten. Danke.