In diesem Tutorial zeigen wir Ihnen, wie Sie einen Mailserver mit PostfixAdmin auf einem Debian 9 VPS einrichten. Wir werden einen Mailserver mit Postfix, Dovecot und MariaDB konfigurieren.
PostfixAdmin ist eine webbasierte GUI für die Datenbank, die von Postfix verwendet wird. Mit Postfixadmin können Sie Ihren Mailserver ganz einfach verwalten, z. B. Domänen, E-Mail-Konten, Aliase und Kontingente hinzufügen und entfernen. Die webbasierte GUI erleichtert den Zugriff auf diese Funktionen und Features und ermöglicht es Ihnen, Informationen zu ändern und darauf zuzugreifen, während Sie sich nicht an Ihrem Terminal befinden. Fangen wir an.
Voraussetzungen:
- ein Debian 9 VPS
- SSH-Zugriff mit Root-Berechtigungen oder Zugriff auf einen Benutzer mit sudo-Berechtigungen
Schritt 1:Melden Sie sich über SSH an und aktualisieren Sie das System
Melden Sie sich bei Ihrem Debian 9 VPS an:
# ssh root@IP_Address -p Port_number
Mit dem folgenden Befehl können Sie überprüfen, ob Sie die richtige Debian-Version auf Ihrem Server installiert haben:
# lsb_release -a
Sie sollten diese Ausgabe erhalten:
Distributor ID:DebianDescription:Debian GNU/Linux 9.9 (Stretch)Release:9.9Codename:stretch
Führen Sie dann den folgenden Befehl aus, um sicherzustellen, dass alle installierten Pakete auf dem Server auf ihre neuesten verfügbaren Versionen aktualisiert werden:
# apt-Update &&apt-Upgrade
Schritt 2:Erstellen Sie einen Systembenutzer
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" vmail# mkdir -p /var/vmail# chmod -R 770 /var/vmail # chown -R vmail:mail /var/vmail
Schritt 3:MariaDB-Server installieren
PostfixAdmin unterstützt die Datenbanksysteme MySQL/MariaDB, PostgreSQL und SQLite. In diesem Tutorial verwenden wir MySQL/MariaDB als Datenbankspeicher-Engine.
# apt install mariadb-server
Führen Sie die folgenden Befehle aus, um den MariaDB-Dienst zu starten und beim Booten zu aktivieren:
# systemctl start mariadb# systemctl enable mariadb
Jetzt können Sie den folgenden Schritt überspringen, wenn Sie kein MySQL-Root-Passwort haben möchten.
# mysql_secure_installation
Wenn Sie dazu aufgefordert werden, beantworten Sie die folgenden Fragen, indem Sie der Anleitung folgen.
Geben Sie das aktuelle Passwort für root ein (Eingabe für keins):Drücken Sie einfach die [Enter]-Taste, da es kein Standardpasswort gibt. Root-Passwort setzen? [J/n]:JNeues Passwort:Passwort eingebenNeues Passwort erneut eingeben:Passwort wiederholenAnonyme Benutzer entfernen? [J/n]:YRoot-Anmeldung aus der Ferne verbieten? [J/n]:YTestdatenbank und Zugriff darauf entfernen? [J/n]:YBerechtigungstabellen jetzt neu laden? [J/n]:Ja
Wenn Sie den obigen Schritt befolgt hätten, hätten Sie ein neu festgelegtes Passwort für den MySQL-Root-Benutzer.
Führen Sie als Nächstes diesen Befehl aus, um auf die MySQL-Shell zuzugreifen.
# mysql -u root -p
Denken Sie daran, Ihr Root-Passwort einzugeben, wenn Sie das sichere Installationsskript ausgeführt haben.
Fahren wir mit dem Erstellen einer Datenbank für PostfixAdmin fort:
MariaDB [(keine)]> DATENBANK ERSTELLEN postfixadmin;MariaDB [(keine)]> GEWÄHREN SIE ALLE PRIVILEGIEN AUF postfixadmin.* AN 'postfixadmin'@'localhost' IDENTIFIED BY 'M0d1fyth15';MariaDB [(keine)]> FLUSH PRIVILEGIEN;MariaDB [(keine)]> \q
Stellen Sie sicher, dass Sie das Passwort für den Datenbankbenutzer durch ein gutes, eindeutiges Passwort ersetzen.
Schritt 4:Installieren Sie PHP und alle erforderlichen PHP-Module
Das ist
apt install apache2 php php-mbstring php-imap php-mysql libapache2-mod-php7.0
Schritt 5:Postfix installieren
Installieren Sie Postfix mit dem folgenden Befehl:
# apt install postfix-mysql
Wählen Sie Internet Site und klicken Sie auf Ok, um fortzufahren.
Sie werden nach dem System-E-Mail-Namen gefragt, stellen Sie sicher, dass dieser mit Ihrem Hostnamen übereinstimmt.
Sobald die Installation abgeschlossen ist, müssen wir Konfigurationsdateien erstellen:
# mkdir -p /etc/postfix/sql/
Von hier aus werden mehrere Konfigurationsdateien erstellt. Stellen Sie sicher, dass Sie alle Werte, die sich hier unterscheiden, durch die erforderlichen Werte ersetzen, oder Ihre Konfiguration funktioniert möglicherweise nicht.
# nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =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 =M0d1fyth15hosts =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 =M0d1fyth15hosts =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 =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT domain FROM domain WHERE domain='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT quota FROM mailbox WHERE username='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT maildir FROM mailbox WHERE username='%s' AND active ='1'
In den obigen Konfigurationsdateien verwenden wir „m0d1fyth15“ als Passwort, bitte ändern Sie es in Ihr eigenes Passwort.
Bearbeiten wir nun die main.cf
Datei durch Aufrufen der folgenden Befehle:
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/ssl/certs/ssl-cert-snakeoil.pem"postconf -e "smtpd_tls_key_file =/etc/ssl/private/ssl-cert-snakeoil.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 =permission_sasl_authenticated, permission_mynetworks, respond_unauth_destination" postconf -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
smtp inet n - j - - smtpd#smtp inet n - j - 1 postscreen#smtpd pass - - j - - smtpd#dnsblog unix - - j - 0 dnsblog#tlsproxy unix - - j - 0 tlsproxysubmission inet n - y - - 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_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 smtpd_client_restrictions=permit_sasl_authenticated,reject-o milter_macro_daemon_name=ORIGINATINGsmtps inet n - y - - smtpd-o syslog_name=postfix/smtps# -o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes# - o smtpd_reject_unlisted_recipient=nein-o smtpd_client_restrictions=permit_sasl_authenticated,reject# -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=ORIGINATING
Aktivieren Sie den Postfix-Dienst und starten Sie ihn neu:
# systemctl postfix aktivieren# systemctl postfix neu starten
Schritt 6:Dovecot installieren
Installieren Sie Dovecot mit dem folgenden Befehl:
# apt install dovecot-mysql
Öffnen Sie die Datei /etc/dovecot/conf.d/10-mail.conf 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 Datei /etc/dovecot/conf.d/10-auth.conf 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
Bearbeiten Sie die dovecot-sql.conf.ext
Datei, und fügen Sie dann diese Zeilen hinzu:
# nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=M0d1fyth15default_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'
Denken Sie daran, das Passwort sowie alle anderen unterschiedlichen Werte auch hier zu ersetzen.
Aktivieren Sie in der Datei /etc/dovecot/conf.d/10-ssl.conf die SSL-Unterstützung:
# nano /etc/dovecot/conf.d/10-ssl.conf
ssl =ja
Öffnen Sie die Datei /etc/dovecot/conf.d/15-lda.conf und legen Sie die postmaster_address
fest E-Mail-Adresse.
# nano /etc/dovecot/conf.d/15-lda.conf
postmaster_address [email protected]
Öffnen Sie die Datei /etc/dovecot/conf.d/10-master.conf, suchen Sie den Abschnitt service lmtp und ändern Sie ihn wie folgt:
# nano /etc/dovecot/conf.d/10-master.conf
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}user =dovecot}
Ändern Sie den Abschnitt service auth-worker wie folgt:
Service-Auth-Worker {user =vmail}
Legen Sie die Berechtigungen fest:
# chown -R vmail:dovecot /etc/dovecot# chmod -R o-rwx /etc/dovecot
Aktivieren Sie den Dovecot-Dienst und starten Sie ihn neu
# systemctl dovecot aktivieren# systemctl dovecot neu starten
Schritt 7:PostfixAdmin installieren
In diesem Schritt laden wir PostfixAdmin von Github herunter und speichern es in /opt
Verzeichnis.
# apt install git# cd /opt# git clone https://github.com/postfixadmin/postfixadmin.git# ln -s /opt/postfixadmin/public/ /var/www/html/mailadmin
Fügen Sie diese Zeilen in /opt/postfixadmin/config.local.php
ein# nano /opt/postfixadmin/config.local.php
# mkdir /opt/postfixadmin/templates_c# chown -R www-data:/opt/postfixadmin
Stellen Sie eine Verbindung zu http://1.2.3.4/mailadmin/setup.php her und stellen Sie sicher, dass Sie 1.2.3.4 durch die tatsächliche IP-Adresse Ihres Servers ersetzen. Wenn alles in Ordnung ist, scrollen Sie nach unten und erstellen Sie ein Setup-Passwort.
Klicken Sie auf Hash generieren, und Sie werden Folgendes sehen:
Sie müssen das setup_password
einfügen Hash wie im Bild oben gezeigt nach /opt/postfixadmin/config.local.php, es sollte so aussehen
Speichern Sie die Datei, dann können Sie zur Setup-Seite zurückkehren, um einen PostfixAdmin-Admin-Benutzer zu erstellen. Das Setup-Passwort auf dieser Seite ist das gleiche Passwort, das Sie im vorherigen Schritt verwendet haben – füllen Sie die anderen Lücken wie gewünscht aus und klicken Sie dann auf die Schaltfläche „Admin hinzufügen“. Jetzt können Sie zu
http://1.2.3.4/mailadmin/login.php
gehen um Ihre Domains hinzuzufügen und dort E-Mail-Adressen zu erstellen.Das ist es! Sie haben jetzt PostfixAdmin eingerichtet und auf Ihrem Debian 9-Server ausgeführt.
Natürlich müssen Sie keinen Mailserver mit PostfixAdmin auf Debian 9 einrichten, wenn Sie einen unserer Mailserver-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Admins bitten, einen Mailserver für Sie einzurichten. 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 unter Debian 9 gefallen hat oder hilfreich war, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken mithilfe der Freigabe-Shortcuts oder hinterlassen Sie einfach einen Kommentar im Kommentarbereich unter. Danke.