Direkt zum Hauptinhalt

Mailpiler auf Proxmox VE installieren – E-Mail-Archiv im LXC

Installation via zamba-lxc-toolbox (dev)

Mailpiler auf Proxmox VE

 installieren – E-Mail-Archivierung im LXC-Container

Hinweis: Diese Anleitung beschreibt die Installation von Mailpiler mit der zamba-lxc-toolbox auf Proxmox VE. Für die Installation wird hier der dev-Branch der Toolbox verwendet. Dieser kann Änderungen enthalten, die noch nicht Bestandteil einer stabilen Version sind.

Mit Mailpiler lässt sich eine zentrale Open-Source-Lösung zur E-Mail-Archivierung aufbauen. In dieser Anleitung installieren wir Mailpiler automatisiert als LXC-Container auf Proxmox VE.

Die Installation erfolgt mit der zamba-lxc-toolbox aus dem bashclub-Projekt. Nach der Grundinstallation konfigurieren wir unter anderem SMTP, LDAP, IMAP, TLS-Zertifikate, Mailcow und Postfix.

Autor: Thorsten Spille

Supporte mich

Mailpiler mit einemder Kaffee:
zamba-lxc-toolbox installieren

qrcode.pngGit auf dem Proxmox-Host installieren

git

Falls installierenGit (einmalig)auf dem Proxmox-Host noch nicht vorhanden ist:

apt update
apt -y install git

Toolboxzamba-lxc-toolbox klonenherunterladen

und

Anschließend Pilerwird LXC-Containerder erstellendev-Branch der zamba-lxc-toolbox geklont:

git clone -b dev https://github.com/bashclub/zamba-lxc-toolbox
cd zamba-lxc-toolbox
#

Für KonfigurationMailpiler erstellen wir zunächst eine eigene Konfigurationsdatei:

cp conf/zamba.conf.example conf/piler.conf
#

Anschließend Mitwird favorisiertemconf/piler.conf mit dem bevorzugten Texteditor angepasst. Für eine einfache Installation müssen insbesondere die Dateimit conf/piler.confLXC_ anpassen # Hier ist es nur notwendig,beginnenden Variablen beginnendgeprüft mitund LXC_angepasst zuwerden.

bearbetien

DNS #und WirdFQDN vom DHCP Server im Netzwerk ein DNS-Suffix mitgegeben, so sollte der Piler Hostname eine statische IP-Konfiguration verwendet werden #beachten: Der Piler Mailpiler-Hostname wird aus dem FQDN Desdes Containers erzeugterzeugt. #Der NachFQDN Anpassungsollte deshalb sowohl vom Proxmox-Host als auch von den späteren Clients korrekt über DNS auflösbar sein.

Falls der conf/piler.confDHCP-Server ein DNS-Suffix verteilt, empfehlen wir für den Mailpiler-Container erzeigen:eine passende statische IP- und DNS-Konfiguration.

Mailpiler LXC-Container erstellen

Nach der Konfiguration kann die Installation gestartet werden:

bash install.sh -c conf/piler.conf [-s piler] [-i <id>]
# Optional kann man den Container-Typ / Service angeben und die gewünschte LXC Container ID

Optional können der gewünschte Service piler und eine bestimmte LXC-Container-ID angegeben werden.

Nach erfolgtererfolgreicher Installation ist diedas Mailpiler WebsiteWebinterface über den FQDN des Containers erreichbar,erreichbar. dabeiVoraussetzung ist wichtig,eine dassfunktionierende DNS-Auflösung.

Mailpiler Erstkonfiguration

Standard-Passwörter sofort ändern

Wichtig: Nach der FQDNInstallation desmüssen Containersdie vomStandard-Zugangsdaten Clientunverzüglich auflösbargeändert ist.werden. Insbesondere sollte ein System mit Standard-Passwörtern niemals öffentlich erreichbar sein.

Erstkonfiguration

Die

PasswörterInstallation ändernverwendet (Webzunächst UI)

folgende

Standard-Logins:
-

admin@local:pilerrocks
-
admin@local
auditor@local:auditorauditor@local

Die Passwörter der Standard-Benutzer sollten auf sichere Passwörter geändert werden im Mailpiler Webinterface unter administrationAdministration -> usersUsers -> Edit/viewView für den jeweiligen Benutzer.Benutzer geändert.

SMTP (Smarthost),

SMTP, LDAP und IMAP Login Settings (CLI via pct enter oder ssh)

konfigurieren

InDie derzentrale DateiKonfigurationsdatei befindet sich im LXC-Container unter:

/etc/piler/config-site.php
gibt

Dort essind bereits vorbereitete KonfigurationsblöckeKonfigurationsbereiche für Loginsverschiedene Dienste und Mailversand:
-Authentifizierungsmethoden vorbereitet:

    SMTP (/ Smarthost – optional mit optionalerAuthentifizierung Authentifizierung)
    -IMAP – Benutzeranmeldung am Mailarchiv über einen IMAP-Server LDAP – Benutzeranmeldung über ein LDAP-Verzeichnis UCS LDAP – Anbindung an Univention Corporate Server POP3 – Benutzeranmeldung über einen POP3-Server

    Offizielle Mailpiler-Dokumentation:

      Authentifizierung über IMAP (ServerdatenAuthentifizierung über LDAP Authentifizierung über POP3

      TLS-Zertifikat für User-LoginMailpiler am Mailarchiv)
        https://www.mailpiler.org/authenticating-against-an-imap-server/
      - LDAP (für User-Login am Mailarchiv)
        https://www.mailpiler.org/authenticating-against-an-ldap-directory/
      - UCS LDAP (für User-Login am Mailarchiv)
      - POP3 (User-Login)
      https://www.mailpiler.org/authenticating-against-a-pop3-server/

      TLS-Zertifikat

      einrichten

      Nach dem Ausrollen des Containers sind die pilerPiler-Dienste Dienstezunächst mit einem Snakeoil-Zertifikat aus dem snakeoilPaket ssl-cert konfiguriert.

      Für den produktiven Betrieb sollte dieses Zertifikat (Paketdurch ssl-cert)ein konfiguriert.gültiges DiesesTLS-Zertifikat sollteersetzt durchwerden. Hierfür kann beispielsweise ein Zertifikat aus einerder zugehörigeneigenen PKI oder mitein einemLet's-Encrypt-Zertifikat letsencryptverwendet Zertifikat ersetzt werden, damit es für den Client signiert ist.werden.

      Dateien:
      nginx:

      Verwendete Zertifikatsdateien

      Dienst Datei nginx Zertifikatskette /etc/nginx/ssl/fullchain.pem und nginx Private Key /etc/nginx/ssl/privkey.pem sind jeweils Mailpiler /etc/piler/piler.pem

      Mailpiler Zertifikat austauschen

      Zunächst werden die vorhandenen Links auf dasdie SnakeoilSnakeoil-Zertifikate Zertifikat
      piler: /etc/piler/piler.pem = Kopie des Snakeoil Zertifikats, Zertifikatkette und Private Key in einer Dateientfernt:

      Austausch des Zertifikats
      Links von nginx Zertifikat entfernen

      Anschließend werden die neuen Zertifikatsdateien kopiert:

      • Zertifikat (komplette Kette nach /etc/nginx/ssl/fullchain.pem,pem – vollständige Zertifikatskette, root:root 0640)0640
      und Private Key (nach /etc/nginx/ssl/privkey.pem, – Private Key, root:root 0600) auf das Mailpiler-System (z.B. via SFTP) kopieren.0600

      Danach wird ausgeführt:

      renew-piler-cert
      ausführen

      Das (Skript beendet die entsprechenden Dienste, erzeugt auf BasisGrundlage des nginx nginx-Zertifikats eindas pilerbenötigte Zertifikat,Piler-Zertifikat und startet Dienste)die Dienste

      POP-/IMAP-Importanschließend vianeu.

      WebUI

      Bestehende E-Mails über POP3 oder IMAP importieren

      POP-/IMAP-Bereits vorhandene Postfächer können für deneinen initialen E-Mail-Import viain WebUIMailpiler unterüber administrationdas - importWebinterface konfiguriert werden:

      Administration → Import

      Dort können entsprechende POP3- oder IMAP-Postfächer für den Import hinterlegt werden.

      Mailempfang vorbereiten

      Auf dem Mailpiler läuft ein integrierter SMTP-Server, der Mails für das Archiv konfigurieren

      Mailpiler verfügt über einen integrierten SMTP-Dienst, der die zu archivierenden Nachrichten auf TCP-Port 25 annimmt.entgegennimmt.

      Es

      Der produktive Mailserver muss dafürden gesorgtMailpiler-Server werden,daher dassüber derSMTP erreichen können.

      SMTP ACL für Mailpiler

      Besonders wichtig bei öffentlich erreichbarem SMTP: Der Zugriff auf den SMTP-Dienst des Archivs sollte auf die tatsächlich berechtigten Mailserver dasbzw. ArchivNetze erreicheneingeschränkt kann.
      werden.

      SMTP

      Hierfür Acl List

      Ist der SMTP des Mailarchivs öffentlich erreichbar, sollte eine ACL mit erlaubten Mailservern für den  Mailempfang am Archiv definiert werden. Hierzu wirdkann die DateiDatei:

      /etc/piler/smtp.acl
      erstellt

      angelegt undwerden. darinDort werden erlaubte IP-Netze im CIDR CIDR-Format unddefiniert.

      einem permit / reject dehinter.

      Beispiel:

      # MSBeispiel Microsoft 365 Server
      40.92.0.0/15 permit
      40.107.0.0/16 permit
      52.100.0.0/14 permit
      104.47.0.0/17 permit

      IstHinweis: dieIP-Netze Listeexterner vollständig,Anbieter wie Microsoft 365 können sich ändern. Die aktuell gültigen Netze sollten deshalb vor der Übernahme anhand der Dokumentation des jeweiligen Anbieters geprüft werden.

      Nach Fertigstellung der ACL wird die Datei gespeichert, die ACLdiese aktiviert und der piler-smtpSMTP-Dienst neu gestartet:

      sed -i -e "s|smtp_access_list=.*|smtp_access_list=1|g" /etc/piler/piler.conf
      systemctl restart piler-smtp

      Konfiguration

      Mailserver desfür Mailservers

      die E-Mail-Archivierung konfigurieren

      AufNach demder Installation von Mailpiler muss der produktive Mailserver sollteso nun BCC-Maps definiertkonfiguriert werden, damitdass alle eingehende Mails (derdie zu archivierenden Domains)Nachrichten zusätzlich an dieden AdresseMailpiler Archivserver übermittelt werden.

      Ein mögliches Ziel ist beispielsweise:

      archive@<fqdn-des-archivservers>
      gesendet

      Wie diese Weiterleitung bzw. Journalisierung eingerichtet wird, hängt vom eingesetzten Mailserver ab.

      Mailpiler mit Postfix

      Bei Postfix kann eine Kopie ein- und ausgehender Nachrichten über entsprechende BCC- bzw. Recipient-Konfigurationen an Mailpiler übertragen werden.

      Postfix

      Da sich die konkrete Postfix-Konfiguration nach Umgebung und gewünschtem Archivierungsumfang richtet, empfehlen wir die jeweils aktuelle Mailpiler-Dokumentation:

      Ein BeispielMailpiler ist inInstallation derund InstallationsanleitungMailserver-Konfiguration zu finden: https://www.mailpiler.org/installation/

      BCC-Adressen beachten: Bei bestimmten Postfix-Konfigurationen können zusätzliche Envelope-Informationen sichtbar werden. Mailpiler bietet mit ToHEADER_LINE_TO_HIDE archiveeine emails,Möglichkeit, pilerentsprechende mustHeader receivefür themnormale somehow.Benutzer Soauszublenden.

      you

      Mailpiler havemit toMailcow

      configure

      Auch yourMailcow maillässt serversich tomit sendMailpiler aals copyzentralem ofE-Mail-Archiv each received emails to piler via smtp. Since piler is actually an SMTP server, you should not put postfix, exim, … on the archive itself. If you need it for some reason, then put it to 127.0.0.1:25/tcp, and set the listen_addr variable in piler.conf to listen on eth0 or similar. If you have MS Exchange, then turn on journaling. If you have postfix (including zimbra), then add the following to main.cf: /etc/postfix/main.cf: smtpd_recipient_restrictions = reject_non_fqdn_recipient, ..., \ check_recipient_access pcre:$config_directory/x-add-envelope-to, ... always_bcc = archive@piler.yourdomain.com /etc/postfix/x-add-envelope-to: /(.*)/ prepend X-Envelope-To: $1 Note that such configuration might reveal Bcc addresses to the recipients in the To/Cc fields. To prevent it happening piler features the HEADER_LINE_TO_HIDE config.php variable to automatically hide the X-Envelope-To: line. When set (and the default is as seen below) it will hide such header lines from regular users on the GUI, only auditors are allowed to see all recipients, including the Bcc addresses. $config['HEADER_LINE_TO_HIDE'] = 'X-Envelope-To:'; If you have Exim, then add the following at the beginning of the routers-section: begin routers mailarchive: debug_print = "R: mailarchive for $local_part@$domain" driver = manualroute domains = * transport = remote_smtp # piler listening on port 25: route_list = * "piler.yourdomain.com::25" self = send unseen

      Mailcow
      kombinieren.

      Im Mailcow WebUIWebinterface unterkönnen unter:

      E-Mail - Konfiguration - Addressumschreibung

      können

      für prodie Domaingewünschten Domains BCC-MapsZuordnungen für eingehende und ausgehende MailsNachrichten definiert werden.
      Sollte

      eine

      Ist DNS-Auflösungder des MailarchivsArchivserver nicht verfügbar,über dasDNS Archiverreichbar, aber über dieseine IP-Adresse erreichbar sein, soverfügbar, kann unterzusätzlich unter:

      System - Konfiguration - Routing

      ein Transportentsprechendes Transport-Mapping angelegteingerichtet werden.

      grafik.png Mailcow Konfiguration für die Weiterleitung von E-Mails an Mailpiler

      Exchange und weitere Mailserver

      Bei anderen Mailservern unterscheidet sich die Konfiguration entsprechend. Bei Microsoft Exchange bzw. Microsoft-Umgebungen kann beispielsweise Journaling zum Einsatz kommen.

      Weitere MailserverInformationen

      Mehrbefinden gibtssich in der offiziellen Doku:Dokumentation:

      https://www.mailpiler.org/docs.html Mailpiler Dokumentation

      Angepasste

      Mailpiler Pfade im LXC-Container

      Konfigurations-Verzeichnis:Die Installation über die zamba-lxc-toolbox verwendet unter anderem folgende Pfade:

      Funktion Pfad Konfiguration /etc/piler
      Piler-Cronjobs:
      Cronjobs /etc/cron.d/piler
      Piler
      CLI-Tools:Tools /usr/bin (ausführbar ohnePfadangabe)
      Piler-DiensteHauptdienst (systemd units): 
      - /etc/systemd/system/piler.service (Hauptprozess)
      - Suchdienst /etc/systemd/system/pilersearch.service (Suchdienst)
      - SMTP-Dienst /etc/systemd/system/piler-smtp.service (Piler SMTP)
      Verzeichnis fürWebUI-Skripte vom WebUI genutzte Skripte: /usr/libexec/piler
      Datenverzeichnis /var/piler

      ZFS Dataset für Mailpiler

      Das Datenverzeichnis und Home-DirectoryVerzeichnis des pilerPiler-Benutzers Users:befindet sich unter:

      /var/piler

      In unserer Installation wird der LXC-Mountpoint mp0 ist einals separates ZFS-Dataset mit sparsamer recordsize=16K, welches auf /var/piler eingehängt wird.eingebunden.

      Supportkontakt

      Das Dataset verwendet eine für diesen Einsatzzweck angepasste recordsize=16K.

      Die optimale ZFS-Konfiguration hängt von Storage, Mailaufkommen und Workload ab. Die Einstellung recordsize=16K sollte daher als Konfiguration dieser Installation und nicht als allgemeingültige Vorgabe für jedes Mailpiler-System verstanden werden.

      Support und Autor

      Diese Mailpiler-Integration für die zamba-lxc-toolbox wurde dokumentiert von:

      Thorsten Spille
      Spille IT Solutions
      Thorsten Spille <thorsten@spille-edv.de>

      Wer die Arbeit unterstützen möchte:

       Thorsten Spille auf Ko-fi unterstützen


       Technischer Hinweis: Mailpiler, Proxmox VE, die zamba-lxc-toolbox und die angebundenen Mailserver werden kontinuierlich weiterentwickelt. Prüft deshalb insbesondere bei produktiven Mailarchiven die jeweils aktuelle Dokumentation sowie die Kompatibilität der eingesetzten Versionen.