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:

PostfixAdmin

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:

PostfixAdmin dashboard

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.

Das könnte dich auch interessieren …