Zum Inhalt springen

PostfixAdmin: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „ Postfix “ durch „ Postfix
 
(36 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''PostfixAdmin''' ist eine Webschnittstelle für Postfix zur Verwaltung von Postfächern, virtuellen Domänen und Aliasnamen.  
'''PostfixAdmin''' ist eine Webschnittstelle für [[Postfix]] zur Verwaltung von Postfächern, virtuellen Domänen und Aliasnamen.  
= Beschreibung =
= Beschreibung =
Postfixadmin is a web interface to manage virtual users and domains
for a Postfix mail transport agent. It supports Virtual mailboxes,
aliases, forwarders and vacation.


Postfixadmin allows administrators to delegate account handling
* Postfixadmin is a web interface to manage virtual users and domains for a [[Postfix]] mail transport agent. It supports Virtual mailboxes, aliases, forwarders and vacation.
to domain administrators and allows users to login and change their own
* Postfixadmin allows administrators to delegate account handling to domain administrators and allows users to login and change their own settings (e.g. forwarders, vacation, passwords etc).
settings (e.g. forwarders, vacation, passwords etc).
* It provides easy integration into dovecot, courier or cyrus.
* Postfixadmin is written in PHP.


It provides easy integration into dovecot, courier or cyrus.
Postfixadmin is written in PHP.
= Installation =
= Installation =
  # '''apt install postfixadmin'''
  # '''apt install postfixadmin'''
Paketlisten werden gelesen… Fertig
 
Abhängigkeitsbaum wird aufgebaut… Fertig
* Um PostfixAdmin verwenden zu können, benötigen Sie ein funktionierendes Webserver-Setup.  
Statusinformationen werden eingelesen… Fertig
* Sie können entweder einen Webserver wählen, der die Webanwendung direkt bedienen kann (beispielsweise Apache HTTP Server, oder ein Setup, bei dem ein Webserver (beispielsweise Nginx) Anfragen an einen Anwendungsserver (beispielsweise UWSGI oder php-fpm) weiterleitet.
Die folgenden zusätzlichen Pakete werden installiert:
* Informationen zur IMAP-Funktionalität finden Sie unter PHP#IMAP.  
  dbconfig-common libapache2-mod-php libapache2-mod-php8.1 libc-client2007e libonig5 mlock php-common php-imap
 
  php-mbstring php-mysql php8.1-cli php8.1-common php8.1-imap php8.1-mbstring php8.1-mysql php8.1-opcache
Auf Postfixadmin sollte nur über TLS zugegriffen werden (es sei denn, der Zugriff erfolgt direkt von der Maschine, auf der es ausgeführt wird), da sonst Passwörter und Benutzerdaten offengelegt werden.
  php8.1-readline wwwconfig-common
Vorgeschlagene Pakete:
  dbconfig-mysql | dbconfig-pgsql | dbconfig-sqlite3 | dbconfig-no-thanks php-pear uw-mailutils mysql-client
  postgresql-client
Empfohlene Pakete:
  zendframework
Die folgenden NEUEN Pakete werden installiert:
  dbconfig-common libapache2-mod-php libapache2-mod-php8.1 libc-client2007e libonig5 mlock php-common php-imap
  php-mbstring php-mysql php8.1-cli php8.1-common php8.1-imap php8.1-mbstring php8.1-mysql php8.1-opcache
  php8.1-readline postfixadmin wwwconfig-common
0 aktualisiert, 19 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 8.147 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 33,2 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]


= Syntax =
= Syntax =
== Parameter ==
== Argumente ==
== Optionen ==
== Optionen ==
== Umgebungsvariablen ==
== Umgebung ==
== Exit-Status ==
== Rückgabewert ==


= Konfiguration =
= Konfiguration =
== Dateien ==
Bearbeiten Sie die PostfixAdmin-Konfigurationsdatei, ändern Sie global alle Instanzen von ''change-this-to-your.domain.tld'' auf einen geeigneten Wert:
 
;/etc/webapps/postfixadmin/config.local.php  
= Anwendungen =
= Sicherheit =
= Dokumentation =
== RFC ==
== Man-Pages ==
== Info-Pages ==
== Siehe auch ==
 
= Links =
== Projekt-Homepage ==
== Weblinks ==
== Einzelnachweise ==
<references />
 
= Testfragen =
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
= TMP =
PostfixAdmin ist eine Webschnittstelle für Postfix zur Verwaltung von Postfächern, virtuellen Domänen und Aliasnamen.
 
== Inhalt ==
 
* 1  Installation
* 2  Konfiguration
* 3  Bewirtung
** 3.1  Apache
*** 3.1.1  php-fpm
** 3.2  Nginx
*** 3.2.1  php-fpm
*** 3.2.2  uWSGI
* 4  Einrichtung
* 5  Tipps und Tricks
** 5.1  Pacman-Haken
* 6  Fehlerbehebung
** 6.1  Konfiguration nicht gefunden
** 6.2  Leere Seite beim Zugriff
 
== Installation ==
Um PostfixAdmin verwenden zu können, benötigen Sie ein funktionierendes Webserver- Setup. Sie können entweder einen Webserver wählen, der die Webanwendung direkt bedienen kann (z. B. Apache HTTP Server ), oder ein Setup, bei dem ein Webserver (z. B. Nginx ) Anfragen an einen Anwendungsserver (z. B. UWSGI oder php-fpm ) weiterleitet. 
 
Informationen zur IMAP-Funktionalität finden Sie unter PHP#IMAP .
 
Als nächstes installieren das postfixadmin -Paket.
 
'''Hinweis:''' Auf Postfixadmin sollte nur über TLS zugegriffen werden (es sei denn, der Zugriff erfolgt direkt von der Maschine, auf der es ausgeführt wird), da sonst Passwörter und Benutzerdaten offengelegt werden.
 
== Aufbau ==
Bearbeiten Sie die PostfixAdmin-Konfigurationsdatei, ändern Sie global alle Instanzen von ''change-this-to-your.domain.tld'' auf einen geeigneten Wert:  
/etc/webapps/postfixadmin/config.local.php  
 
  <?php
  <?php
  $CONF['konfiguriert'] = true;
$CONF['konfiguriert'] = true;
  // entspricht dem Maildir-Pfad von dovecot /home/vmail/%d/%u  
// entspricht dem Maildir-Pfad von dovecot /home/vmail/%d/%u  
  $CONF['domain_path'] = 'YES';
$CONF['domain_path'] = 'YES';
  $CONF['domain_in_mailbox'] = 'NEIN';
$CONF['domain_in_mailbox'] = 'NEIN';
  $CONF['database_type'] = 'mysqli';
$CONF['database_type'] = 'mysqli';
  $CONF['database_host'] = 'localhost';
$CONF['database_host'] = 'localhost';
  $CONF['database_user'] = 'postfix_user';
$CONF['database_user'] = 'postfix_user';
  $CONF['database_password'] = 'hunter2';
$CONF['database_password'] = 'hunter2';
  $CONF['Datenbankname'] = 'postfix_db';
$CONF['Datenbankname'] = 'postfix_db';
   
   
  $CONF['default_aliases'] = array (
$CONF['default_aliases'] = array (
      'abuse' => 'abuse@change-this-to-your.domain.tld',
  'abuse' => 'abuse@change-this-to-your.domain.tld',
      'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
  'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
      'postmaster' => 'postmaster@change-this-to-your.domain.tld',
  'postmaster' => 'postmaster@change-this-to-your.domain.tld',
      'webmaster' => 'webmaster@change-this-to-your.domain.tld'
  'webmaster' => 'webmaster@change-this-to-your.domain.tld'
  );
);
   
   
  $CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';
$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';
   
   
  $CONF['footer_text'] = 'Zurück zu change-this-to-your.domain.tld';
$CONF['footer_text'] = 'Zurück zu change-this-to-your.domain.tld';
  $CONF['footer_link'] = '<nowiki>http://change-this-to-your.domain.tld'</nowiki>;
$CONF['footer_link'] = '<nowiki>https://change-this-to-your.domain.tld'</nowiki>;
   
   
 
Wenn Sie dovecot installieren und das Passwortschema in dovecot geändert haben (z. B. in SHA512-CRYPT), geben Sie dies mit Postfix wieder  
Wenn Sie dovecot installieren und das Passwortschema in dovecot geändert haben (beispielsweise in SHA512-CRYPT), geben Sie dies mit [[Postfix]] wieder  
  /etc/webapps/postfixadmin/config.local.php  
  /etc/webapps/postfixadmin/config.local.php  


  $CONF['encrypt'] = 'dovecot:SHA512-CRYPT';
  $CONF['encrypt'] = 'dovecot:SHA512-CRYPT';
 
Ab dovecot 2 ist dovecotpw veraltet. Sie sollten auch sicherstellen, dass Ihre Konfiguration den neuen Binärnamen widerspiegelt.  
Ab dovecot 2 ist dovecotpw veraltet. Sie sollten auch sicherstellen, dass Ihre Konfiguration den neuen Binärnamen widerspiegelt.  
 
'''Hinweis'''


'''Hinweis:''' Ab postfixadmin 2.91 ist dies standardmäßig korrekt eingestellt.  
Ab postfixadmin 2.91 ist dies standardmäßig korrekt eingestellt.  
  /etc/webapps/postfixadmin/config.local.php  
  /etc/webapps/postfixadmin/config.local.php  


  $CONF['dovecotpw'] = "/usr/sbin/doveadm pw";
  $CONF['dovecotpw'] = "/usr/sbin/doveadm pw";
 
'''Hinweis:''' Damit dies funktioniert, reicht es nicht aus, dovecot installiert zu haben, es muss auch konfiguriert werden. Siehe Dovecot#Dovecot-Konfiguration .
'''Hinweis'''  


== Gastgeber ==
Damit dies funktioniert, reicht es nicht aus, dovecot installiert zu haben, es muss auch konfiguriert werden. Siehe Dovecot#Dovecot-Konfiguration .
'''Hinweis:''' PostfixAdmin muss als eigener Benutzer und eigene Gruppe ausgeführt werden (z <code>postfixadmin</code>). Es nutzt <code>/etc/webapps/postfixadmin</code>, <code>/var/lib/postfixadmin</code>und <code>/run/postfixadmin</code>für Konfigurationen, Template-Caches und (möglicherweise) Sockets (jeweils)!  
 
== Hosting ==
'''Hinweis'''  
 
PostfixAdmin muss als eigener Benutzer und eigene Gruppe ausgeführt werden (z <code>postfixadmin</code>). Es nutzt <code>/etc/webapps/postfixadmin</code>, <code>/var/lib/postfixadmin</code>und <code>/run/postfixadmin</code>für Konfigurationen, Template-Caches und (möglicherweise) Sockets (jeweils)!  


=== Apache ===
=== Apache ===
'''Dieser Artikel oder Abschnitt muss erweitert werden.'''  
'''Dieser Artikel oder Abschnitt muss erweitert werden.'''  


'''Grund:''' Apache-Abschnitt benötigt ein uWSGI- Beispiel. (Diskutieren Sie im Talk:PostfixAdmin )  
'''Grund:''' Apache-Abschnitt benötigt ein uWSGI- Beispiel. (Diskutieren Sie im Talk:PostfixAdmin)  


Der Apache -Webserver kann mit Hilfe von Modulen wie mod_proxy_fcgi oder mod_proxy_uwsgi .  
Der Apache -Webserver kann mit Hilfe von Modulen wie mod_proxy_fcgi oder mod_proxy_uwsgi .  


==== php-fpm ====
==== php-fpm ====
Installieren und konfigurieren Apache HTTP Server mit php-fpm . Verwenden Sie einen Pool , der als Benutzer und Gruppe ausgeführt wird <code>postfixadmin</code>. Die Socket-Datei sollte für die zugänglich sein <code>http</code>Benutzer und/oder Gruppe.  
Installieren und konfigurieren Apache HTTP Server mit php-fpm . Verwenden Sie einen Pool , der als Benutzer und Gruppe ausgeführt wird <code>postfixadmin</code>. Die Socket-Datei sollte für die zugänglich sein <code>http</code>Benutzer und/oder Gruppe.  


Fügen Sie die folgende Konfiguration in Ihre Apache HTTP Server- Konfiguration ein (dh <code>/etc/httpd/conf/httpd.conf</code>) und starten Sie den Webserver :  
Fügen Sie die folgende Konfiguration in Ihre Apache HTTP Server- Konfiguration ein (dh <code>/etc/httpd/conf/httpd.conf</code>) und starten Sie den Webserver :  
Zeile 168: Zeile 86:


  Alias ​​/postfixadmin "/usr/share/webapps/postfixadmin/public"
  Alias ​​/postfixadmin "/usr/share/webapps/postfixadmin/public"
  <Verzeichnis "/usr/share/webapps/postfixadmin/public">
<Verzeichnis "/usr/share/webapps/postfixadmin/public">
      Verzeichnisindex index.html index.php
  Verzeichnisindex index.html index.php
      <FilesMatch \.php$>
  <FilesMatch \.php$>
          SetHandler "proxy:unix:/run/postfixadmin/postfixadmin.sock|fcgi://localhost/"
    SetHandler "proxy:unix:/run/postfixadmin/postfixadmin.sock|fcgi://localhost/"
      </FilesMatch>
  </FilesMatch>
      AllowOverride All
  AllowOverride All
      Optionen FollowSymlinks
  Optionen FollowSymlinks
      Erfordern alle gewährt
  Erfordern alle gewährt
      SetEnv PHP_ADMIN_VALUE "open_basedir = /tmp/:/usr/share/webapps/postfixadmin:/etc/webapps/postfixadmin/:/var/cache/postfixadmin/templates_c"
  SetEnv PHP_ADMIN_VALUE "open_basedir = /tmp/:/usr/share/webapps/postfixadmin:/etc/webapps/postfixadmin/:/var/cache/postfixadmin/templates_c"
  </Verzeichnis>
</Verzeichnis>
 
Erstellen Sie einen Pool für postfixadmin und starten Sie php-fpm.service neu:  
Erstellen Sie einen Pool für postfixadmin und starten Sie php-fpm.service neu:  
  /etc/php/php-fpm.d/postfixadmin.conf  
  /etc/php/php-fpm.d/postfixadmin.conf  


  [postfixadmin]
  [postfixadmin]
  Benutzer = postfixadmin
Benutzer = postfixadmin
  Gruppe = postfixadmin
Gruppe = postfixadmin
  listen = /run/postfixadmin/postfixadmin.sock
listen = /run/postfixadmin/postfixadmin.sock
  listen.owner = root
listen.owner = root
  listen.group = http
listen.group = http
  listen.mode = 0660
listen.mode = 0660
  pm = auf Abruf
pm = auf Abruf
  pm.max_kinder = 4
pm.max_kinder = 4
  php_admin_value['date.timezone'] = Europa/Berlin
php_admin_value['date.timezone'] = Europa/Berlin
  php_admin_value['session.save_path'] = /tmp
php_admin_value['session.save_path'] = /tmp
  php_admin_value['open_basedir'] = /tmp/:/usr/share/webapps/postfixadmin/:/etc/webapps/postfixadmin/:/usr/bin/doveadm:/var/cache/postfixadmin
php_admin_value['open_basedir'] = /tmp/:/usr/share/webapps/postfixadmin/:/etc/webapps/postfixadmin/:/usr/bin/doveadm:/var/cache/postfixadmin
 
Um nur den localhost-Zugriff auf postfixadmin zu erlauben (für erhöhte Sicherheit), fügen Sie dies der vorherigen hinzu <code><Directory></code>Richtlinie:  
Um nur den localhost-Zugriff auf postfixadmin zu erlauben (für erhöhte Sicherheit), fügen Sie dies der vorherigen hinzu <code><Directory></code>Richtlinie:  
  Auftrag verweigern, zulassen
  Auftrag verweigern, zulassen
    Abgelehnt von allen
  Abgelehnt von allen
    Ab 127.0.0.1 zulassen
  Ab 127.0.0.1 zulassen
 
 
=== Nginx ===
Nginx kann Anwendungsserver wie php-fpm und uWSGI , die eine dynamische Webanwendung ausführen.  Die folgenden Beispiele beschreiben eine ordnerbasierte Einrichtung über einen nicht standardmäßigen Port (der Einfachheit halber). 
 
'''Notiz:'''
 
* in nginx unter Nginx#Servereinträge .
* PostfixAdmin liefert eine Konfiguration für uWSGI .
 
==== php-fpm ====
Installieren Sie  php-fpm und php-imap . Richten Sie nginx mit php-fpm ein und verwenden Sie einen Pool , der als Benutzer und Gruppe ausgeführt wird <code>postfixadmin</code>. Die Socket-Datei sollte für die zugänglich sein <code>http</code>Benutzer und/oder Gruppe, muss sich aber darunter befinden <code>/run/postfixadmin</code>.  Dies kann durch Hinzufügen der folgenden Zeilen erreicht werden. 
/etc/php/php-fpm.d/postfixadmin.conf
 
[postfixadmin]
  Benutzer = postfixadmin
  Gruppe = postfixadmin
  listen = /run/postfixadmin/postfixadmin.sock
  listen.owner = root
  listen.group = http
  listen.mode = 0660
  pm = auf Abruf
  pm.max_kinder = 4
  php_admin_value['date.timezone'] = Europa/Berlin
  php_admin_value['session.save_path'] = /tmp
  php_admin_value['open_basedir'] = /tmp/:/usr/share/webapps/postfixadmin/:/etc/webapps/postfixadmin/:/usr/bin/doveadm:/var/cache/postfixadmin
 
Sie müssen mindestens aktivieren <code>imap</code>,  <code>pdo_mysql</code>und <code>mysqli</code>Erweiterungen ein <code>/etc/php/php.ini</code>.  Stellen Sie sicher, dass Sie auch hinzufügen <code>/var/cache/postfixadmin</code>zu open_basedir in Ihrer php.ini. Starten php-fpm neu , damit all dies wirksam wird. 
 
Fügen Sie die folgende Konfiguration für nginx hinzu und starten Sie sie neu.
/etc/nginx/sites-available/postfixadmin.conf
 
Server {
        höre 8081;
        server_name postfixadmin;
        root /usr/share/webapps/postfixadmin/public/;
        indexindex.php;
        Zeichensatz utf-8;
     
        access_log /var/log/nginx/postfixadmin-access.log;
        error_log /var/log/nginx/postfixadmin-error.log;
     
        Lage / {
          try_files $uri $uri/index.php;
        }
     
        Standort ~* \.php$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          schließen Sie fastcgi_params ein;
          fastcgi_pass unix:/run/postfixadmin/postfixadmin.sock;
          fastcgi_index index.php;
          schließen Sie fastcgi_params ein;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_buffer_size 16k;
          fastcgi_buffers 4 16k;
        }
      }
 
 
==== uWSGI ====
Installieren Sie  uwsgi-plugin-php , erstellen Sie einen Socket pro Anwendung für uWSGI (siehe UWSGI#Accessibility of uWSGI socket als Referenz) und aktivieren die <code>uwsgi-secure@postfixadmin.socket</code>Einheit.
 
Fügen Sie die folgende Konfiguration für nginx hinzu und starten  nginx .
/etc/nginx/sites-available/postfixadmin.conf
 
Server {
        höre 8081;
        server_name postfixadmin;
        root /usr/share/webapps/postfixadmin/public/;
        indexindex.php;
        Zeichensatz utf-8;
     
        access_log /var/log/nginx/postfixadmin-access.log;
        error_log /var/log/nginx/postfixadmin-error.log;
     
        Lage / {
          try_files $uri $uri/index.php;
        }
   
   
        # Übergeben Sie alle .php- oder .php/path-URLs an uWSGI
        Standort ~ ^(.+\.php)(.*)$ {
          uwsgi_params einschließen;
          uwsgi_modifier1 14;
          uwsgi_pass unix:/run/postfixadmin/postfixadmin.sock;
        }
      }
 


== Aufstellen ==
== Aufstellen ==
Navigieren Sie schließlich zu <nowiki>http://127.0.0.1/postfixadmin/setup.php</nowiki> , wenn Sie Apache oder <nowiki>http://127.0.0.1:8081/setup.php</nowiki> für Nginx verwendet haben, um die Einrichtung abzuschließen. Generieren Sie Ihren Setup-Passwort-Hash unten auf der Seite, sobald dies abgeschlossen ist. Schreiben Sie den Hash in die Konfigurationsdatei
Navigieren Sie schließlich zu <nowiki>https://127.0.0.1/postfixadmin/setup.php</nowiki>, wenn Sie Apache oder <nowiki>https://127.0.0.1:8081/setup.php</nowiki> für Nginx verwendet haben, um die Einrichtung abzuschließen. Generieren Sie Ihren Setup-Passwort-Hash unten auf der Seite, sobald dies abgeschlossen ist. Schreiben Sie den Hash in die Konfigurationsdatei  
  /etc/webapps/postfixadmin/config.local.php  
  /etc/webapps/postfixadmin/config.local.php  


  $CONF['setup_password'] = 'yourhashhere';
  $CONF['setup_password'] = 'yourhashhere';
 
Jetzt können Sie ein Superadmin-Konto unter <nowiki>http://127.0.0.1/postfixadmin/setup.php</nowiki> wenn Sie Apache oder <nowiki>http://127.0.0.1:8081/setup.php</nowiki> für Nginx verwendet haben.  
Jetzt können Sie ein Superadmin-Konto unter <nowiki>https://127.0.0.1/postfixadmin/setup.php</nowiki> wenn Sie Apache oder <nowiki>https://127.0.0.1:8081/setup.php</nowiki> für Nginx verwendet haben.  


== Tipps und Tricks ==
== Tipps und Tricks ==


=== Pacman-Haken ===
=== Pacman-Haken ===
Manchmal muss die Datenbank nach einem Versionsstoß aktualisiert werden. In diesem Fall wird auf der Anmeldeseite die Meldung „Das PostfixAdmin-Datenbanklayout ist veraltet“ angezeigt.  
Manchmal muss die Datenbank nach einem Versionsstoß aktualisiert werden. In diesem Fall wird auf der Anmeldeseite die Meldung "Das PostfixAdmin-Datenbanklayout ist veraltet" angezeigt.  


Sie können einen Hook einrichten, der das benötigte upgrade.php-Skript automatisch über einen Pacman-Hook ausführt:  
Sie können einen Hook einrichten, der das benötigte upgrade.php-Skript automatisch über einen Pacman-Hook ausführt:  
Zeile 304: Zeile 136:


  [Abzug]
  [Abzug]
  Vorgang = Installieren
Vorgang = Installieren
  Betrieb = Upgrade
Betrieb = Upgrade
  Typ = Paket
Typ = Paket
  Ziel = postfixadmin
Ziel = postfixadmin
   
   
  [Aktion]
[Aktion]
  Description = Führen Sie Postfixadmin upgrade.php aus, um sicherzustellen, dass die Datenbank auf dem neuesten Stand ist
Description = Führen Sie Postfixadmin upgrade.php aus, um sicherzustellen, dass die Datenbank auf dem neuesten Stand ist
  Wann = PostTransaktion
Wann = PostTransaktion
  Exec = /usr/bin/runuser -u postfixadmin -- /usr/bin/php /usr/share/webapps/postfixadmin/public/upgrade.php
Exec = /usr/bin/runuser -u postfixadmin -- /usr/bin/php /usr/share/webapps/postfixadmin/public/upgrade.php
 


== Fehlerbehebung ==
== Dateien ==
/etc
/etc/apache2
  /etc/apache2/conf-available
  /etc/apache2/conf-available/postfixadmin.conf
/etc/lighttpd
  /etc/lighttpd/conf-available
  /etc/lighttpd/conf-available/90-postfixadmin.conf
/etc/postfixadmin
  /etc/postfixadmin/config.inc.php
/usr
/usr/bin/postfixadmin-cli
 
== Problembehebung ==


=== Konfiguration nicht gefunden ===
=== Konfiguration nicht gefunden ===
Zeile 321: Zeile 165:


=== Leere Seite beim Zugriff ===
=== Leere Seite beim Zugriff ===
Wenn Sie eine leere Seite erhalten, überprüfen Sie die Syntax der Konfiguration mit <code>php -l /etc/webapps/postfixadmin/config.inc.php</code>.  
Wenn Sie eine leere Seite erhalten, überprüfen Sie die Syntax der Konfiguration mit <code>php -l /etc/webapps/postfixadmin/config.inc.php</code>.
[[Kategorie:Postfix]]
 
= Anwendung =
= Sicherheit =
= Dokumentation =
== RFC ==
== Man-Page ==
== Info-Pages ==
== Siehe auch ==
 
= Links =
== Projekt ==
== Weblinks ==
# [https://wiki.archlinux.org/title/PostfixAdmin PostfixAdmin] — Eine webbasierte Verwaltungsschnittstelle für Postfix.
# [https://postfixadmin.sourceforge.net/ https://postfixadmin.sourceforge.net/] || [https://archlinux.org/packages/?name=postfixadmin postfixadmin]
 
 
 
 
 
[[Kategorie:Postfix/Befehl]]
[[Kategorie:Linux/Befehl]]

Aktuelle Version vom 4. Juli 2026, 13:07 Uhr

PostfixAdmin ist eine Webschnittstelle für Postfix zur Verwaltung von Postfächern, virtuellen Domänen und Aliasnamen.

Beschreibung

  • Postfixadmin is a web interface to manage virtual users and domains for a Postfix mail transport agent. It supports Virtual mailboxes, aliases, forwarders and vacation.
  • Postfixadmin allows administrators to delegate account handling to domain administrators and allows users to login and change their own settings (e.g. forwarders, vacation, passwords etc).
  • It provides easy integration into dovecot, courier or cyrus.
  • Postfixadmin is written in PHP.

Installation

# apt install postfixadmin
  • Um PostfixAdmin verwenden zu können, benötigen Sie ein funktionierendes Webserver-Setup.
  • Sie können entweder einen Webserver wählen, der die Webanwendung direkt bedienen kann (beispielsweise Apache HTTP Server, oder ein Setup, bei dem ein Webserver (beispielsweise Nginx) Anfragen an einen Anwendungsserver (beispielsweise UWSGI oder php-fpm) weiterleitet.
  • Informationen zur IMAP-Funktionalität finden Sie unter PHP#IMAP.

Auf Postfixadmin sollte nur über TLS zugegriffen werden (es sei denn, der Zugriff erfolgt direkt von der Maschine, auf der es ausgeführt wird), da sonst Passwörter und Benutzerdaten offengelegt werden.

Syntax

Argumente

Optionen

Umgebung

Rückgabewert

Konfiguration

Bearbeiten Sie die PostfixAdmin-Konfigurationsdatei, ändern Sie global alle Instanzen von change-this-to-your.domain.tld auf einen geeigneten Wert:

/etc/webapps/postfixadmin/config.local.php
<?php
$CONF['konfiguriert'] = true;
// entspricht dem Maildir-Pfad von dovecot /home/vmail/%d/%u 
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NEIN';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix_user';
$CONF['database_password'] = 'hunter2';
$CONF['Datenbankname'] = 'postfix_db';

$CONF['default_aliases'] = array (
  'abuse' => 'abuse@change-this-to-your.domain.tld',
  'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
  'postmaster' => 'postmaster@change-this-to-your.domain.tld',
  'webmaster' => 'webmaster@change-this-to-your.domain.tld'

);

$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';

$CONF['footer_text'] = 'Zurück zu change-this-to-your.domain.tld';
$CONF['footer_link'] = 'https://change-this-to-your.domain.tld';


Wenn Sie dovecot installieren und das Passwortschema in dovecot geändert haben (beispielsweise in SHA512-CRYPT), geben Sie dies mit Postfix wieder

/etc/webapps/postfixadmin/config.local.php 
$CONF['encrypt'] = 'dovecot:SHA512-CRYPT';

Ab dovecot 2 ist dovecotpw veraltet. Sie sollten auch sicherstellen, dass Ihre Konfiguration den neuen Binärnamen widerspiegelt.

Hinweis

Ab postfixadmin 2.91 ist dies standardmäßig korrekt eingestellt.

/etc/webapps/postfixadmin/config.local.php 
$CONF['dovecotpw'] = "/usr/sbin/doveadm pw";

Hinweis

Damit dies funktioniert, reicht es nicht aus, dovecot installiert zu haben, es muss auch konfiguriert werden. Siehe Dovecot#Dovecot-Konfiguration .

Hosting

Hinweis

PostfixAdmin muss als eigener Benutzer und eigene Gruppe ausgeführt werden (z postfixadmin). Es nutzt /etc/webapps/postfixadmin, /var/lib/postfixadminund /run/postfixadminfür Konfigurationen, Template-Caches und (möglicherweise) Sockets (jeweils)!

Apache

Dieser Artikel oder Abschnitt muss erweitert werden.

Grund: Apache-Abschnitt benötigt ein uWSGI- Beispiel. (Diskutieren Sie im Talk:PostfixAdmin)

Der Apache -Webserver kann mit Hilfe von Modulen wie mod_proxy_fcgi oder mod_proxy_uwsgi .

php-fpm

Installieren und konfigurieren Apache HTTP Server mit php-fpm . Verwenden Sie einen Pool , der als Benutzer und Gruppe ausgeführt wird postfixadmin. Die Socket-Datei sollte für die zugänglich sein httpBenutzer und/oder Gruppe.

Fügen Sie die folgende Konfiguration in Ihre Apache HTTP Server- Konfiguration ein (dh /etc/httpd/conf/httpd.conf) und starten Sie den Webserver :

/etc/httpd/conf/postfixadmin.conf 
Alias ​​/postfixadmin "/usr/share/webapps/postfixadmin/public"
<Verzeichnis "/usr/share/webapps/postfixadmin/public">
  Verzeichnisindex index.html index.php
  <FilesMatch \.php$>
    SetHandler "proxy:unix:/run/postfixadmin/postfixadmin.sock|fcgi://localhost/"
  </FilesMatch>
  AllowOverride All
  Optionen FollowSymlinks
  Erfordern alle gewährt
  SetEnv PHP_ADMIN_VALUE "open_basedir = /tmp/:/usr/share/webapps/postfixadmin:/etc/webapps/postfixadmin/:/var/cache/postfixadmin/templates_c"
</Verzeichnis>

Erstellen Sie einen Pool für postfixadmin und starten Sie php-fpm.service neu:

/etc/php/php-fpm.d/postfixadmin.conf 
[postfixadmin]
Benutzer = postfixadmin
Gruppe = postfixadmin
listen = /run/postfixadmin/postfixadmin.sock
listen.owner = root
listen.group = http
listen.mode = 0660
pm = auf Abruf
pm.max_kinder = 4
php_admin_value['date.timezone'] = Europa/Berlin
php_admin_value['session.save_path'] = /tmp
php_admin_value['open_basedir'] = /tmp/:/usr/share/webapps/postfixadmin/:/etc/webapps/postfixadmin/:/usr/bin/doveadm:/var/cache/postfixadmin

Um nur den localhost-Zugriff auf postfixadmin zu erlauben (für erhöhte Sicherheit), fügen Sie dies der vorherigen hinzu <Directory>Richtlinie:

Auftrag verweigern, zulassen
  Abgelehnt von allen
  Ab 127.0.0.1 zulassen

Aufstellen

Navigieren Sie schließlich zu https://127.0.0.1/postfixadmin/setup.php, wenn Sie Apache oder https://127.0.0.1:8081/setup.php für Nginx verwendet haben, um die Einrichtung abzuschließen. Generieren Sie Ihren Setup-Passwort-Hash unten auf der Seite, sobald dies abgeschlossen ist. Schreiben Sie den Hash in die Konfigurationsdatei

/etc/webapps/postfixadmin/config.local.php 
$CONF['setup_password'] = 'yourhashhere';

Jetzt können Sie ein Superadmin-Konto unter https://127.0.0.1/postfixadmin/setup.php wenn Sie Apache oder https://127.0.0.1:8081/setup.php für Nginx verwendet haben.

Tipps und Tricks

Pacman-Haken

Manchmal muss die Datenbank nach einem Versionsstoß aktualisiert werden. In diesem Fall wird auf der Anmeldeseite die Meldung "Das PostfixAdmin-Datenbanklayout ist veraltet" angezeigt.

Sie können einen Hook einrichten, der das benötigte upgrade.php-Skript automatisch über einen Pacman-Hook ausführt:

/etc/pacman.d/hooks/postfixadmin.hook 
[Abzug]
Vorgang = Installieren
Betrieb = Upgrade
Typ = Paket
Ziel = postfixadmin

[Aktion]
Description = Führen Sie Postfixadmin upgrade.php aus, um sicherzustellen, dass die Datenbank auf dem neuesten Stand ist
Wann = PostTransaktion
Exec = /usr/bin/runuser -u postfixadmin -- /usr/bin/php /usr/share/webapps/postfixadmin/public/upgrade.php

Dateien

/etc
/etc/apache2
 /etc/apache2/conf-available
 /etc/apache2/conf-available/postfixadmin.conf
/etc/lighttpd
 /etc/lighttpd/conf-available
 /etc/lighttpd/conf-available/90-postfixadmin.conf
/etc/postfixadmin
 /etc/postfixadmin/config.inc.php
/usr
/usr/bin/postfixadmin-cli

Problembehebung

Konfiguration nicht gefunden

Wenn Sie zu yourdomain/postfixadmin/setup.php gehen und die Anwendung angibt, dass sie config.inc.php nicht finden kann, fügen Sie hinzu /etc/webapps/postfixadminzum open_basedirZeile ein /etc/php/php.ini(siehe PHP#Configuration als Referenz).

Leere Seite beim Zugriff

Wenn Sie eine leere Seite erhalten, überprüfen Sie die Syntax der Konfiguration mit php -l /etc/webapps/postfixadmin/config.inc.php.

Anwendung

Sicherheit

Dokumentation

RFC

Man-Page

Info-Pages

Siehe auch

Links

Projekt

  1. PostfixAdmin — Eine webbasierte Verwaltungsschnittstelle für Postfix.
  2. https://postfixadmin.sourceforge.net/ || postfixadmin