PostfixAdmin

Aus Foxwiki

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 (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.

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

Parameter

Optionen

Umgebungsvariablen

Exit-Status

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'] = 'http://change-this-to-your.domain.tld';

 

Wenn Sie dovecot installieren und das Passwortschema in dovecot geändert haben (z. B. 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 http://127.0.0.1/postfixadmin/setup.php, wenn Sie Apache oder http://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 http://127.0.0.1/postfixadmin/setup.php wenn Sie Apache oder http://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

Fehlerbehebung

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.

Anwendungen

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise


Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5