Wie man einen Mailserver mit PostfixAdmin unter Debian 11 einrichtet
PostfixAdmin ist eine kostenlose, quelloffene und webbasierte Oberfläche, mit der du den Postfix-Mailserver über den Webbrowser verwalten kannst. Über die webbasierte Oberfläche kannst du Benutzer und Aliase hinzufügen, ein Festplattenkontingent festlegen sowie Domänen hinzufügen und entfernen. Es unterstützt verschiedene Datenbank-Backends wie PostgreSQL, MySQL, MariaDB und SQLite. Über Plugins kann es mit Squirrelmail und Roundcube integriert werden.
In diesem Artikel erkläre ich dir, wie du PostfixAdmin unter Debian 11 installierst.
Voraussetzungen
- Ein Server mit Debian 11, auf dem Postfix installiert ist.
- Ein gültiger Domainname, der auf die IP-Adresse deines Servers zeigt.
- Ein gültiger MX-Eintrag, der auf die IP-Adresse deines Servers zeigt.
Erste Schritte
Aktualisiere zunächst deine Systempakete mit dem folgenden Befehl auf die neueste Version:
apt-get update -y
Sobald dein System aktualisiert ist, gibst du den vollqualifizierten Hostnamen deines Servers ein.
hostnamectl set-hostname mail.domain.com
Als Nächstes führst du den folgenden Befehl aus, um die Änderungen zu übernehmen.
hostname -f
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Nginx, MariaDB und PHP installieren
Als Nächstes musst du den Nginx-Webserver, MariaDB, PHP und andere erforderliche PHP-Erweiterungen auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:
apt-get install nginx mariadb-server php-fpm php-cli php-imap php-json php-mysql php-opcache php-mbstring php-readline unzip sudo -y
Sobald alle Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.
Erstellen einer PostfixAdmin-Datenbank
Als Nächstes musst du eine Datenbank und einen Benutzer für PostfixAdmin erstellen. Melde dich zunächst mit folgendem Befehl an der MariaDB-Konsole an:
mysql
Sobald du verbunden bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:
MariaDB [(none)]> CREATE DATABASE postfixadmin; MariaDB [(none)]> GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'securepassword';
Als Nächstes löschst du die Berechtigungen und verlässt die MariaDB-Shell mit dem folgenden Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Jetzt ist die MariaDB-Datenbank für PostfixAdmin erstellt. Du kannst nun mit dem nächsten Schritt fortfahren.
PostfixAdmin installieren
Zuerst musst du die neueste Version von PostfixAdmin von der Sourceforge-Website herunterladen. Du kannst sie mit dem folgenden Befehl herunterladen:
wget https://webwerks.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf PostfixAdmin\ 3.3.8.tar.gz
Als Nächstes verschiebst du das entpackte Verzeichnis in das Nginx-Web-Root-Verzeichnis:
mv postfixadmin-postfixadmin-7d04685 /var/www/html/postfixadmin
Als Nächstes erstellst du ein Verzeichnis, das für die Installation von PostfixAdmin benötigt wird:
mkdir /var/www/html/postfixadmin/templates_c
Lege als Nächstes die Eigentumsrechte für das PostfixAdmin-Verzeichnis fest:
chown -R www-data: /var/www/html/postfixadmin/
Als Nächstes erstellst du eine Datei config.local.php:
nano /var/www/html/postfixadmin/config.local.php
Füge die folgenden Zeilen hinzu:
<?php $CONF['configured'] = true; $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = 'securepassword'; $CONF['database_name'] = 'postfixadmin'; $CONF['default_aliases'] = array ( 'abuse' => 'abuse@domain.com', 'hostmaster' => 'hostmaster@domain.com', 'postmaster' => 'postmaster@domain.com', 'webmaster' => 'webmaster@domain.com' ); $CONF['fetchmail'] = 'NO'; $CONF['show_footer_text'] = 'NO'; $CONF['quota'] = 'YES'; $CONF['domain_quota'] = 'YES'; $CONF['quota_multiplier'] = '1024000'; $CONF['used_quotas'] = 'YES'; $CONF['new_quota_table'] = 'YES'; $CONF['aliases'] = '0'; $CONF['mailboxes'] = '0'; $CONF['maxquota'] = '0'; $CONF['domain_quota_default'] = '0'; ?>
Speichere und schließe die Datei und erstelle dann das Schema für die PostfixAdmin-Datenbank mit dem folgenden Befehl:
sudo -u www-data php /var/www/html/postfixadmin/public/upgrade.php
Als Nächstes musst du ein Super-Admin-Konto für PostfixAdmin erstellen. Du kannst es mit dem folgenden Befehl erstellen:
bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add
Gib deinen Admin-Benutzernamen, dein Passwort und deine Domäne ein (siehe unten):
Welcome to Postfixadmin-CLI v0.3 --------------------------------------------------------------- Admin: > admin@domain.com Password: > Secure@12345 Password (again): > Secure@12345 Super admin: (Super admins have access to all domains, can manage domains and admin accounts.) (y/n) > y Domain: > domain.com Active: (y/n) > y The admin admin@domain.com has been added! ---------------------------------------------------------------
Nginx für PostfixAdmin konfigurieren
Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Nginx-Host für PostfixAdmin erstellen. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/domain.com.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; root /var/www/html/postfixadmin/public; index index.html index.htm index.php; server_name mail.domain.com; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; fastcgi_connect_timeout 600; fastcgi_send_timeout 600; fastcgi_read_timeout 600; } location / { try_files $uri $uri/ =404; } }
Speichere und schließe die Datei und starte den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Du kannst den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Du solltest die folgende Ausgabe erhalten:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-08-28 08:13:22 UTC; 7s ago Docs: man:nginx(8) Process: 74644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 74645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 74646 (nginx) Tasks: 2 (limit: 2341) Memory: 3.2M CPU: 57ms CGroup: /system.slice/nginx.service ??74646 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??74647 nginx: worker process Aug 28 08:13:22 mail.domain.com systemd[1]: Starting A high performance web server and a reverse proxy server... Aug 28 08:13:22 mail.domain.com systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Aug 28 08:13:22 mail.domain.com systemd[1]: Started A high performance web server and a reverse proxy server.
Zugriff auf PostfixAdmin
Jetzt ist PostfixAdmin installiert und konfiguriert. Du kannst ihn nun über die URL http://mail.domain.com aufrufen. Du wirst auf die PostfixAdmin-Anmeldeseite weitergeleitet:
Gib deine Admin-E-Mail und dein Passwort ein und klicke auf die Schaltfläche Login. Auf dem folgenden Bildschirm solltest du das PostfixAdmin-Dashboard sehen:
Fazit
Glückwunsch! Du hast PostfixAdmin erfolgreich unter Debian 11 installiert. Jetzt kannst du deinen Postfix-Mailserver ganz einfach über den Webbrowser verwalten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.